400 likes | 572 Views
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. 1.1.1. Az ISO OSI szállítási réteg feladatai.
E N D
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 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) Számítógép hálózatok
1.1.2. Az ISO OSI szállítási réteg protokoll-osztályai 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 Számítógép hálózatok
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 1.2.1. TCP kontra UDP Számítógép hálózatok
1.2.2. A TCP A TCP szegmens formátuma # Bits 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) Számítógép hálózatok
B állomás A állomás 1.2.2.2. A háromfázisú kézfogá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 Számítógép hálózatok
1.2.3. Az UDP Az UDP szegmens formátuma 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) 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 Számítógép hálózatok
Forgalomszabályozás Átvitel Forrás Cél Not Ready A puffer megtelt Folytatódik a felgyülemlettszegmensek feldolgozása A puffer kiürült Az átvitel folytatása Stop Ready Go 1.3.1. A kliens/szerver kommunikáció hibátlan byte folyamat alapú modellje (TCP) Számítógép hálózatok
Send1 Receive ACK 2Send2 Receive ACK 3Send3 Receive ACK 4 CÉL Receive 1Send ACK 2 Receive 2Send ACK 3 Receive 3Send ACK 4 FORRÁS 1.3.1.1. TCP egyszerű nyugtázás és ablak-technikaI. TCP egyszerű nyugtázás Az ablak mérete = 1 Számítógép hálózatok
CÉL FORRÁS 1.3.1.2. TCP egyszerű nyugtázás és ablak-technikaII. Send1Send2Send3 Receive ACK 4Send4Send5Send6 Receive ACK 7 Receive 1Receive 2Receive 3Send ACK 4 Receive 4Receive 5 Receive 6Send ACK3 Számítógép hálózatok
Most küldtem el a 10.-et! Kérem a 11.-et! Source Dest. Seq. Ack. 1028 23 10 1 …. Source Dest. Seq. Ack. Source Dest. Seq. Ack. 23 1028 1 11 …. 1028 23 11 2 …. 1.3.1.3. TCP sorrend és nyugtaszámok TCP sorrend és nyugtaszámok 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 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 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 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 Számítógép hálózatok
Vevő Port Vevő Port Vevő Port Adat Adat Adat 1.4.1.1. Az alkalmazások közötti multiplexelés Alkalmazás 1 Alkalmazás 2 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 Számítógép hálózatok
Port-számok FTP TELNET SMTP DNS TFTP SNMP Port-számok 21 23 25 53 69 161 Szállítási réteg TCP UDP 1.4.1.3. Port-számozási példa Alkalmazási réteg Számítógép hálózatok
1.4.1.4. TCP port-számok Számítógép hálózatok
1.4.1.5. UDP port-számok 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 Számítógép hálózatok
Alkalmazás (a felhasználói programozó írta) Illesztés (a konkrét operációs rendszertől függ) TCP/IP 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 Számítógép hálózatok
Socket 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 1.4.4. A socket felület kontra TLI Mivel a socket pedig több operációsrendszer alatt fut alatt, ezért az utóbbival foglalkozunk részletesebben 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. 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 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) 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 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 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 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 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 Számítógép hálózatok