+ All Categories
Home > Documents > Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing....

Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing....

Date post: 06-Feb-2018
Category:
Upload: vannhi
View: 217 times
Download: 0 times
Share this document with a friend
31
Transportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systém č č ů Fakulta informa ních technologií č eské vysoké u ení technické v Praze Č č © Vladimír Smotlacha, 2011 Po íta ové sít BI-PSI č č ě LS 2010/11, P edn. 6 ř https://edux.fit.cvut.cz/BI-PSI Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Transcript
Page 1: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

Transportní vrstva

RNDr. Ing. Vladimir Smotlacha, Ph.D.

Katedra po íta ových systémč č ůFakulta informa ních technologiíč

eské vysoké u ení technické v PrazeČ č© Vladimír Smotlacha, 2011

Po íta ové sít BI-PSIč č ěLS 2010/11, P edn. 6ř

https://edux.fit.cvut.cz/BI-PSI

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Page 2: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

2BI­PSI, Transportní vrstva

Obsah přednášky

● transportní vrstva– druhy služeb

– protokoly

– vytvoření a uzavření spojení

– řízení toku

● TCP● UDP● RTP, RTCP

Page 3: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

3BI­PSI, Transportní vrstva

Problém dvou armád

A zvítězí, pokud A1 i A2zaútočí najednou● A1 pošle zprávu● není jisté že projde

– A2 odešle potvrzení

● co když se ztratí zpráva nebo potvrzení?– A1 odpoví dalším potvrzením

● stále není jisté, že A1 i A2 se dohodli– další potvrzení, ... atd

● Důkaz neexistence řešení: sporem– nechť n je délka nejkratšího protokolu, je poslední

potvrzení nezbytné?

Page 4: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

4BI­PSI, Transportní vrstva

Služby

● transportní vrstva – hranice mezi– aplikací (software)

a

– sítí (technologie)

● transparentní přenos dat mezi koncovými uživateli– spolehlivost

– řízení datového toku

– segmentace dat

– oprava chyb

Page 5: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

5BI­PSI, Transportní vrstva

Adresace

● služba musí mít adresu– TSAP – Transport Service Access Point

● předdefinované TSAP („well-known“)– např. port 80 pro http

● dynamicky přidělované– portmapper

● registruje TSAP pro služby● např. BitTorrent

Page 6: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

6BI­PSI, Transportní vrstva

Navázání spojení

● triviální řešeni:CONNECTION REQUEST --->

<--- CONNECTION ACCEPTED

– problém: zpožděný duplikovaný paket CR

● vylepšení– unikátní identifikátor každé relace

– omezená životnost paketu

Page 7: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

7BI­PSI, Transportní vrstva

Navázání spojení (2)

● three-way handshake

CONECTION REQUEST ---> (seq = x)

<--- ACKNOWLEDGE (seq = y, ack = x)

DATA ---> (seq = x+1, ack = y)

Page 8: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

8BI­PSI, Transportní vrstva

Ukončení spojení

● asymetrické ukončení– jeden účastník ukončí spojení

– příklad: telefonní hovor

● symetrické ukončení – obě strany se musí dohodnout

