operációs rendszerek és hálózatok geial501m a szállítási...

52
Operációs rendszerek és hálózatok GEIAL501M A szállítási réteg 2013/2014. tanév, I. félév Dr. Kovács Szilveszter © E. IV. / 1. 2013/2014. tanév, I. félév Dr. Kovács Szilveszter E-mail: [email protected] Informatikai Intézet 106. sz. szoba Tel: (46) 565-111 / 21-06

Upload: others

Post on 20-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Operációs rendszerek és hálózatok GEIAL501M

A szállítási réteg

2013/2014. tanév, I . félév

Dr. Kovács Szilveszter © E. IV. / 1.

2013/2014. tanév, I . félév

Dr. Kovács Szilveszter

E-mail: [email protected]

Informatikai Intézet 106. sz. szoba

Tel: (46) 565-111 / 21-06

Page 2: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

A szállítási réteg

Szállítási entitás

4. Szállítási

réteg

4. Szállítási

réteg

Viszony-réteg

Viszony-réteg

Hálózati-réteg

Hálózati-réteg

TSAP

TPDU

NSAP

Szállítási entitás

TSAP

NSAP

Szállítási protokoll

Dr. Kovács Szilveszter © E. IV. / 2.

• TSAP: Transport Service Access Point

• TPDU: Transport Protocol Data Unit

• A 4. réteg, a hálózati- és a viszonyréteg között

Page 3: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Addressing

TSAPs, NSAPs and transport connections.

Dr. Kovács Szilveszter © E. IV. / 3.

Page 4: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Connection EstablishmentHow a user process in host 1 establishes a connection

with a time-of-day server in host 2.

Dr. Kovács Szilveszter © E. IV. / 4.

Page 5: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

A szállítási réteg• Feladata

– Interfész alulra, felülre – Megbízható, gazdaságos adatszállítást forrástól célhosztig,

függetlenül a hálózatoktól (a céltól, forrástól, a közbenső alhálózatoktól), ÖK vagy ÖK mentes alapon

– Tudjuk, hogy valódi end-to-end szolgáltató entitások vannak

• Miért kell?

Dr. Kovács Szilveszter © E. IV. / 5.

• Miért kell?– Az interfész - ha nem lenne, nem lehetne hozzáférni– Megbízhatóság - ezt az adatkapcsolati és a fizikai réteg is

biztosíthatná.– ÖK alapú és ÖK mentes szolgálat - ezt is biztosíthatják az

alsóbb rétegek (ált. csak az egyiket).– Vég-vég - ezt a hálózati réteg is biztosíthatná

(lásd IPX datagram kapcsolat – nincs is)

Page 6: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

A szállítási réteg

• Miért kell?– A szállítási réteg a hálózati rétegre épül– A hálózati réteg lehet ÖK alapú, vagy ÖK mentes, – Nem szükségszerűen megbízható!

(Az IP ÖK mentes és megbízhatatlan)– Még megbízható hálózati réteg mellet is lehetnek

Dr. Kovács Szilveszter © E. IV. / 6.

– Még megbízható hálózati réteg mellet is lehetnek hibák .(A teljes hibamentesség a hálózati rétegben nem megoldható, nem az a „dolga”.)

Page 7: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

A szállítási réteg

• Legyen a hálózati réteg fölött a szállítási, ami valóban megbízható end-to-end szolgálatokat biztosít,

• az alkalmazások így

• szabványos interfészeken keresztül különböző

Dr. Kovács Szilveszter © E. IV. / 7.

• szabványos interfészeken keresztül különböző hálózatokon (megbízható és megbízhatatlan is) is jól működhetnek.

• Ezért a hálózat megbízhatósága szempontjából a szállítási réteg lényeges funkciókat lát el.

Page 8: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

A szállítási réteg

• Fontos cél a szállítási rétegben– hibamentes átvitel akár hibákkal terhelt hálózati

réteg fölött is!– Ebből következik: a a fölöttes rétegeknek tényleg

