transportní vrstva - akela.mendelu.czlidak/site/slidy2008/prednaska14.pdf · počítačové sítě...
TRANSCRIPT
-
Potaov stTransportn vrstva
ICMP IGMP OSPF
TCPUDP Transportn vrstva
Rozhran protokol
Rozhran slueb
1
6
Ethernetdriver
ARP RARP
IP
Vrstva sovho rozhran
Sov vrstva
17protokol
SAP
890201
Rozhran pstupu k I/O
-
Systm AUivatel transportn sluby
Systm BUivatel transportn sluby
Transportn Transportn
Aplikan vrstva
Sluby poskytovan uivateli transportu dat
DATADATA
2
DATA
Transportn entita
Transportn entita
Sov vrstva
Transportn vrstva
transport dat
Sluby poadovan od sov vrstvy
DATA
-
Potaov stTransportn vrstva
Transportn vrstva poskytuje slubu aplikan vrstv
Je nejni vrstvou, na kterou se odvolvaj sov aplikace (uivatelsk a systmov)
Transportn sluba sekvenn penos dat mezi komunikujcmi procesy
3
komunikujcmi procesy
Vytv souasn vce paralelnch transportnch spojen
Transportn vrstva zahrnuje 2 transportn protokoly
UDP (User Datagram Protocol)
TCP (Transmission Control Protocol)
Transportn protokoly jsou prostedkem, kterm se zajist pro uivatelskou aplikaci spojen dvou pota v IP sti
-
Potaov stTransportn vrstva
Pstup k transportn vrstv z vrstvy aplikan rozhran slueb
Multiplexing transportnch slueb a IP slubyAplikan protokol 2
Aplikan protokol 4
Aplikan protokol 6
4IP
UDP TCP
Aplikan protokol 3
Aplikan protokol 1
Aplikan protokol 5
Aplikan protokol 7
porty
-
Potaov stTransportn vrstva
Rozhran SAP mezi aplikan a transportn vrstvou rozhran slueb identifikace aplikanho protokolu, kter bude transportn slubu pouvat
slo portu 16 bitov promnn
Port SAP transportn vrstvy vstup do user-end systmu
5
systmu
Ze strany user-end systmu je port schrnka na obsah transportnho PDU slo portu uruje proces, kter generuje data (smr out) nebo je spotebitelem dat (smr in)
Soket (socket) IP adresa user-end systmu + slo portu jednoznan identifiktor poskytovatele/spotebitele transportovanch dat v internetu (tj. sovho procesu)
-
Potaov stTransportn vrstva
Port slo portu dekadick vyjden 1 65535 Adresov prostor port spravuje IANA (Internet
Assigned Numbers Authority) pevn dan hodnoty pro poskytovatele uritch sovch slueb (tj. procesy typu server)
6
procesy typu server) Oblast 1 1023 well-known porty pro znm
sov sluby Oblast 1024 65635 mon registrace pro firemn
vvoj, pouit apod., jinak k disposici operanm systmm (pidlovn procesm typu klient spotebitelm sovch slueb) porty alokovan
-
Potaov stTransportn vrstva
Klient Server
1025
10251028
23X
Y
A
7
1025
1028
23
Servery pouvaj well-known porty, na kterch oekvaj (naslouchaj) inicializan zprvy klienta. Typicky procesy daemon v OS UNIX
ZB
Klienti pouvaj alokovan systmem doasn pidlen porty
-
Potaov stTransportn vrstva - protokoly
Protokol UDP Sluba nespojovan (connection-less) nespolehliv,
transport nelze dit
Velmi efektivn rychl, mal provozn reie
Pouv se
8
Pouv se
pro aplikace s malm objemem penench dat (zprvy se stanovenou velikost apod.)
pro aplikace vyadujcch broadcast nebo multicast
pro aplikace, kter si sprvnost datovch penos samy zabezpe
-
Potaov stTransportn vrstva
Typick spotebitel transportn sluby UDP -programy pro systmov sov sluby en smrovacch informac implementace protokolu
RIP
9
en systmovch hodin implementace protokolu NTP
peklady domnovch jmen implementace protokolu DNS
sprva IP st implementace protokolu SNMP
aj.
-
Potaov stTransportn vrstva - protokol UDP
Formt PDU protokolu UDP UDP datagram (UDP paket)
UDP zhlav UDP data
Checksum kontroln souet UDP paketu + UDP pseudozhlav
10
Zdrojov port
Dlka paketu Checksum
Clov port0 15 16 31
paketu + UDP pseudozhlav
Zdrojov IP adresa
Dlka paketu
Clov IP adresa
0 15 16 31
Protokol0
-
Potaov stTransportn vrstva
UDP paket v IP datagramu
typicky je jeden UDP paket vysln v jednom IP
IP zhlav UDP zhlav UDP data (PDU aplikanho protokolu)
20B 8B
11
typicky je jeden UDP paket vysln v jednom IP datagramu
-
Potaov stTransportn vrstva
Protokol TCP Sluba spojovan (connection- oriented), spolehliv Typ sluby - PAR (Positive Acknowledgement with
Retransmission)
Zajist doruen datovch segment ve stejnm poad, v jakm byly odeslny s vylouenm ztrty, bitov
12
v jakm byly odeslny s vylouenm ztrty, bitov nesprvnosti a duplicity
Protokol TCP Vytvo mezi komunikujcmi procesy (jejich porty)
virtuln osmibitov full-duplex komunikan kanl Pojem: TCP spojen dvojice komunikujcch soket
-
Potaov stTransportn vrstva
Typicky pouvaj transportn slubu TCP uivatelsk sov aplikace (penos soubor mezi sovmi uzly FTP, relace pes sov terminl TELNET, pstup ke zdrojm systmu WWW HTTP, pedvn elektronickch potovnch zprv SMTP, atd.)
Komunikace mezi procesy probh ve fzch
13
Komunikace mezi procesy probh ve fzch
1. vytvoen spojen
2. zen penos proudu dat (sekvence datovch segment) s eventulnm opakovanm odeslnm nekorektn pijatch segment
3. ukonen spojen
-
Potaov stTransportn vrstva
Pstup k transportn vrstv z vrstvy aplikan rozhran slueb
Multiplexing transportnch slueb a IP sluby
RIP DNSHTTP
TELNET
14IP
UDP TCP
RTPSNMP SMTP FTP
porty
-
Potaov stTransportn vrstva
Formt TCP zhlav
Poadov slo Sequence Number
Poadov slo potvrzen Acknowledgement Number
Window Size
Zdrojov port Clov port
Offset dc bity---
0 15 16 31
15
Checksum Urgent Pointer
TCP volby (Options)
Window Size Offset dc bity---
TCP data
-
Potaov stTransportn vrstva
Sequence Number (SN) je-li nastaven flag SYN, potom je SN poten slo sekvence
(ISN Initial Sequence Number) nen-li nastaven flag SYN, potom je SN poadov slo prvnho
datovho oktetu v segmentu (vzhledem k cel sekvenci penench dat v rmci tohoto TCP spojen)
16
Acknowledgement Number (ACKN) potvrzovac slo mus bt vyslno bhem celho TCP spojen pedstavuje SN nsledujcho segmentu (tj. kter je oekvn) (viz protokol Positive Acknowledgement with Retransmission)
Data Offset = dlka zhlav = potek dat (udvno ve slovech - 4 oktety)
-
Potaov stTransportn vrstva
dc bity Flags 10 15
URG uruje platnost pole URGENT POINTER ACK - uruje platnost pole ACKN
dc bity
URG ACK PSH RST SYN FIN
17
ACK - uruje platnost pole ACKN PSH oznamuje, e segment obsahuje data, kter se maj
bezprostedn pedat clovmu procesu RST vyvol reset TCP spojen SYN iniciuje TCP spojen, vyvol proces synchronizace, tj.
vmnu SN obou stran FIN iniciuje ukonovac proces TCP spojen (zpravidla v
ppad konce sekvence dat)
-
Potaov stTransportn vrstva
Window Size uruje velikost sliding window max. 65535 (poet oktet, kter je mono penst bez ACK)
Checksum kontroln souet (vetn TCP pseudozhlav viz. UDP pseudozhlav)
Urgent Pointer specifikuje offset poslednho oktetu urgentnch dat (spolu s dcm bitem URG)
TCP volby pole promnn dlky (dorovnv se na hranici 2
18
TCP volby pole promnn dlky (dorovnv se na hranici 2 oktet) Maximum segment size (2, 4) udv maximln monou
velikost segmentu penenho v rmci TCP spojen (max. 65535 B)
Window Scale Factor (3, 3) umon zvten velikosti plovoucho okna (65 535 x 214 )
Timestamp (8, 10) nastaven asovch znmek na kad penen segment pro men RTT
Typ Dlka Data
-
Potaov stTransportn vrstva
TCP spojen: socket A socket B Pklad: 195.178.78.10.22 - 195.178.80.140.10500
sluba SSH: server klient TCP spojen dynamick objekt v definovanm stavu Stav TCP spojen uruje jeho pedchoz stav a asov
zvisl udlost
19
zvisl udlost pedn dc informace spojen (TCP protokol) pkaz aplikace (poadavek na sputn sluby, poadavek na
penos dat aplikace, poadavek na ukonen penosu dat aplikace)
V OS Unix TCP spojen obsluhuje jdro Parametr jdra maximln poet otevench TCP spojen Tabulky TCP spojen (datov struktury) utilita netstat
-
Aplikace TCP/UDP TCP/UDP aplikace
server X
klient Z
server Yserver Z
klient X
TCP
TCP
20
server K
klient W
klient Z
klient J
server J
klient Y
klient K
P
UDP
UDP
Porty
Well-known
alokovan
-
Potaov stTransportn vrstva
Mechanismy zen TCP spojen
Synchronizace komunikujcch stran ve fzi inicializace (otevrn) TCP spojen si strany vymn sv poten sekvenn sla (ISN Initial Sequence Number).
Posloupnost pijmanch segment TCP PDU (segment) Posloupnost pijmanch segment TCP PDU (segment) PAR strana potvrzuje korektn pijet pedchozch segment poadovm slem segmentu nsledujcho, tzn. ackB = seqA + 1 a seqB = ackA 1
zen toku zamezen zahlcen virtulnho kanlu metoda Sliding Window postupn zvyovn velikosti strana pijmac data aplikace uruje maximum pi velikosti okna = 0 spojen zstv oteven
21
-
Potaov stTransportn vrstva
Stavy TCP spojen pi normlnm prbhu otevrn
Klient Server
LISTEN (passive open)(active open)SYN_SENT
SYN seq JSYN_RCVD
22
ESTABISHED
SYN seq K, ack J+1
ack K+1, seq J + 1
-
Potaov stTransportn vrstva
Klient Server Klient ServerESTABISHED
seq K+1 ack J+1
seq J+1 ack K+2
ESTABISHED
seq 2 ack 1S A
1 3S A
23
seq K+2 ack J+2
seq J+1 ack K+2
seq J+2 ack K+3
Jednoduch potvrzovn zen Sliding Window (= 3)
2 .
3 .
4 4
5 5
S A
3 2
4 3
5 4
-
Potaov stTransportn vrstva
Stavy TCP spojen pi normlnm prbhu uzavrn Klient Server
(active close)FIN_WAIT_1
FIN_WAIT_2
CLOSE_WAIT (passive close)FIN seq M
ack M+1
24
FIN_WAIT_2 ack M+1
ack N+1
FIN seq N
TIME_WAIT
LAST_ACK
CLOSED
-
Potaov stTransportn vrstva
Pechodov diagram stav TCP spojen
25