TCP ÉS UDP. Médiakommunikációs hálózatok (VIHIM161) évi fóliái alapján készült. Dr. Lencse Gábor

Hasonló dokumentumok
TCP ÉS UDP. Médiakommunikációs hálózatok (VIHIM161) Médiatechnológiák és -kommunikáció szakirány. Dr. Lencse Gábor

SZÁLLÍTÁSI (TRANSPORT, HOST- TO-HOST) PROTOKOLLOK

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

SzIP kompatibilis sávszélesség mérések

Szállítási réteg (L4)

Hálózati architektúrák laborgyakorlat

32 bit (4 bájt) Destination Port 8 bájt. Source Port. DATA, ha van

32 bit (4 bájt) Destination Port 8 bájt. Source Port. DATA, ha van

A TCP/IP modell szállítási rétege

Dr. Wührl Tibor Ph.D. MsC 05 Ea. Szállítási protokollok - Bevezetés

Számítógépes Hálózatok és Internet Eszközök

Számítógépes Hálózatok 2012

Szállítási réteg (L4)

Számítógép-hálózatok. Gyakorló feladatok a 2. ZH témakörének egyes részeihez

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET. Szállítási réteg vizsgálata Wireshark analizátorral. Dr. Wührl Tibor Dr.

Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

Távközlési informatika II.

Az Internet működésének alapjai

Számítógépes Hálózatok ősz Szállítói réteg TCP, Tahoe, Reno, AIMD, Fairness, hatékonyság

[SZÁMÍTÓGÉP-HÁLÓZATOK]

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Gyakorló feladatok a 2. ZH témakörének egyes részeihez. Számítógép-hálózatok. Dr. Lencse Gábor

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

Az IP hálózati protokoll

Hálózati architektúrák és Protokollok GI - 9. Kocsis Gergely

Számítógépes Hálózatok

8. Szállítói réteg TCP Tahoe, Reno, AIMD, hatékonyság, fairness. HálózatokII, 2007

Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.

Számítógép-hálózatok A felsőbb rétegek

24. fejezet A szállítási réteg

I. Házi Feladat. internet. Határidő: V. 30.

MULTIMÉDIA TOVÁBBÍTÁSA AZ IP FELETT

4. Hivatkozási modellek

8. Szállítói réteg TCP Tahoe, Reno, AIMD, hatékonyság, fairness. HálózatokII, 2006

Számítógépes Hálózatok

A szállítói réteg (transport layer) szolgáltatásai. Számítógépes Hálózatok Szállítói réteg (transport layer) Multiplexálás a szállítói rétegben

Számítógépes Hálózatok 2011

Dr. Wührl Tibor Ph.D. MsC 04 Ea. IP kapcsolás hálózati réteg

Hálózati alapismeretek

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

TRANSMISSION CONTROL PROTOCOL (TCP) bevezetés1

A TCP/IP modell hálózati rétege (Network Layer) Protokoll-készlet: a csomagok továbbítása. Legjobb szándékú kézbesítés

Nagy sebességű TCP. TCP Protokollok

* Rendelje a PPP protokollt az TCP/IP rétegmodell megfelelő rétegéhez. Kapcsolati réteg

Adatátviteli rendszerek Mobil IP. Dr. habil Wührl Tibor Óbudai Egyetem, KVK Híradástechnika Intézet

3-4. Transmission Control Protocol

Az Ethernet példája. Számítógépes Hálózatok Az Ethernet fizikai rétege. Ethernet Vezetékek

Department of Software Engineering

Internet Protokoll 6-os verzió. Varga Tamás

[SZÁMÍTÓGÉP-HÁLÓZATOK]

E Q U I C O M M é r é s t e c h n i k a i K f t. H B u d a p e s t, M á t y á s k i r á l y u T. : F.

ARP ÉS DHCP. Médiakommunikációs hálózatok (VIHIM161) évi fóliái alapján készült. Dr. Lencse Gábor

Kiszolgálók üzemeltetése. Iványi Péter

Transmission Control Protocol (TCP) (a működés alapelvei)