nem kell emiatt nyugtázással stb. foglakozni!– (PL. ha egy hálózati összeköttetés megszakad, akkor

Dr. Kovács Szilveszter © E. IV. / 8.

– (PL. ha egy hálózati összeköttetés megszakad, akkor a szállítási réteg nyit egy újat és ott folytatja, ahol a régivel abbahagyta. A fölöttes réteg észre sem veszi ezt.)

• Fontos célja még– elrejteni a konkrét hálózatot (annak minden

problematikáját, sajátságát) a felettes rétegek elől.

Page 9: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Üzenet szegmentálás-összerakás; nyalábolás-szétbontás

• Darabolás - összerakás– van, hogy egy üzenet (ami a felsőbb rétegtől jön) túl

nagy a hálózati (esetleg az adatkapcsolati) rétegnek– A szállítási réteg ilyenkor darabol - összerak.

• Multiplexálás - demultiplexálás– Előfordul, hogy sok kis üzenet van ugyanahhoz a

Dr. Kovács Szilveszter © E. IV. / 9.

– Előfordul, hogy sok kis üzenet van ugyanahhoz a célhoz.

– A szállítási réteg nyalábolhatja ezeket egy csomagba (illetve demultiplexálja ezt a másik oldalon). Teljesítménynövelés.

Page 10: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Kapcsolati szolgálatok

• Csomagszámozás (szegmensszámozás)– A helyes sorrend visszaállítás szolgálathoz kellhet

(ÖK mentes kapcsolatnál feltétlenül)

• Hibavezérlés– Lehetnek hibás, elveszett, vagy késő csomagok,– a várt csomagszám térből kilógó csomagok.

Dr. Kovács Szilveszter © E. IV. / 10.

– Megoldások:• Ellenőrző összeg a csomagokban,• időzítések, hogy a késő csomagokat eldobjuk,• a csomagszámozás egyedi legyen.

• Az end-to-end kapcsolathoz kell flow-control– A kérdés itt: vajon mind a forrás, mind a cél foglakozzon az

elveszett - késő csomag problémából való kilábalással

Page 11: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

A szállítási réteg szolgálat primitívjei

• Lehet ÖK mentes és ÖK alapú szolgálat. Utóbbi lehet megerősítéses.

• A primitívek– T-CN-kérés (connect)– T-CN-bejelentés– T-CN-válasz(megerősítéses szolgálathoz)

Dr. Kovács Szilveszter © E. IV. / 11.

– T-CN-válasz(megerősítéses szolgálathoz)– T-CN-megerősítés (megerősítéses szolgálathoz)– T-DC-kérés (disconnect)– T-DC-bejentés– T-DA-kérés(data)– T-DA-bejelentés

ÖK menteshez

Page 12: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Forgatókönyv példák(A viszonyréteg szemszögéből)

T-CN-kér

T-CN-bej

T-CN-válT-CN-meg

T-DA-kérT-DA-bej

T-DA-kér

idő

T-CN-kérT-CN-bej

T-DC-kérT-DC-bej

ÖK visszautasítva

T-CN-kérT-CN-bej

T-CN-válT-CN-meg

T-DA-kérT-DA-bej

T-DA-kér

Dr. Kovács Szilveszter © E. IV. / 12.

T-DA-kérT-DA-bej

T-DC-kérT-DC-bej

idő

Megerősített ÖK alapú

ÖK visszautasítva a hívott által

idő

ÖK alapú, bontást a cél kezdeményezi

(Szinkronizációhoz!)

T-DA-kérT-DA-bej

T-DC-kérT-DC-bej

Page 13: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

A TCP/IP protokol stackApplicationApplication

TransportTransport

InternetInternet(Network)(Network)

Network AccessNetwork Access

User ProcessUser Process

IPIP IGMPIGMPICMPICMP

UDPUDPTCPTCP

User ProcessUser ProcessUser ProcessUser ProcessUser ProcessUser Process

DoDDoD

Dr. Kovács Szilveszter © E. IV. / 13.

PhysicalPhysical

Network AccessNetwork Access(Data Link)(Data Link) Hardware InterfaceHardware InterfaceARPARP RARPRARP

Physical layerPhysical layer

Szállítási réteg:TCP: Transmission Control Protocol (Telnet, Rlogin, FTP, SMTP, DNS)

→ megbízható adattovábbítás (összeköttetés alapú szolgálat)UDP: User Datagram Protocol (TFTP, SNMP, DNS)

→ összeköttetés-mentes datagramm szolgálat

Page 14: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

UDP: User Datagram Protocol

• Egyszerű,

• ÖK mentes (datagram),

• nem megbízható szolgálat.

• Minden továbbítandó üzenet 1 UDP datagram (amit egy IP datagam-ként, csomagként

Dr. Kovács Szilveszter © E. IV. / 14.

(amit egy IP datagam-ként, csomagként továbbítanak)– Az IP enkapszuláció:

IP header UDP header UDP Data

UDP datagram

IP datagram

20 byte 8 byte

Page 15: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

UDP Header• 16 bit a forrás és cél szolgálat elérési port szám• 16 bit UDP length: a teljes UDP csomag hossza byte-

ban– 16 bit → min 8 (header): max 216 – 8byte (UDP header)

(az IP csomag 216 – 20byte IP header és abba is bele kell férnie)(implementációfüggően ált. kevesebb)

• 16 bit UDP checksum az UDP header+UDP data-n (biztonság növelésére az IP header egy részére is kiterjed, hasonlóan a TCP checksum-hoz),

Dr. Kovács Szilveszter © E. IV. / 15.

kiterjed, hasonlóan a TCP checksum-hoz), a feladó generálja (opcionális), a vevő ellenőrzi: 1 komplemens 16 bit összeg(ha a vett CS=0→ az adó nem használja )

Source Port number (16)Destin. Port number (16)

UDP Length (16) UDP Checksum (16)

Data (if any)

8 byte

0 1516 31

Page 16: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

UDP pszeudo fej a checksumszámításhoz

Source IP Address (32)

Destination IP Address (32)

UDP Length (16)Zero (8) Protocol:17 (8)

Source Port num. (16) Dest. Port num. (16)

UDPPszeud.

head

UDP

Dr. Kovács Szilveszter © E. IV. / 16.

Source Port num. (16) Dest. Port num. (16)

UDP Length (16) UDP Checksum (16)

Data

UDPhead

PAD: 0

• Ha a Checksum = 0 lenne → 65535 (-0, 1-komplemenst) továbbít• A Checksum = 0 a checksum hiányát jelzi (az adó nem használja)

Page 17: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Transmission Control Protocol

• Bonyolultabb, • ÖK alapú (sorrendhelyes),• megbízható (hibamentes),• duplex (kétirányú) szolgálatot biztosít. • Meghatározza az IP felé az optimális csomagméretet• „TCP szegmens”: az IP felé továbbított adategység• „Byte stream service”: ha a kapcsolat felépült, a forrás

Dr. Kovács Szilveszter © E. IV. / 17.

• „Byte stream service”: ha a kapcsolat felépült, a forrás byte-okat küld, a cél byte-okat fogad folyamatosan (virtuális áramkör byte-okra)

• IP enkapszuláció:

IP header TCP header TCP Data

TCP segment

IP datagram

20 byte 20 byte

Page 18: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Transmission Control Protocol

• TCP = Transmission Control Protocol• Connection-oriented OP Transport• RFCs

– RFC 793 defines TCP– RFC 1122 – bug fixes and clarification– RFC 1323 – extensions

• TCP segment

Dr. Kovács Szilveszter © E. IV. / 18.

• TCP segment– One IP datagram

• MTU = Maximum transfer unit

Page 19: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Service Model

• Well-known ports = 0-1023• Inetd = super server can handle requests for multiple

services

Port Protocol Use21 FTP File transfer23 Telnet Remote login

Dr. Kovács Szilveszter © E. IV. / 19.

23 Telnet Remote login25 SMTP E-mail69 TFTP Trivial File Transfer Protocol79 Finger Lookup info about a user80 HTTP World Wide Web

110 POP-3 Remote e-mail access119 NNTP USENET news

Page 20: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Header

Sequence Number (32)

Acknowledgment Number (32)

Window size (16)H len reserved(6)

Source Port num. (16) Dest. Port num. (16)

TCP Checksum (16) Urgent Pointer (16)

Slidingwindow-hoz

Aktuális vevő-ablak méretmax. 64k

Flag-ek

Szegmens sorszám

Nyugta sorszám

Dr. Kovács Szilveszter © E. IV. / 20.

TCP Checksum (16) Urgent Pointer (16)

Data (if any)

Options (if any)

URG

ACK

PSH

RST

SYN

FIN

max. 64k

TCP Header hossz (4)32 bites szavakban⇒ max. 60 byte

Page 21: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Header• Socket pair:

– Client IP, Client Port, Server IP, Server Port négyes azonosítja a kapcsolatot.

• A flag-ek– SYN: új kapcsolat megnyitásakor (ezt jelzi) →

„szinkronizáció”, → a sequence number ilyenkor: ISN (Initial SN) – kezdeti érték

– ACK: a nyugta sorszáma érvényes (nyugta)

Dr. Kovács Szilveszter © E. IV. / 21.

– ACK: a nyugta sorszáma érvényes (nyugta)– URG: Urgent pointer érvényes: az a sürgős üzenet végére

mutat (pl. megszakítás kérelem, előzze meg a többit) – PSH: a küldő a leggyorsabban küldje és a vevő a lehető

leggyorsabban továbbítsa az adatokat az alkalmazás felé (ne puffereljen - Push)

– RST: Reset Connection(azonnali kapcsolatbontás, bármely fél kezdheti, RST a válasz rá)

– FIN: a küld ő befejezte az adatok küldését

Page 22: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

• MSS: Maximum Sized Segment– A kapcsolat felépítésekor (SYN) mindkét

oldal maghatározhatja a számára maximális szegmensméretet

• Ablak skálatényező (window scale) RFC 1323– Max 16 bit ablak méret balra tolás 216 -> 230

TCP Header - opciók

Dr. Kovács Szilveszter © E. IV. / 22.

– Max 16 bit ablak méret balra tolás 216 -> 230

• Szelektív ismétlés – NAK, negatív nyugta, RFC 1106

Page 23: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Pseudo header – used for checksum

Dr. Kovács Szilveszter © E. IV. / 23.

• TCP Checksum (16):– Header + Data + Pseudo header– Az egész 1 komplemens összegének

(számításkor 0-nak veszi az ellenőrző összeg helyét)– Negatív (1 komplemens) előjellel vett értéke az

ellenőrző összeg– Ellenőrzéskor az egész összege így 0 (1 komplemens)

Page 24: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP connections

• Full duplex

• Byte stream

• Urgent data

Dr. Kovács Szilveszter © E. IV. / 24.

Page 25: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Protocol

• Sliding window

• Timer

• Seq and ack are byte count

• Ack has next seq number expected

Dr. Kovács Szilveszter © E. IV. / 25.

Page 26: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Connection Establishment

SYN=1, ACK=0

Initial Sequence Number (ISN)

Dr. Kovács Szilveszter © E. IV. / 26.

(a) TCP connection establishment in the normal case.(b) Call collision – két kapcsolat indul egyszerre ugyanazon socketek között,

de csak egy jön létreA SYN szegmens(még ha az adat üres is) egy byte hosszú, ezért

egyértelműen nyugtázható

Page 27: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Connection Establishment

Dr. Kovács Szilveszter © E. IV. / 27.

(a) Normal operation, (b) Old CONNECTION REQUEST appearing out of nowhere. (c) Duplicate CONNECTION REQUEST and duplicate ACK.

RST bitHáromutas kézfogás

Page 28: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Connection Establishmentfizikai órához kötött ISN

Max. ennyi ideig élhet egy szegmens a hálózatban

Dr. Kovács Szilveszter © E. IV. / 28.

(a) TPDUs may not enter the forbidden region.(b) The resynchronization problem.

Page 29: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Egy példaA V

Segment 2

Segm 1

Segm 3 A nyugta a következő byte-ra mutat

Initial Sequence Number (ISN)

A VKapcsolat bontás

kezdet

Kapcsolat kész(mindketten nyugtázzák)

A két irány külön is bonthat,így a másik fél tovább küldhet

Dr. Kovács Szilveszter © E. IV. / 29.

Kommunikálnak

(forgóablak)

Kapcsolat vége

(mindketten nyugtázzák)tovább küldhet

Szimmetrikus kapcsolat bontás

Page 30: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Asszimetrikus összeköttetés bontás

Dr. Kovács Szilveszter © E. IV. / 30.

(A TCP szimmetrikus)

Page 31: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Connection Release

The two-army problem.

Dr. Kovács Szilveszter © E. IV. / 31.

Nincs biztos módszer, az utolsó üzenet vesztéséről a küldőnek nem lehet tudomása – időzítő használata a bontásnál

Page 32: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Connection Release

(a) Normal case of a three-way handshake. (b) final ACK lost.

6-14, a, b

Dr. Kovács Szilveszter © E. IV. / 32.

Page 33: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Connection Release

(c) Response lost. (d) Response lost and subsequent DRs lost.

6-14, c,d

Dr. Kovács Szilveszter © E. IV. / 33.

Page 34: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Finite State Machine• TCP can best be explained with a theoretical model called a finite state

machine.

• Various TCP states and their descriptions are:– CLOSED closed– LISTEN listening for connection – SYN SENT active, have sent SYN– SYN RECEIVED have sent and received SYN– ESTABLISHED established connection– CLOSED WAIT have received FIN, waiting for close

States involved in establishing a connection

States involved when remote end

Dr. Kovács Szilveszter © E. IV. / 34.

– CLOSED WAIT have received FIN, waiting for close– LAST ACK have received FIN and close, awaiting final ACK– CLOSED closed– FIN WAIT 1 have closed, sent FIN– CLOSING closed, exchanged FIN, awaiting final ACK– FIN WAIT 2 have closed, FIN is acknowledged, awaiting FIN– TIME WAIT in 2MSL (MSL=30secs-2mins) wait after close– CLOSED closed

when remote endinitiates shutdown

States involvedwhen local endinitiates shutdown

Page 35: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Control segments

• SYN = connection

• ACK = acknowledge

• FIN = end

• RST = error

Dr. Kovács Szilveszter © E. IV. / 35.

Page 36: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Finite State Machine

CLOSED

LISTEN

SYNSENT

CLOSE

SYNRECVD

ESTAB-

Passive open close

timeout/RST

Close/timeout/RST

SYN/SYN+ACK

FIN/ACK

Client server

Simultaneous open

/FIN

(SYN-flood)

Dr. Kovács Szilveszter © E. IV. / 36.

CLOSEWAIT

LASTACK

ESTAB-LISHED

CLOSINGFIN

WAIT1

FINWAIT2

TIMEWAIT

FIN/ACK

Close/FIN

ACK/

timeout after 2 segment lifetime (2MSL)

Pas

sive

clo

se

Simultaneous close

active close

FIN/ACK

FIN/ACK

ACK/

Clo

se/F

IN

ACK/

Page 37: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Transmission Policy: Window management

Dr. Kovács Szilveszter © E. IV. / 37.

Page 38: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP timers

• Retransmission– set this timer when sending segment. When timer goes off retransmit segment.

• Persistence– set this timer when sender receives zero window size. When timer goes off sender sends probe segment.

• Keep alive– set this timer when sender sends segment or receiver receives segment. When timer goes off send

Dr. Kovács Szilveszter © E. IV. / 38.

or receiver receives segment. When timer goes off send probe.

• TIMED WAIT – set this timer when closing connection. When timer goes off remove connection record.

Page 39: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Transmission Policy: Nagle algoritmus

• Ha a küldő egy byte-onkéntkapja a küldendő adatokat, elküldi az első byte-ot és küldés nélkül gyűjti a többi byte-ot, míg az elsőnek a nyugtája vissza nem érkezik és akkor küldi el az egészet egyben.

Majd mindig megvárja az összes nyugtát

Dr. Kovács Szilveszter © E. IV. / 39.

• Majd mindig megvárja az összes nyugtátmielőtt az újabb egységet küldené

• Csökkenti a sok kis (egy byte) csomag küldéséből adódó veszteséget (pl. telnet)

Page 40: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Transmission Policy: Silly Window syndrome

• Akkor történik, ha az adatok nagy blokkokban érkeznek, de a interaktív alkalmazás csak egy byte-onként olvassaazokat.

• A vevőnek csak akkor kell új vevőablak méretet küldenie, ha már van elég helye (MTU or half buffer) , nem pedig byte-onként.

Dr. Kovács Szilveszter © E. IV. / 40.

or half buffer) , nem pedig byte-onként.