– neexistuje řešení, pokud komunikace není bezpečná● Problém dvou armád (Two Armies Problem / Coordinated

Attack Problem / Two Generals' Problem)

Page 9: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

9BI­PSI, Transportní vrstva

Řízení toku

● princip stejný jako v linkové vrstvě– detekce chybných paketů

– eliminace duplikovaných paketů● sekvenční číslo

– omezený počet nepotvrzených paketů

– „plovoucí okénko“ (sliding window)

Page 10: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

10BI­PSI, Transportní vrstva

TCP

Transmission Control Protocol● služba v L4

– spojově orientovaná

– zabezpečená

– duplexní

● mnoho implementací– různé vylepšení (kontrola zahlcení, ...)

● Reno● Tahoe● Vegas

Page 11: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

11BI­PSI, Transportní vrstva

Hlavička TCP

verze IP délka záhlaví typ služby celková délka

idetifikace IP datagramu příznaky posunutí fragmentu

TTL protokol vyšší vrstvy kontrolní součet IP záhlaví

IP adresa odesílatele

IP adresa příjemce

volitelné položky IP hlavičky

zdrojový port TCP cílový port TCP

pořadové číslo odesílaného bajtu

pořadové číslo očekávaného bajtu

délka záhlaví rezerva U A P R S F délka okna

kontrolní součet TCP ukazatel naléhavých dat

volitelné položky TCP hlavičky

data

Page 12: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

12BI­PSI, Transportní vrstva

TCP – navázání spojení

sn 100; S ; mss1460

sn 10; ack 101; AS; mss1460

sn 101; ack 11; A ;

sn 11-20; ack 101; AP

SYN_SENT

ESTABLISHED

ESTABLISHED

SYN_RCVD

LISTEN

sn 101; ack 21; A

Page 13: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

13BI­PSI, Transportní vrstva

Ukončení spojení

sn 50; ack 70; AF ;

sn 70; ack 51; AP;

sn 81; ack 51; AP

FIN_WAIT1

FIN_WAIT2

LAST_ACK

CLOSE_WAIT

sn 51; ack 81; A

sn 181; ack 51; AF

sn 51; ack 182; ATIME_WAIT

CLOSED

CLOSED

11,25min

2min, 30s

Page 14: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

14BI­PSI, Transportní vrstva

Zabezpečení

● kontrolní součty● detekce duplicitních paketů● opakované odeslání● správné seřazení● timeout

Page 15: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

15BI­PSI, Transportní vrstva

TCP – stavový diagram

.

Page 16: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

16BI­PSI, Transportní vrstva

Socket

● standardní programátorské rozhraní – poprvé v Berkeley UNIX 4.2BSD

● primitiva– SOCKET – vytvoření koncového bodu

– BIND – přiřazení adresy k socketu

– LISTEN – schopnost akceptovat spojení

– ACCEPT – pasivní akceptace spojení

– CONNECT – aktivní pokus o spojení

– SEND – odeslání dat

– RECEIVE – přijetí dat

– CLOSE – uvolnění spojení

Page 17: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

17BI­PSI, Transportní vrstva

Okénko

● příjemce rezervuje buffer – okénko pro přijímaná data

● příjemce v odpovědi uvádí aktuální velikost okna – okno zmenšuje, pokud data nestíhá zpracovat

– odesílatel nesmí vyslat více dat

Page 18: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

18BI­PSI, Transportní vrstva

Sliding window

zdroj: http://condor.depaul.edu/jkristof/technotes/tcp.html

Page 19: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

19BI­PSI, Transportní vrstva

Potvrzování (acknowledge)

● příjemce odesílá ACK– uvede pořadové číslo byte, který se očekává

– tím potvrdí, že všechny předešlé byte byly přijaty● není nutné všechny potvrzovat pakety jednotlivě

● timeout (u odesílatele)– nepřišlo potvrzení do očekávané doby

– vysílání se vrátí k prvnímu nepotvrzenému paketu

Page 20: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

20BI­PSI, Transportní vrstva

Potvrzování (2)

● duplicitní ACK – pokud některý paket nepřijde, ale následující ano,

příjemce zopakuje poslední ACK

– využije se jako indikátor, že paket se možná ztratil

● timeout (u příjemce)– do očekávaného okamžiku nepřišel nový paket

● odešle se znovu poslední ACK● max. 3x opakovat

Page 21: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

21BI­PSI, Transportní vrstva

Proměnné

Některé proměnné využité v kontrole zahlcení:● MSS (Maximum Segment Size) – max. velikost

posílaného paketu– definuje příjemce

● SSTHRESH (Slow-start Threshold) – hranice pravděpodobného zahlcení– odhad, kolik nepotvrzených dat lze odeslat

– v násobcích MSS

● CWND (Congestion Window) – okénko odesílatele– kolik dosud nepotvrzených dat odesílatel vyšle

Page 22: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

22BI­PSI, Transportní vrstva

Kontrola zahlcení

● okénko odesílatele (Congestion Window)● pomalý start („slow start“)

– počáteční hodnota CWND je 1

– zpočátku se okénko odesílatele (CWND) zvětšuje o 1 po každém ACK

● velikost okénka roste exponenciálně !!

● po dosažení SSTHRESH se CWND zvětšuje lineárně

Page 23: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

23BI­PSI, Transportní vrstva

Kontrola zahlcení (2)

● zahlcení (congestion)– ztratil se buď paket nebo jeho ACK

– pokud ACK nepřijde vůbec (timeout)● opakuje se vysílání od potvrzeného paketu● opakuje se slow start

– pokud 3x přijde opakované ACK staršího paketu (duplicitní ACK), aktivuje se „fast retransmit“ a „fast recovery“

● ztracený paket je znovu odeslán (nikoliv ale následující)– tzv. „selective retransmit“

● CWND se zmenší na polovinu

Page 24: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

24BI­PSI, Transportní vrstva

Využití TCP

● všude, kde je nutný zabezpečený datový kanál

● není nutné pro– malé bloky dat

● má velkou režii (čas i data)

● nevhodné pro– real-time aplikace: VOIP, streaming

● paket je doručen za každou cenu – nežádoucí zpoždění

– vestavné systémy (embedded-systems)● příliš komplexní

Page 25: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

25BI­PSI, Transportní vrstva

UDP

● User Datagram Protocol● služba v L4

– nespojovaná

– nezabezpečená

● porty

● max 64 kB dat – fragmentace v IP je nežádoucí

● např. DNS přenáší nejvíce 512 Byte

Page 26: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

26BI­PSI, Transportní vrstva

Hlavička UDP

verze IP délka záhlaví typ služby celková délka

idetifikace IP datagramu příznaky posunutí fragmentu

TTL protokol vyšší vrstvy kontrolní součet IP záhlaví

IP adresa odesílatele

IP adresa příjemce

volitelné položky IP hlavičky

zdrojový port UDP cílový port UDP

délka dat kontrolní součet UDP záhlaví

data

Page 27: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

27BI­PSI, Transportní vrstva

Využití UDP

● malé bloky dat, pokud– nevadí případná ztráta

– je nežádoucí režie TCP

● real-time aplikace– je lepší ztratit část dat než čekat

Page 28: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

28BI­PSI, Transportní vrstva

RTP

Real-time Transport Protocol● přenos proudu (stream) dat mezi koncovými body v

reálném čase

● hlavička obsahuje „timestamp“– čas od začátku streamu

– jednotka závisí na aplikaci

– umožní interpretovat přijatý blok

● implementováno většinou nad UDP

Page 29: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

29BI­PSI, Transportní vrstva

Využiti RTP

● libovolné multimediální formáty– H.264, MPEG-4, MJPEG, MPEG, ...

● videokonference● data streaming● IP telefonie

Page 30: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

30BI­PSI, Transportní vrstva

Poděkování

Janu Kubrovi z FEL ČVUT za poskytnutí slajdů, z nichž některé byly částečně využity v této přednášce

Page 31: Transportní vrstva - edux.fit.cvut.cz · PDF fileTransportní vrstva RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra po íta ových systémč č ů Fakulta informa ních technologiíč

31BI­PSI, Transportní vrstva

Děkuji za pozornost


Recommended