Operációs rendszerek és hálózatok GEIAL501M A szállítási réteg

Számítógép hálózatok

Transmission Control Protocol (TCP) (a működés alapelvei)

Számítógépes Hálózatok ősz 2006

Organizáció. Számítógépes Hálózatok ősz Tartalom. Vizsga. Web-oldal

Hálózati réteg, Internet

1. LABORGYAKORLAT 2011 TAVASZI FÉLÉV ÓBUDAI EGYETEM PRÉM DÁNIEL. Hálózati protokollok. Számítógép hálózatok gyakorlata

Organizáció. Számítógépes Hálózatok Gyakorlati jegy. Vizsga. Web-oldal

20. Tétel 1.0 Internet felépítése, OSI modell, TCP/IP modell szintjenek bemutatása, protokollok Pozsonyi ; Szemenyei

Kiegészítés a Számítógép-hálózatok jegyzethez a 2. ZH témakörében. v0.9, Internet Protocol

Bevezető. Az informatikai biztonság alapjai II.

Tűzfalak működése és összehasonlításuk

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán

Ethernet/IP címzés - gyakorlat

Hálózati architektúrák laborgyakorlat

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Transzport Réteg. Transzport réteg protokollok

Kiszolgálók üzemeltetése. Iványi Péter

Torlódásvezérlés nélküli transzport protokoll teljesítményelemzése Emulab hálózatemulációs környezetben

Üzenet a Pluto-ra. Delay- and Disruption- Tolerant Networking. Költl Péter. szenior műszaki tanácsadó CCIE #

Hálózatok II. A hálózati réteg funkciói, szervezése

Médiakommunikációs hálózatok (VIHIM161) évi fóliái alapján készült

Alternatív TCP variánsok vizsgálata nagy sávszélességű, magas késleltetésű kapcsolatokon

Kommunikáció. 3. előadás

TCP/IP. Szállítási protokollok/4. Szállítási réteg (Transport Layer) TCP/IP protokollkészlet. Szállítási réteg (Transport Layer)

Nagyteljesítményű mikrovezérlők TCP/IP

Számítógépes Hálózatok. 4. gyakorlat

Médiakommunikációs hálózatok (VIHIM161) évi fóliái alapján készült

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

A szállítási szolgálat

Department of Software Engineering

Rohonczy János: Hálózatok

Számítógépes Hálózatok 2008

Alhálózatok. Bevezetés. IP protokoll. IP címek. IP címre egy gyakorlati példa. Rétegek kommunikáció a hálózatban

OSI-ISO modell. Az OSI rétegek feladatai: Adatkapcsolati réteg (data link layer) Hálózati réteg (network layer)

21. fejezet Az IPv4 protokoll 1

Hálózati architektúrák laborgyakorlat

Számítógépes Hálózatok

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar május 30.

Modbus kommunikáció légkondícionálókhoz

Lokális hálózatok. A lokális hálózat felépítése. Logikai felépítés

3. előadás. A TCP/IP modell jelentősége

Project Report (1998)

Átírás:

TCP ÉS UDP Médiakommunikációs hálózatok (VIHIM161) 2013. évi fóliái alapján készült 2017. március 10., Budapest Dr. Lencse Gábor tudományos főmunkatárs BME Hálózati Rendszerek és Szolgáltatások Tanszék lencse@hit.bme.hu

Tartalom A TCP és az UDP közös jellemzői és képességei Transmission Control Protocol TCP szegmens felépítése Kapcsolat felépítése és lebontása Megbízható átvitel megoldása Forgalomszabályozás (flow control) Torlódásvezérlés (congestion control) User Datagram Protocol 2

A TCP ÉS AZ UDP KÖZÖS JELLEMZŐI ÉS KÉPESSÉGEI 3

A TCP és az UDP helye a rétegekben Alkalmazási Megjelenítési Viszonylati Szállítási Hálózati Adatkapcsolati Fizikai (7. Application) (6. Presentation) (5. Session) (4. Transport) (3. Network) (2. Data Link) (1. Physical) Alkalmazási Szállítási Hálózati Hordozóhálózat (Application) (Transport) (Internet) (Link) ISO OSI TCP/IP hálózati réteg: datagramok átvitele a host -ok között szállítási réteg: a host -okon futó alkalmazások (processzek) közötti logikai kapcsolatok a hálózati réteg szolgáltatásainak igénybevételére alapozva 4