Page 41: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Transmission Policy: Silly Window syndrome

Dr. Kovács Szilveszter © E. IV. / 41.

Page 42: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Congestion Control

Dr. Kovács Szilveszter © E. IV. / 42.

(a) A gyors hálózat alacsony kapacitású fogyasztót táplál.(b) A lassú hálózat nagy kapacitású fogyasztót táplál.Két ablak adat az adóban: min (vevő ablak, torlódási ablak)

Page 43: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Congestion Control• Slow start - Jacobson

– torlódási ablak = 1 MTU – val indul– Ha nyugtázzák, megduplázza a méretét– Folytatja– Exponenciálisan nő a mérete – a torlódási küszöbig

• Torlódási küszöb (threshold) – initially 64 KB

Dr. Kovács Szilveszter © E. IV. / 43.

• Torlódási küszöb (threshold) – initially 64 KB– Időtúllépésesetén a torlódási küszöböt az aktuális

torlódási ablak felére állítja, majd– újból „Slow start”, – de úgy, hogy csak a torlódási küszöbig exponenciális, – azt elérve sikeresség esetén is csaklineárisan nő– maximuma a vevő ablakméret (csak addig nőhet)– Az ICMP forrás folytást = id őtúllépésként értelmezi

Page 44: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Congestion Control

