1. Szállítási (transzport) réteg Összeállította: Broczkó Péter (BMF)
1.1. Az ISO OSI szállítási réteg és protokoll-osztályai 1.1.1. Az ISO OSI szállítási réteg feladatai 1.1.2. Az ISO OSI szállítási réteg protokoll- osztályai Tempus S_JEP-12435-97 Számítógép hálózatok
1.1.1. Az ISO OSI szállítási réteg feladatai a magasabb rétegű alkalmazások szegmentálása a végpontok közötti összeköttetés kialakítása vezérli az adatáramlást szegmensek küldése az egyik végpontból a másikba adatátviteli hibák felismerése/javítása (opcionális) Tempus S_JEP-12435-97 Számítógép hálózatok
1.1.2. Az ISO OSI szállítási réteg protokoll-osztályai A szolgáltatás típusa Protokoll-osztály Összeköttetés alapú TP0, TP1, TP2, TP3 Összeköttetés-mentes TP4 Tempus S_JEP-12435-97 Számítógép hálózatok
1.2. A TCP/IP architektúra szállítási rétege Alkalmazási réteg Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Szállítási Hálózati Adatkapcsolati és fizikai Tempus S_JEP-12435-97 Számítógép hálózatok
1.2.1. TCP kontra UDP TCP összeköttetés-orientált protokoll megbízhatóbb, mivel visszajelzést ad a szegmensek megérkezéséről lassúbb az összeköttetés létrehozása, de maga az adatátvitel utána gyors az adatfolyamot szegmensekbe tördeli UDP összeköttetés nélküli protokoll nem megbízható, mivel nincs benne visszajelzés a szegmensek megérkezéséről igen gyors és hatékony az alkalmazások adatai elférnek egy szegmensben, így nem szükséges egyenlő szakaszokra tördelnie Tempus S_JEP-12435-97 Számítógép hálózatok Tempus S_JEP-12435-97
A TCP szegmens formátuma Acknowledgement Number Sours Port Dest. Port Sequence Number Acknowledgement Number H L E N Reserved Code Bits 16 32 4 6 # Bits 16 0 or 32 W I N D O W Check- sum Urgent Pointer Option Data … Tempus S_JEP-12435-97 Számítógép hálózatok
1.2.2.1. Az TCP-t alkalmazó adatátviteli protokollok World Wide Web File Transfer Protocol (FTP) Telnet SMTP (e-mail) Tempus S_JEP-12435-97 Számítógép hálózatok
1.2.2.2. A háromfázisú kézfogás A állomás B állomás SYN(seq=x) küldése SYN (seq=x) fogadása SYN (seq=y,ack=x+1) küldése SYN(seq=y,ack=x+1) fogadása ACK(ack=y+1) küldése ACK (ack=y+1) fogadása SYN – szinkronjel, ACK – Nyugtázás Az x az A, az y pedig a B állomás sorszáma Tempus S_JEP-12435-97 Számítógép hálózatok
Az UDP szegmens formátuma 16 0 or 32 Source Port Destination Port Length Check- sum Data … Tempus S_JEP-12435-97 Számítógép hálózatok
1.2.3.1. Az UDP-t alkalmazó adatátviteli protokollok Trivial File Transfer Protocol (TFTP) Simple Network Management Protocol (SNMP) Network File System (NFS) Domain Name System (DNS) (alkalmazhatja a TCP-t is) Tempus S_JEP-12435-97 Számítógép hálózatok
1.3. A kliens/szerver kommunikáció hibátlan byte folyamat és üzenet alapú modelljei és szemléltetése példákon keresztül Tempus S_JEP-12435-97 Számítógép hálózatok
1.3.1. A kliens/szerver kommunikáció hibátlan byte folyamat alapú modellje (TCP) Forgalomszabályozás Forrás Cél Átvitel A puffer megtelt Folytatódik a felgyülemlett szegmensek feldolgozása A puffer kiürült Az átvitel folytatása Ready Not Ready Stop Go Tempus S_JEP-12435-97 Számítógép hálózatok
1.3.1.1. TCP egyszerű nyugtázás és ablak-technika I. Az ablak mérete = 1 FORRÁS CÉL Send1 Receive ACK 2 Send2 Receive ACK 3 Send3 Receive ACK 4 Receive 1 Send ACK 2 Receive 2 Send ACK 3 Receive 3 Send ACK 4 Tempus S_JEP-12435-97 Számítógép hálózatok
1.3.1.2. TCP egyszerű nyugtázás és ablak-technika II. FORRÁS CÉL Send1 Send2 Send3 Receive ACK 4 Send4 Send5 Send6 Receive ACK 7 Receive 1 Receive 2 Receive 3 Send ACK 4 Receive 4 Receive 5 Receive 6 Send ACK3 Tempus S_JEP-12435-97 Számítógép hálózatok
1.3.1.3. TCP sorrend és nyugtaszámok Source Port Destination Port Sequence Number Acknowledgment Number …… 1028 23 10 1 …. Source Dest. Seq. Ack. 1028 23 11 2 …. 23 1028 1 11 …. Most küldtem el a 10.-et! Kérem a 11.-et! Tempus S_JEP-12435-97 Számítógép hálózatok
1.3.2. A kliens/szerver kommunikáció hibátlan üzenet alapú modelljei (összeköttetés- mentes protokoll- UDP) 1.3.2.1. Az UDP ellenőrző összeg-számítása és gyakorlati alkalmazása 1.3.2.2. Megbízhatóság biztosítási példa az UDP alkalmazása esetén Tempus S_JEP-12435-97 Számítógép hálózatok
1.3.2.1. Megbízhatóság biztosítási példa (UDP – TFTP) a küldő állomás ellenőrző összeget számít és azt beírja a szegmensbe elküldi a szegmenst a fogadó állomás újra kiszámítja az ellenőrző összeget amennyiben nem egyezik a szegmensben lévővel, értesíti a küldő állomást, hogy az küldje újra Az eredmény: megbízható átvitel Tempus S_JEP-12435-97 Számítógép hálózatok
1.4. A TCP/IP transzport felületének protokolljai: a socket felület és a tli (transport layer interface) felület Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.1. Port-számozás 1.4.1.1. A port-számozás célja Mind a TCP, mind pedig az UDP port-számokat alkalmaz annak érdekében, hogy információt adjon át a magasabb rétegeknek A port-számok segítségével követhetők nyomon az ugyanazon az állomáson egyidejűleg futó különféle alkalmazások üzenetei 1.4.1.2. Port-szám tartományok Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.1.1. Az alkalmazások közötti multiplexelés Alkalmazás 1 Alkalmazás 2 Adat Vevő Port Adat Vevő Port Adat Vevő Port Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.1.2. Port-szám tartományok 256 alatt nyilvános alkalmazások 256 - 1023 cégek kereskedelmi célú alkalmazásai 1024 - 65536 (16 bites címtartomány!) dinamikusan rendelik hozzá a hoszt alkalmazásaihoz Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.1.3. Port-számozási példa Port-számok Számítógép hálózatok 21 23 53 69 161 25 Port- számok TELNET FTP SMTP DNS TFTP SNMP TCP UDP Szállítási réteg Alkalmazási réteg Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.1.4. TCP port-számok Számítógép hálózatok Tempus S_JEP-12435-97 Kulcsszó Értelmezés Foglalt 1-4 Nem használatos 5 RJE Remote Job Entry 7 ECHO Echo (visszhang) 9 DISCARD Discard (törlés) 11 USERS Aktív felhasználók 13 DAYTIME A dátum és az idő 15 NETSTAT 17 QUOTE A nap tippje 19 CHARGEN Karaktergenerátor 20 FTP-DATA FTP adat 21 FTP File Transfer Protocol 23 TELNET Terminal Connection 25 SMTP Simple Mail Transfer Protocol 39 RLP Erőforrás-hely protokoll 42 NAMESERVER Host Name Server 43 NICNAME Becenév 53 DOMAIN Domain Name Server Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.1.5. UDP port-számok Számítógép hálózatok Tempus S_JEP-12435-97 Kulcsszó Értelmezés Foglalt 1-4 Nem használatos 5 RJE Remote Job Entry 7 ECHO Echo (visszhang) 9 DISCARD Discard (törlés) 11 USERS Aktív felhasználók 13 DAYTIME A dátum és az idő 15 NETSTAT Netstat 17 QUOTE A nap tippje 19 CHARGEN Karaktergenerátor 20 FTP-DATA FTP adatok 21 FTP File Transfer Protocol 25 SMTP Simple Mail transfer Protocol 42 NAMESERVER Host Name Server 43 NICNAME Becenév 53 DNS Domain Name Server 69 TFTP Trivial File Transfer Protocol Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.2. A protokoll szoftver és az alkalmazási program közötti illesztés különbséget kell tennünk az illesztés (interface) és a TCP/IP protokoll között, mivel a szabvány nem specifikálja exakt módon a TCP/IP és a felhasználói program közötti kapcsolatot tehát az illesztési architektúra nincs szabványosítva, mivel ez már túlnyúlik a protokoll hatáskörén az illesztés megvalósításának részlet-kérdései inkább a TCP/IP-t futtató operációs rendszertől függnek Tempus S_JEP-12435-97 Számítógép hálózatok
Illesztés a TCP/IP és az alkalmazási program között 1.4.3. A protokoll szoftver és az alkalmazási program közötti illesztés Illesztés a TCP/IP és az alkalmazási program között Alkalmazás (a felhasználói programozó írta) Illesztés (a konkrét operációs rendszertől függ) TCP/IP Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.4. A socket felület kontra TLI a University of Berkeley dolgozta ki a BSD Unix számára a 80-as évek elején de facto szabvánnyá vált: a Unix operációs rendszeren túl alkalmazzák Windows-ban, a Xerox és az Apple gépek operációs rendszereinél Transport Layer Interface (TLI) az AT&T dolgozta ki a Unix System V számára Mivel a socket pedig több operációs rendszer alatt fut alatt, ezért az utóbbival foglalkozunk részletesebben Tempus S_JEP-12435-97 Számítógép hálózatok
1.4.5. A socket felület 1.4.5.1. A socket és az open-read-write-close paradigma 1.4.5.2. A TCP használatának előfeltételei az alkalmazási program létrehozza a socket-et hozzárendeli a socket-hez a címeket fogadja a beérkező kapcsolatot végrehajtja a kommunikációt a read-write primitívek felhasználásával végül, amikor a programnak nincs többé szüksége a socket-re, akkor le kell zárnia azt. Tempus S_JEP-12435-97 Számítógép hálózatok
1.5. C nyelvi eszközök a kliens/szerver kommunikációs modellek kialakitásához Tempus S_JEP-12435-97 Számítógép hálózatok
1.5.1. Socket library hívások a BSD Unix esetén 1.5.1.1. A különbség az alkalmazási program rendszer-hívásai (system calls) és a socket könyvtári rutin hívásai (socket library routines calls) között 1.5.1.2. Példák a socket könyvtári rutinokra (socket library routines) Tempus S_JEP-12435-97 Számítógép hálózatok
1.5.1.1. Alkalmazási program rendszer-hívások kontra socket könyvtári rutin hívások Tempus S_JEP-12435-97 Számítógép hálózatok
1.5.1.2. Példák a socket könyvtári rutinokra (socket library routines) hálózati bájt-sorrend konverziós rutin IP cím manipuláló rutin Domain Name System (DNS) elérő rutin információ-szerző rutin a hosztokról információ-szerző rutin a hálózatról információ-szerző rutin a protokollokról információ-szerző rutin a hálózati szolgáltatásokról Tempus S_JEP-12435-97 Számítógép hálózatok
1.5.2. Példa egy whois kliens és szerver megvalósítására Az RFC 954 definíciója szerint a whois szolgáltatás lehetővé teszi egy kliens számára, hogy a távoli rendszer felhasználójáról információt szerezzen. Az adott esetben a kliens egy olyan alkalmazói program, amelyet a felhasználó két paraméter megadásával hívhat meg: a távoli szerver neve a távoli szerver azon felhasználójának neve, akiről információt kívánunk szerezni Tempus S_JEP-12435-97 Számítógép hálózatok
1.5.2.1. A kliens oldal a kijelölt hoszt nevének megkeresése (gethostbyname) hoszt címének és cím-típusának a socket struktúrába helyezése a whois szolgáltatás socket számának megkeresése (getservbyname) a whois socket számának a socket struktúrába helyezése egy open socket allokálása csatlakozás a távoli szerverhez a kérés elküldése a válasz fogadása Tempus S_JEP-12435-97 Számítógép hálózatok
1.5.2.2. A szerver oldal a whois szolgáltatás bemenetének megkeresése(getservbyname) a saját host-információink elérése (gethostbyname) a whois socket szám és a saját címünk behelyezése a socket struktúrába a bejövő csatlakozások számára egy open socket kialakítása a socket hozzákapcsolása a szolgáltatási porthoz, hogy érzékeljük a bejövő csatlakozásokat a csatlakozások maximális számának kialakítása az új csatlakozások várakoztatására egy végtelen ciklus kialakítása a távoli hoszttól fogadjuk a whois kérést a kért felhasználó megkeresése és a válasz kialakítása a válasz visszaküldése az igénylő hosztnak Tempus S_JEP-12435-97 Számítógép hálózatok Tempus S_JEP-12435-97