A szállítási protokollok működési helye Logikai kapcsolatok a végpontokban futó alkalmazások között A szállítási protokollok csak a végpontokban futnak, a köztes csomópontokban nem Az alkalmazások adategységeit szállítási protokolladategységekbe tördeljük, a kapottakból pedig összerakjuk 5

Szállítási protokollok: TCP és UDP TCP Transmission Control Protocol UDP User Datagram Protocol Az TCP és az UDP közös képességei: Portok kezelése Multiplexelési képesség Alapvető különbség az TCP és az UDP között: A TCP összeköttetés-alapú (connection-oriented) transzportszolgáltatást nyújt Az UDP összeköttetés-menteset (connectionless) 6

A TCP és az UDP közös képességei Portok kezelése Az IP-rétegben a csomagok a host -nak vannak címezve A host -okon belül: több alkalmazás, folyamat Megkülönböztetésük: portok használatával Portok: 16 bites számok (0-tól 65535-ig terjedő értékkészlettel) Adott alkalmazás eléréséhez a megfelelő porthoz kell csatlakozni, például: Web szerver (HTTP): 80-as port FTP szerver: 21-es port Biztonságos távoli bejelentkezés (SSH): 22-es port Egyes alkalmazások TCP-t, mások UDP-t használnak (és vannak, amelyek mindkettőt) Multiplexelés/demultiplexelés A portmechanizmus segítségével 7

Portszámok szabványos kiosztása Az IANA rendelkezik felőle Három tartományt definiáltak 0-1023: System Ports (korábban: Well Known Ports) Ezeket a portokat használják az alapvető, általánosan használt hálózati szolgáltatások. Ezekhez a portokhoz csak privilegizált szerver programok kapcsolódhatnak szolgáltatás nyújtása céljából. 1024-49151: User ports (korábban: Registered Ports) Ezeken a portokon egyéb szolgáltatások érhetők el. (Ha valaki kitalál egy szolgáltatást, igényelhet hozzá ilyen portszámot.) Ezeken a portokon történő szolgáltatásnyújtáshoz nem szükséges privilegizált módban futtatni a szerver programot. 49152-65535: Dynamic and/or Private Ports Ebből a tartományból az operációs rendszer oszt ki portokat a kommunikációhoz a programoknak. Bővebben: http://www.iana.org/assignments/port-numbers 8

Példa: Multiplexelés és demultiplexelés A1 A2 A3 Alkalmazások 1. port 2. port 3. port UDP IP-réteg Demultiplexelés a portok alapján Beérkező UDP datagram 9

TRANSMISSION CONTROL PROTOCOL 10

Az TCP fő jellemzői Célkitűzés: megbízható szállítási szolgáltatás nyújtása az IP nem megbízható datagram-szolgáltatásán Jellemzői: (Virtuális) összeköttetések: összeköttetés épül fel és marad fenn a kommunikáció tartamára Stream-típusú szolgáltatás: oktett-streamek sorrendhelyes átvitele Strukturálatlan stream: nincsenek határolók a streamen belül Pufferelt átvitel: a streamből a datagram megtöltéséhez szükséges mennyiséget várja össze Duplex kapcsolatok: két független stream; irányonként egy-egy Vezérlő információk küldése: az ellenkező irányban folyó streambe ágyazva (piggybacking) 11

Az TCP ezekről lesz szó A szegmens* felépítése és a mezőinek értelmezése Összeköttetés-alapú kommunikáció: kapcsolat felépítése és lebontása Megbízható átvitel sorszámozás és pozitív nyugtázás segítségével Forgalomszabályozás (flow control) ablakmechanizmus segítségével Torlódásvezérlés (congestion control) * a TCP PDU-jának neve 12