Dr. Kovács Szilveszter © E. IV. / 44.

An example of the Internet congestion algorithm.

Page 45: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

TCP Timer Management

Dr. Kovács Szilveszter © E. IV. / 45.

(a) Probability density of ACK arrival times in the data link layer. (b) Probability density of ACK arrival times for TCP.

Page 46: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Jacobson

• RTT = round trip time

• RTT = α RTT + (1- α)M, ahol M a legutóbbi ack time• Tipikusan α = 7/8• Time out = βRTT

ahol eleinte β=2, majd β a nyugta beérkezés sűrűségfüggvényének szórásával arányos

Dr. Kovács Szilveszter © E. IV. / 46.

sűrűségfüggvényének szórásával arányos• A szórás becslése csúszóátlagolással:

D = α D + (1-α)| RTT – M|, • Timeout = RTT + 4 D• Karn: IP over radio

– Ne frissítsők az RTT-t az újraküldött szegmensekkel– Duplázzuk a timeout-ot minden hiba esetén

Page 47: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

The Real-Time Transport Protocol

(a) The position of RTP in the protocol stack. (b) Packet nesting.

Dr. Kovács Szilveszter © E. IV. / 47.

Page 48: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

The Real-Time Transport ProtocolThe RTP header.

(Kódolás pl. MP3) (Blokkszámláló, egyesével nő)

