240 likes | 356 Views
Transzport protokollok funkci ói. Tarján Péter BME-TMIT 2005. ápr. 27. A transzport protokoll helye. Transzport protokoll megvalósítás. A TCP /IP protokollcsal ád. FTP. SNMP. BOOTP DHCP. ASN.1. SMTP. TELNET. DNS. TCP. UDP. IP ( +I C MP és IGMP). ARP. RARP.
E N D
Transzport protokollok funkciói Tarján Péter BME-TMIT 2005. ápr. 27.
A TCP/IP protokollcsalád FTP SNMP BOOTP DHCP ASN.1 SMTP TELNET DNS TCP UDP IP (+ICMP és IGMP) ARP RARP Hardware meghajtók és közeghozzáférés
A szállítási réteg • Feladata: végfelhasználók közötti megbízható és költséghatékony adatátvitel • IP cím (hálózati réteg) a csomópontot azonosítja, felhasználót és folyamatot nem (IP fejlécben forrás- és célcím, valamint protokoll) • Azonosítani kell a datagram címzettjét (alkalmazás szinten)
Megbízható adatátvitel • Transzport protokoll lehet összeköttetés alapú (pl. TCP) vagy összeköttetés-mentes (pl. UDP) • Biztonságos információ-továbbítás • összeköttetés felépítése/lebontása • átvitt adat ellenőrzése (pl. checksum alapján) • adatvesztés megakadályozása • duplikálás elkerülése • folyam- és torlódásszabályozás
Transzport protokollok IP felett • port okat használnak alkalmazás azonosítására • UDP (User Datagram Protocol): összeköttetésmentes szolgáltatás • TCP: összeköttetés-alapú szolgáltatás Process 1 Process 2 Port a Port b UDP, TCP IP
Az UDP jellemzői • IP csomagba információ + ellenőrzőösszeg • Nem-garantált átvitel, de hiba detektálása • TCP-től független portok, bizonyos portok szolgáltatásra lefoglalt (pl. 53: DNS) • Alkalmazásnak kell biztosítania átvitel megbízhatóságát • Szabványos alkalmazás: TFTP, RPC, LDAP, DNS, SNMP
A TCP jellemzői • Összeköttetés-alapú, byte-folyam jellegű (struktúra nélküli adat), megbízható protokoll • Sorrendhelyes, duplikáció- és veszteség-mentes full-duplex kommunikáció • Kapcsolat felépítéséért, elbontásáért felel • Csomagvesztés vagy –sérülés esetén újraadás • Folyamszabályozás és torlódásvédelem • Folyamok azonosítása (portszám alapján)
Átvitel megbízhatósága • Általában: • Csomagok sorszámmal ellátása • Fogadó nyugtát küld • Adott időn belül nincs nyugta => újraküldés • Nagy körbefordulási idő (RTT) mellett nem hatékony • TCP esetén • Nyugta byte-ok számát tartalmazza • Több nyugtázatlan csomag lehet egy időben • Csúszóablak alkalmazása
Csúszóablak • Az „ablak” a kiküldött, de még nyugtázatlan csomagokból áll • Ablak mérete szabályozza az átvitelt • A „baloldalt” a nyugták csúsztatják • TCP esetén az ablak byteszámmal adott elküldve engedélyezve nyugtázva
Átvitel-szabályozás • Csúszóablak mérete változik • Nyugtával együtt maximális ablakméret, ha 0, fel kell függeszteni adást, amíg nem küld pozitív ablakméretet, kiv. sürgős bit • deadlock elkerülése (elveszett nyugta esetén): küldő ellenőrzi időnként ablakot
Nyugtázás és ismétlés • TCP szegmens kötetlen méretű • Nyugta: meddig kapta meg összes byteot (köv. várt byte sorszáma) • Csak első hiányzó szegmens újraküldése, nyugta megvárása • RTT becslése adaptív módon, ennek többszöröse timeout, nagy ingadozásra szórás becslése is
Az újraküldési algoritmus javítása • Probléma: csak utolsó jól megkapott csomagról tudunk, lehetőségek: • RTT-ként csak egy csomag újraküldése • már jól megérkezett csomagok újraküldése • „timeout esetén újraküldés” javítása: • Fast Retransmit: duplikált ACK-ok figyelembevétele • Fast Recovery: duplikált ACK-ok jól megkapott csomagoknak megfeleltetése, nem ürül ki csatorna • további javítás többszörös csomagvesztés esetére • Selective Acknowledgements (SACK): küldőnek nem-folytonos megkapott blokkokról értesítés
Torlódás-szabályozás • Cél: torlódási összeomlás elkerülése (time-out -> újraadás, sorok telítődése) • Source Quench router-üzenet: ICMP része (nem a TCP-hez tartozik) • Additive Increase Multiplicative Decrease • Slow Start: additív növelés, advertised window felénél további lassítás
TCP kapcsolat felépítés/lebontás • Funkciói: • kapcsolat kialakítása (szerver megtudja, ki a kliens) • szekvenciaszám szinkronizálás • paraméterek cseréje • Felépítés: 3-utas kézfogás SYN SYN, ACK ACK • Összeköttetés bontása FIN ACK FIN ACK
TCP megvalósítás Linuxban • kernel szinten, paraméterei hangolhatók sysctl ill. /proc filerendszer segítségével • kernel-source-x/net/ipv4/ könyvtár alatt • 2.4.24 –es kernelben file-ok sorainak száma: 2668tcp.c 609tcp_diag.c 4058tcp_input.c 2374tcp_ipv4.c 1023tcp_minisocks.c 1454tcp_output.c 655tcp_timer.c
UDT: applikációs szintű transzport protokoll • UDP based Data Transfer Protocol • Felhasználási terület: • intenzív adatforgalom • Nagy sávszélesség-késleltetés szorzat (mint új TCP variánsok) • pl. számító GRID rendszerek
Az UDT jellemzői • a működést egy 2005 februárban lejárt internet draft adja meg • külön jelzés- és adatcsomagok (utóbbi fix méretű) • vevő foglalkozik a szabályozási információkkal • ablak és küldési ráta alapú szabályozás sávszélességbecslés alapján • 4 timert használ (mind a fogadóban) • csomagszintű- és ACK al-nyugtázás
Az UDT működése I. • Csomagszintű nyugtázás: • Pozitív nyugta konstans időnként (ACK timer) • Negatív nyugta csomagvesztés detekciójakor (NAK timer) • ha csomagvesztés küszöb alatti, az egy SYN (konstans 10 ms) alatt küldendő csomagok számát növeli legalább 1/MTU-val, de ha a küldési ráta sokkal kisebb a becsült sávszélességnél, jobban • negatív nyugta kapása és bizonyos feltételek teljesülése esetén küldési ráta csökkentése 1/9-nyivel • a sávszélességbecslés UDT csomag párok mintavételezéséből adódik
Az UDT működése II. • Nyugtázatlan csomagok számán alapuló forgalomszabályozás • UDT vevő a nyugtával együtt visszaküldi a medián szűrővel számolt csomagérkezési rátát (AS ) • ha ez az érték>0, küldő az ablakméretet módosítja • 3-utas kézfogás használata
Összefoglalás • Transzport funkciók megbízható, összeköttetés-alapú protokoll esetén • alkalmazás azonosítása • kapcsolat felépítése, lebontása • küldött adat ellenőrzése • sorrend megtartása • duplikáció nélkül garantált átvitel • adatvesztés detektálása • újraküldés • folyam- és torlódásszabályozás
Táblázat értékelés • Használt rövidítések: • vn. TCP: vezetéknélküli TCP, pl. Eifel, Westwood • nagy ssz. TCP: nagy sávszélességre kifejlesztett TCP-k, pl. HS-TCP, Fast TCP, Scalable TCP • Különbség protokollokban a torlódásszabályozásnál