A TCP szegmens felépítése 0 4 8 16 19 24 31 SOURCE PORT DESTINATION PORT SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER DATA OFFSET RESERVED CONTROL BITS WINDOW CHECKSUM URGENT POINTER OPTIONS (IF ANY) PADDING DATA 13

A TCP szegmens mezői 1 Source Port (16 bit) A portszám azon a gépen, ahonnan a szegmenst küldték. Destination Port (16 bit) A portszám azon a gépen, ahova a szegmenst küldték. Sequence Number (32 bit) Az átvitel során az oktetteket sorszámozzuk. A sorszám megmutatja, hogy a szegmens adatmezőjének kezdő oktettje hányas sorszámot kapott. Acknowledgement Number (32 bit) Annak az oktettnek a sorszámát adja meg, amelyiket várja; addig az összes nyugtázva van. 14

A TCP szegmens mezői 2 Data Offset (4 bit) 32 bites egységekben mérve megadja az adatmező kezdetét a TCP szegmens kezdetéhez képest. Tulajdonképpen a fejrész hossza, mint IP-nél az IHL mező. Reserved (4 bit) Későbbi használatra fenntartva. Az RFC 793 szerint még a 4 bites Data Offset után következő 6 bit nem volt használatban. Ez jobbról 2-vel csökkent RFC 3168 alapján. Control bits (8 bit) RFC 793 szerint csak 6 darab volt, az RFC 3168 vezette be a CWR és az ECE vezérlőbiteket a korábban fenntartott 6 bites terület végén. A vezérlőbiteknél mindig azok 1 értéke esetén áll fenn az, amit a nevük jelent. 15

A TCP szegmens mezői 3 A vezérlőbitek és értelmezésük CWR (Congestion Window Reduced) - RFC 3168 A torlódási ablakot szűkítették. ECE (ECN-Echo) - RFC 3168 Torlódásjelző visszhang. URG (urgent) A sürgős adat mutató érvényes. ACK (acknowledgment) A nyugta mező érvényes. PSH (push) Jelzi az adat késedelem nélküli továbbításának igényét. RST (reset) Egy host összeomlása, vagy más okból összezavart összeköttetés helyreállítására szolgál, illetve ha egy porton semmilyen program sem figyel, akkor az adott portra megkísérelt kapcsolatfelépítés esetén mindjárt az első SYN csomagra RST a válasz. 16

A TCP szegmens mezői 4 A vezérlőbitek és értelmezésük (folytatás) SYN (synchronize) Összeköttetés létesítésére szolgál. A kapcsolatfelépítés bemutatásánál bővebben foglalkozunk a használatával FIN (finish) Összeköttetés bontására szolgál Window (16 bit) Az ablakméretet adja meg. A forgalomszabályozáshoz szükséges mechanizmus használja, részletesen foglalkozunk vele. 17

A TCP szegmens mezői 5 Checksum (16 bit) A kiszámításához egy pseudo headert tesznek a TCP szegmens elé, ami többek között a forrás és cél IP-címeket is tartalmazza (lásd az UDP-nél), az adategység végén pedig esetleg egy 0 értékű oktettel kiegészítik, ha anélkül páratlan oktettből állna (mert 16 biten történik az ellenőrző összeg kiszámítása) A számítás ugyanazzal a módszerrel történik, mint az IP-nél. Urgent Pointer (16 bit) A sürgős adat az adatfolyam menetét megszakítva a többi adatot megelőzve feldolgozandó adat. A sürgős adat az adatmező elejétől kezdődik, a mutató a sürgős adat után következő (már nem sürgős) adat kezdetére mutat. Options, Padding Az IP-hez hasonlóan itt is lehetnek opciók és szükség lehet helykitöltésre. 18

A TCP kapcsolat felépítése A háromutas kézfogás (3-way handshake) eljárás Esemény A-nál Üzenetek Esemény B-nél SYN küldése, seq = x SYN + ACK vétele, y tárolása SYN vétele, x tárolása SYN, seq = y; ACK, ack_no=x+1 küldése ACK, ack_no=y+1 küldése (lehet benne adat) Megjegyzések ACK vétele A két kezdő sorszám nem nulla, hanem véletlenszerűen választott Mindkét oldalon ún. kapcsolatstruktúrában tárolják a kapcsolat paramétereit. A harmadik üzenet után a felek készen állnak a megbízható kommunikációra 19