(Blokk fizikai időbélyeg (pontosabb időzítéshez))

(A Blokk melyik folyamhoz tartozik (egy folyam több külonböző tip blokk lehet))

Dr. Kovács Szilveszter © E. IV. / 48.

Ver: 2P: padding 4byte többszörösével, az utolsó padding byte, a padding byte-ok számaX: van fejrész kiterjesztés (a kiterjesztés első byte-ja a kiterjesztés hossza)CC: 0-15 a hozzájáruló források számaM: alkalmazásfüggő marker (mozgókép keret eleje)

(Forrásoldali keverők jelenléte esetén)

Page 49: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Transitional TCP (UDP helyett)(a) RPC using normal TPC. (b) RPC using T/TCP.

Dr. Kovács Szilveszter © E. IV. / 49.

Ebből a FIN előtt lehet több is

Page 50: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Fast TPDU Processing

Dr. Kovács Szilveszter © E. IV. / 50.

(a) TCP header. (b) IP header. In both cases, the shaded fields are taken from the

prototype without change.

Page 51: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Performance Problems in Computer Networks

The state of transmitting one megabit from San Diego to Boston(a) At t = 0, (b) After 500 µsec, (c) After 20 msec, (d) after 40 msec.

Dr. Kovács Szilveszter © E. IV. / 51.

Bandwidth-delay product (sávszélesség*körbejárási idő). A küldőtől a vevőig és vissza a csővezeték tárolókapacitása

Page 52: Operációs rendszerek és hálózatok GEIAL501M A szállítási rétegusers.iit.uni-miskolc.hu/~szkovacs/OpNet/OpNetE4.pdf · 20 byte 8 byte. UDP Header • 16 bit a forrás és

Protocols for Gigabit NetworksTime to transfer and acknowledge a 1-megabit file over a 4000-km line.

Dr. Kovács Szilveszter © E. IV. / 52.