Számítógépes Hálózatok és Internet Eszközök 2008 20. Hálózati réteg – Congestion Control Szállítói réteg – szolgáltatások, multiplexálás, TCP
Hálózatok, 2008
1
Lukovszki Tamás
Torlódás felügyelet (Congestion Control) Minden hálózatnak korlátos az átviteli sávszélessége
Ha több adatot vezetünk a hálózatba, akkor az torlódáshoz (congestion) vezet, vagy akár a hálózat összeomlásához (congestive collapse)
Source 10-M 1 bps Ethe rnet
Source 2
Router 1.5-Mbps T1 link
Destination
I FDD bps M 0 10
Következmény: adatcsomagok nem érkeznek meg Hálózatok, 2008
2
Lukovszki Tamás
Lavina jelenség Congestion control feladata a lavina jelenség elkerülése A hálózat túlterhelése csomagok elvesztését okozza (puffer túlcsordulás, ...) Csomagvesztés a csomag újraküldését eredményezi Az újraküldés tovább növeli a hálózat terhelését Még több csomagvesztés Még több újraküldött csomag ...
Hálózatok, 2008
3
Lukovszki Tamás
Követelmények a Congestion Control-lal szemben Hatékonyság Késés (delay) kicsi Az átvitel (throughput) nagy Fairness Minden folyam egy fair részt kap a sávszélességből Priorizálás lehetséges felhasználástól és szükséglettől függően
Hálózatok, 2008
4
Lukovszki Tamás
A Congestion Control eszközei A kapacitás megnövelése Új kapcsolatok aktiválása Időt vesz igénybe és rendszerint a rendszer adminisztrátorok beavatkozását Erőforrás foglalás és hozzáférés szabályzás (connection admission control CAC) Új forgalom megtiltása a kapacitáskorlát közelében Tipikus (virtual) circuit switching esetén A terhelés csökkentése és szabályzása A meglévő kapcsolatok által okozott terhelés (decentrális) csökkentése Szükség van visszacsatolásra a hálózatból Tipikus Packet Switching esetén TCP-ben felhasználja Hálózatok, 2008
5
Lukovszki Tamás
Helye és mértéke Router vagy Host orientált Mérési pont (hol észleljük a torlódást) Szabályozás (hol történik a döntéshozás) Akció (hol történik beavatkozás) Ablak-alapú vagy ráta-alapú Ráta: x byte pro sec. Ablak: lásd az adatkapcsolati réteg ablak mechanizmusait az Interneten használják
Hálózatok, 2008
6
Lukovszki Tamás
Router akciója: csomag törlés A routerben puffertúlcsordulás esetén (legalább) egy csomagot törölni kell Az utoljára érkezett csomagot törli (drop-tail queue) Intuició: “régi” csomagok fontosabbak mint az újak Pl. go-back-n strategiánál Egy régebbi csomagot töröl a pufferből Intuició: Multimedia forgalom esetén az új csomagok fontosabbak mint a régiek
Hálózatok, 2008
7
Lukovszki Tamás
Csomagvesztés implicit visszajelzést ad Csomagvesztés a router pufferének túlcsordulása miatt visszajelzést ad a küldőnek (kimaradó nyugta a szállítói rétegben) Internet Feltesszük: csomagvesztés főleg torlódás miatt történik Vezetékes hálózatokban ez feltehető Vigyázat: ez nem igaz vezeték nélküli hálózatokra Következmény: A transzport protokoll hozzáigazítja a küldési rátát az új szituációhoz
Hálózatok, 2008
8
Lukovszki Tamás
Proaktív módszerek Puffer túlcsordulás a hálózat túlterhelését jelzi Ötlet: Proaktív visszajelzés = torlódás elkerülés (Congestion avoidance) Akció már a kritikus értékeknél pl. egy adott pufferhossz túllépése esetén pl. ha folyamatosan több forgalom érkezik, mint amit ki tud a hálózat szállítani ... A router vészkészültségi állapotba kerül MaxThreshold
MinThreshold
AvgLen Hálózatok, 2008
9
Lukovszki Tamás
Proaktív akció: lefojtó csomagok (Choke packets) Ha a router vészkészültségi állapotban van: Choke-csomagokat (lefojtó csomagokat) küld a forráshoz Choke-csomag a forrást a küldési ráta csökkentésére szólítja fel Probléma: Kritikus állapotban még több csomagot hoz létre A forrás reakciójáig csak nő a probléma
Hálózatok, 2008
10
Lukovszki Tamás
Proaktív akció: figyelmeztető bitek Ha a router vészkészültségi állapotban van: Figyelmeztető biteket küld minden csomagban a cél-állomásnak A cél-állomás ezeket a figyelmeztető biteket a nyugta csomagokban továbbküldi a forrásnak A forrás megkapja a figyelmeztetést és csökkenti a küldési rátát
Hálózatok, 2008
11
Lukovszki Tamás
Proaktív akció: Random early detection (RED) Elveszett csomagokat a túlterhelés indikátorának tekinti Routerek önkényesen csomagokat törölnek a vészkészültségi állapotban Az eldobási ráta növekedhet a puffer méretének növekedésével P(drop) MaxThreshold
MinThreshold
1.0
MaxP MinTh
MaxTh
AvgLen
AvgLen
Hálózatok, 2008
12
Lukovszki Tamás
A küldő reakciója Ráta-alapú protokollok A küldési ráta csökkentése Kérdés: mennyivel? Ablak-alapú protokollok: A congestion-ablak csökkentése pl. AIMD
Hálózatok, 2008
13
Lukovszki Tamás
Circuit Switching vagy Packet Switching Circuit Switching (vonal kapcsolás) Egy kapcsolat létrehozása felhasználók között kapcsoló állomások által vonalak explicit hozzárendelésével vagy erőforrások explicit hozzárendelésével, pl. idő slots Quality of Service egyszerű, kivéve a kapcsolatfelépítés Probléma statikus hozzárendelés a kommunikációs médium inefficiens kihasználása dinamikus terhelés esetén Felhasználás Telefon, telegráf, mobil telefon Hálózatok, 2008
14
Lukovszki Tamás
Circuit Switching vagy Packet Switching Packet Switching (csomag kapcsolás) Az IP alapelve Az adatokat csomagokra osztja és a csomagokat küldő/fogadó információval ellátva egymástól függetlenül küldi Probléma: Quality of Service A kapcsolat minősége az egyes csomagoktól függ A csomagok puffereződnek vagy el is veszhetnek Előny: A médium hatékony kihasználása dinamikus terhelés esetén Összefoglalva Packet Switching gyakorlatilag minden felhasználási területen felváltotta a Circuit Switching-et Ennek oka: a médium hatékony kihasználása Hálózatok, 2008
15
Lukovszki Tamás
Szállítói réteg
Hálózatok, 2008
16
Lukovszki Tamás
A szállítói réteg (transport layer) szolgáltatásai Kapcsolat nélküli vagy kapcsolat orientált (connectionless/connection oriented) Gondoljunk az ISO/OSI ülés rétegére Megbízható vagy nem megbízható (reliable/unreliable) „Best effort” vagy „Quality of Service” Hibafelügyelet Torlódás felügyelet (congestion control) vagy torlódás felügyelet nélkül Lehetőség több végpontra egy végrendszeren (host) Demultiplexálás Több interakciós modell támogatása Byte-áram, üzenetek, „Remote Procedure Call“
Hálózatok, 2008
17
Lukovszki Tamás
Multiplexálás a szállítói rétegben A hálózati réteg az adatokat kontroll nélkül továbbítja a szállítói rétegnek A szállítói rétegnek az adatokat különböző felhasználásokhoz kell hozzárendelni: pl. Web, Mail, FTP, ssh, ... TCP/UDP ezt port-szám alapján teszi pl. port 80 a Web-szerverhez
Hálózatok, 2008
18
Lukovszki Tamás
Szállítói réteg (transport layer) TCP (transmission control protocol) Megbízható adatfolyamot hoz létre két végpont között A felhasználói réteg adatáramát csomagokra osztja A másik oldal a csomagok fogadásától nyugtákat küld (Acknowledgment) UDP (user datagram protocol) Egyszerű nem megbízható szolgáltatás csomagok küldésére Az inputot egy datagrammá alakítja A felhasználói réteg határozza meg a csomag méretét A csomagokat a hálózati réteg által küldi Routing nincs: végpont-végpont protokollok
Hálózatok, 2008
19
Lukovszki Tamás
20
Lukovszki Tamás
Adatok burkolása
Hálózatok, 2008
TCP-fejléc (I) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
„Checksum“ Fejléchez és adatokhoz Fejléchossz (data offset) A változó hosszúságú opciómező miatt
Hálózatok, 2008
21
TCP-Fejléc (II) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Opció-mező pl. MSS (maximum segement size): A fogadó megadja a kívánt csomagméretet Tekintet nélkül az IP MTU-ra (max. transmission unit) Fragmentálás lehetséges az IP által Hálózatok, 2008
22
Küldő-Port + Cél-Port-Nr. Megenged több TCPkapcsolatot IP-címenként Sorszám Minden adatbyte meg van számozva modulo 232 = a szegmens első bytejának a száma Nyugta szám Az ACK-Flag által aktivivált Az első még nem feldolgozott adatbyte száma = utolsó sorozatszám + utolsó adatmennyiség Lukovszki Tamás
FLAGS (függetlenül felhasználhatók) URG: sürgős (urgent) ACK: nyugta (acknowledgment) Aktiviálja a nyugta számot PSH: Push Gyors adattovábbítás a felhasználói rétegnek RST: Reset A válasz hiba esetén: connection reset by peer SYN:Synchronize Kapcsolatfelépítés és a kezdő sorszám megadása FIN: Finished (Egy) adatfolyam befejezése
Lukovszki Tamás
TCP (I) TCP (Transmission Control Protocol) egy kapcsolatorientált megbízható szolgáltatás bidirekcionális byte-folyamokhoz TCP Kapcsolatorientált Két résztvevő. Egy egy résztvevő socket által azonosított: socket: IP-cím és port TCP-kapcsolat egyértelműen azonosított egy socketpár által Nincs broadcast sem multicast Kapcsolatfelépítés és lezárás szükséges Amíg egy kapcsolat nincs (rendesen) lezárva, addig aktív
Hálózatok, 2008
23
Lukovszki Tamás
TCP (II) TCP egy kapcsolatorientált megbízható szolgáltatás bidirekcionális bytefolyamokhoz TCP megbízható Minden adatcsomag megérkezését nyugtázza (acknowledgment) A nem nyugtázott adatcsomagokat újraküldi “Checksum” a fejléchez és csomaghoz TCP számozza a csomagokat és sorbarendezi a fogadónál Törli a duplikált csomagokat
Hálózatok, 2008
24
Lukovszki Tamás
TCP (III) TCP egy kapcsolatorientált megbízható szolgáltatás bidirekcionális bytefolyamokhoz TCP egy szolgáltatás bidirekcionális byte-folyamokhoz Az adatok két egymással ellentétes irányú byte-sorozatként (=8 bit) kerülnek átvitelre A tartalom nem interpretálódik Az adatcsomagok időbeli viselkedése megváltozhat: átvitel sebessége növekedhet, csökkenhet, más késés, más sorrendben is megérkezhetnek Megpróbálja az adatcsomagokat időben egymáshoz közel kiszállítani Megpróbálja az átviteli közeget hatékonyan használni
= kevés csomag Hálózatok, 2008
25
Lukovszki Tamás
Kapcsolatfelépítés Rendszerint Client-Server-kapcsolat Ekkor felépítés 3 TCP-csomaggal (=3 szegmens) Az első SYN-szegmensben az MSS (maximum segment size) is átvitelre kerül client
SYN: seq.nr.: j
server
SYN: seq.nr.: k ACK: ack.nr.: j+1 ACK: ack.nr.: k+1
Hálózatok, 2008
26
Lukovszki Tamás