A TCP kapcsolat lebontása A négyutas kézfogás (4-way handshake) eljárás Esemény A-nál Üzenetek Esemény B-nél FIN seq=x küldése ACK vétele FIN vétele ACK y+1 küldése time_wait állapot FIN vétele ACK x+1 küldése FIN, seq=y küldése ACK vétele Megjegyzések: A kapcsolat lezárását kezdeményező fél a 3. lépésben (a FIN vételére) lép be a time_wait állapotba A 2. és 3. lépés akár össze is vonható, B ACK+FIN-t is küldhetne 20

A TCP állapotátmenet diagramja Forrás: http://ssfnet.org/exchange/tcp/tcptutorialnotes.html#st 21

A megbízható átvitel eszközei Ellenőrző összeg használata IP: csak a fejrészre TCP: az egész szegmensre sőt: pseudo header IPv4-nél 3x4=12 bájt: benne IP-címek és Protocol mező IPv6-nál jóval nagyobb: https://tools.ietf.org/html/rfc2460#section-8.1 Sorszámozás és nyugtázás Irányonként A bájtokat sorszámozzuk A kezdőértékeket a kapcsolatfelvétel már beállította 22

A TCP nyugtázása Eredetileg kumulatív nyugtázás ha a nyugta értéke n, akkor azt jelenti, hogy: (n-1) sorszámig mindent sikeresen vett n-től várja A kezdeti implementációkban (Tahoe, Reno) csak ez Opcióként: SACK: Selective ACK (RFC 2018) SYN szegmensben engedélyezhető ( SACK Permitted opció) Továbbiakban egy opcióban akár több blokk is megadható 23

Várakozás nyugtázásra Várakozás ACK-ra time out esetén újra el kell küldeni Mekkorára válasszuk a time out-ot? Probléma a túl kicsivel és a túl naggyal Megoldás: a teljes terjedési időhöz (RTT - round-trip time) igazítani, adaptívvá tenni 24

Time-out meghatározása Eredeti algoritmus Measure SampleRTT for each segment/ack pair Compute weighted average of RTT EstimatedRTT = a*estimatedrtt + b*samplertt, where a+b = 1 a between 0.8 and 0.9; b between 0.1 and 0.2 Set timeout based on EstimatedRTT TimeOut = 2 * EstimatedRTT Rosszul kezeli az elvesző nyugtát, és a szórást Karn/Partridge Algoritmus Do not sample RTT when retransmitting Double timeout after each retransmission Jacobson/Karels Algoritmus Érdeklődőknek: http://ssfnet.org/exchange/tcp/tcptutorialnotes.html#ar 25

Forgalomszabályozás 1 A forgalomszabályozás (flow control) célja annak az elkerülése, hogy egy gyorsabb állomás egy lassabbat forgalommal elárasszon úgy, hogy a lassabb nem képes azt feldolgozni. A problémára a nyugta megvárása nem jó megoldás, erre nézzünk meg egy számpéldát: Legyen A és B távolsága 200km, az őket összekötő üvegszál törésmutatója n=1,5, a fénysebesség 300000km/s (vagyis üvegben 200km/ms), az átviteli sebesség 100Mbit/s, MTU=1000 bájt. Egy 1000 bájtos csomag 8000 bit, ennek a leadásához 80 us szükséges. Az oda-vissza út ideje csak a terjedési időt számítva is 2ms. Ez azt jelenti, hogy minden 2000us-ból 80us-ot tudunk kihasználni, ami 4%! A nyugtát tehát nem szabad megvárni! 26

Forgalomszabályozás 2 A TCP forgalomszabályozásra a csúszó ablak (sliding window) módszert használja. Az ablak értéke egy hitelkeretnek tekinthető, azt fejezi ki, hogy egy állomás ennyi adat elküldését engedélyezi a másik fél számára úgy, hogy a másik fél még nem kapott nyugtát róla. A kapcsolat felépülésekor az állomások közlik a másik féllel a kezdő ablakméretüket is A kommunikáció során az állomások az ablakméretet megváltoztathatják, de ha csökkentik, azt csak úgy tehetik, hogy annak jobb széle (ami a még elküldhető oktett sorszáma) ne mozogjon balra (ha egy oktettről egyszer kijelentettük, hogy elküldhető, azt már nem vonhatjuk vissza). 27

Forgalomszabályozás 3 window size=7 1 2 3 4 5 6 7 8 9 10 11 ack. no. ezt még lehet adni Az ablak bal széle az utolsó nyugta értékétől kezdődik (ez 3, ami azt jelenti, hogy 2-ig nyugtázva, a 3 következik), az ablak mérete pedig 7. Ez a küldő számára azt jelenti, hogy a 3-tól 9-ig terjedő sorszámú, összesen 7 darab oktett az, amit anélkül elküldhet, hogy nyugtát kapna. Például elküldi a 3-6 sorszámú oktetteket. Ekkor nem kell nyugtára várnia, hanem küldheti a 7-9 sorszámúakat is. Egy 7-es nyugtával azonban legalább 3-as ablakméretet kell kapnia Ha viszont változatlan ablakméret mellett kap egy 7-es nyugtát, akkor a 7-től 13-as oktettek küldhetők: az ablak előre csúszott. 28

Elég-e az ablakméret? A TCP fejrész Window mezőjének mérete 16 bit. Elég-e ez? Nézzünk meg egy számpéldát: A 16 bites mező 64 kb-os (pontosabb 65535 bájt) ablakméretet tesz lehetővé, ami 512 kbit. Legyen A és B távolsága 2000km, és az átviteli sebesség 1Gbit/s. Az oda-vissza út ideje csak a terjedési időt számítva is 20ms. Ennyi idő alatt 20Mbit adatot tudnánk leadni, de az ablakméret csak 0.5Mbit-et tesz lehetővé! Megoldás: Window Scaling Option, RFC 7323 Ha mindkét fél jelezte a SYN szegmensben, hogy támogatja Használatkor az opcióban n-et küldik, 2 n szorzó, n<=14 29

Torlódásvezérlés A torlódásvezéslés (congestion control) célja annak az elkerülése, hogy valamely közbenső hálózati eszköz (router, link) túlterhelése miatt a hálózat teljesítőképessége radikálisan csökkenjen (congestive collapse). Miért is fordulhatna elő ilyen állapot? Ha a hálózat terhelése túl nagy (megközelíti a kapacitását), akkor a csomagvesztés megnő, és a TCP elkezdi újra küldeni a nyugtázatlan szegmenseket. Az újraküldés okozta terhelés növekedés további csomagvesztéseket okoz, és az önmagát gerjesztő folyamat odáig jut, hogy a hálózat kapacitásának csak a töredékét kitevő átvitelre képes, ráadásul rendkívül rossz minőségi jellemzők mellett. 30

Torlódásvezérlés a TCP-ben (elvek) Módszer: ha úgy érzékeljük, van elég átbocsátóképesség, akkor növeljük az adatsebességet, amíg torlódásra utaló jeleket nem tapasztalunk Additive increase multiplicative decrease (AIMD) módszer Új paraméter: congestion window (rövidítve: CongWin) Kezdetben: CongWin:=MSS (maximum segment size) Növeljük a CongWin-t minden RTT (round-trip time) alatt MSS-sel, amíg vesztést nem érzékelünk Csökkentsük a CongWin-t felére minden vesztéskor Küldhető adatok = min(vevő Window size, CongWin) Hogyan érzékeljük a torlódást (vesztést)? timeout letelt, nem jött nyugta többszörös nyugta érkezett ugyanarra a szegmensre (miért?) TCP és UDP Dallos, Lencse, Szabó, BME Hálózati Rendszerek és Szolgáltatások Tanszék 31

Az adatsebesség alakulása AIMD esetén 24 kbyte adatsebesség adatsebesség = CongWin RTT Byte/sec 16 kbyte 8 kbyte idő TCP és UDP Dallos, Lencse, Szabó, BME Hálózati Rendszerek és Szolgáltatások Tanszék 32

TCP torlódásvezérlés: további részletek Az AIMD kiegészítései: Slow Start az összeköttetés kezdetén a sebesség gyors (exponenciális) növelése az első vesztésig vagy egy küszöbig (ssthresh), utána AIMD Speciális viselkedés többszörös nyugták (3 duplicate ACK, azaz 4 ACK ugyanarra a szegmensre) esetén (fast retransmit, Fast Recovery), lásd: TCP Tahoe, TCP Reno Számos TCP implementáció közül néhány fontosabb: TCP Reno, TCP New Reno (RFC 6582) TCP CUBIC (Linux default) Compound TCP Érdeklődőknek: http://en.wikipedia.org/wiki/tcp_congestion_avoidance_algorithm TCP és UDP Dallos, Lencse, Szabó, BME Hálózati Rendszerek és Szolgáltatások Tanszék 33

USER DATAGRAM PROTOCOL 34

A User Datagram felépítése 0 15 16 31 Source Port Length Destination Port Checksum Data 35

A User Datagram mezői Source Port (16 bit) A portszám azon a gépen, ahonnan a user datagramot küldték. Destination Port (16 bit) A portszám azon a gépen, ahova a user datagramot küldték. Length (16 bit) A user datagram hossza oktettekben. (min. 8) Checksum (32 bit) A TCP ellenőrző összeghez hasonlóan, ún. pszeudo-fejrésszel együtt számolják, ami tartalmazza az IP címeket is. (Számítási módszere is azonos.) Opcionális: ha nincs, akkor a mező értéke: 0. 36

UDP checksum számítása A checksum számítási módja: 1-es komplemens 16 bites szavakra Tartalmazza az IP-címeket is annak ellenőrzésére, hogy a datagramm elérte a helyes címzettet, nemcsak a helyes portot Pseudo-header használatával: 0 31 Destination IP address Zero Protocol UDP Length 0 7 8 15 16 31 IP protocol type UDP = 17 Source IP address Az UDP datagramm hossza (a pseudo-header nélkül) 37

A TCP és az UDP összehasonlítása Mindkettő host layer/transport layer protokoll Mindkettő portokat kezel multiplexelés/demultiplexelés ezáltal interface nyújtása az alkalmazói folyamatok felé A TCP összeköttetés-alapú, megbízható transzport szolgáltatás sorrendhelyes, hibamentes szállítást nyújt ára: késleltetés (kapcsolat felépítése és bontása) Az UDP összeköttetés-mentes, best effort szolgáltatás nem garantál célba juttatást, csak hibajelzést nyújt gyorsan célba juttat TCP és UDP Dallos, Lencse, Szabó, BME Hálózati Rendszerek és Szolgáltatások Tanszék 38

Néhány alkalmazás szállítási protokollja Alkalmazás Alkalmazási rétegbeli protokoll E-mail SMTP TCP Távoli bejelentkezés Telnet, SSH TCP Web-elérés HTTP TCP File-átvitel FTP TCP Névfeoldás BIND UDP, TCP Routing RIP UDP Hálózatmenedzsment SNMP UDP, TCP Használt transzportprotokoll VoIP, média-streaming RTP vagy nem szabványos UDP TCP és UDP Dallos, Lencse, Szabó, BME Hálózati Rendszerek és Szolgáltatások Tanszék 39

Összefoglalás A TCP és az UDP közös jellemzői és képességei Transmission Control Protocol TCP szegmens felépítése Kapcsolat felépítése és lebontása Megbízható átvitel megoldása Forgalomszabályozás (flow control) Torlódásvezérlés (congestion control) User Datagram Protocol 40

Kérdések? KÖSZÖNÖM A FIGYELMET! Dr. Lencse Gábor tudományos főmunkatárs BME Hálózati Rendszerek és Szolgáltatások Tanszék lencse@hit.bme.hu 41