rm1.09. transportni sloj
DESCRIPTION
tsTRANSCRIPT
-
ETF, Katedra za raunarsku tehniku i informatiku1
Raunarske mree 1
9. deo: Transportni sloj
Predava:doc. dr Slavko Gajin, [email protected]
Asistent:Draen Drakovi, [email protected] Tubi, [email protected]
http://elearning.rcub.bg.ac.rs2015. god
-
ETF, Katedra za raunarsku tehniku i informatiku2
Transportni sloj Transportni sloj (Layer 4)
u TCP/IP modelu predstavlja vezu izmeu aplikacija i mree (po vertikali) komunikacija na 4. nivou izmeu dva udaljena hosta (po horizontali) - podrazumeva se
mogunost komunikacije sa-kraja-na-kraj koja se ostvaruje na mrenom nivou Zadatak transportnog sloja je odravanje viestrukih komunikacija izmeu
aplikacija na obe strane
Osnovne funkcije segmentacija i reasembliranje
segmentacija niza podataka na aplikativnom nivou na manje delove (segmente) na strani poiljaoca
intergrisanje segmenata u originalni niz podataka na aplikativnom nivou (reasembliranje) na prijemnoj strani
multipleksiranje komunikacija identifikovanje aplikacija koje alju podatke
na strani poiljaoca prosleivanje podataka oznaenim
aplikacijam na prijemnoj strani
-
ETF, Katedra za raunarsku tehniku i informatiku3
Transportni sloj Dodatne funkcije
Connection oriented - uspostavljanje i odravanje komunikacione sesije Reliable delivery - pouzdan prenos
izgubljeni ili oteeni segmenti se detektuju i ponovo alju, tako da je zagarantovan pouzdan prenos svih podatak u celini
Ordered data reconstruction - odravanje redosleda segmenata po razliitim putevima segmenti mogu stii u promenjenom redosledu, ali prijemna strana
rekonstruie originalni redosled Flow control - kontrola toka
upravljanje prenosom podataka u zavisnosti od mogunosti i trenutnog optereenja mree (smanjenje brzine u sluaju zaguenja)
Mehanizam pouzdanog prenosa i redosleda segmenata sequence nunber rastui redosled segmenata funkcije:
praenje poslatih paketa potvrda primljenih paketa (acknowledgement) retransmisija ne potvrenih segmenata
posledica dodatno optereivanje (overhead) transportnog sloja, koje utie na performanse
-
ETF, Katedra za raunarsku tehniku i informatiku4
Pouzdan prenos ? Razliite aplikacije imaju razliite potrebe
Za neke aplikacije pouzdan prenos je prioritet npr. prenos datoteka (FTP), email, HTTP itd.
Za neke aplikacije pouzdan prenos ne samo da nije potreban, ve moe i da degradira performanse zbog dodatnoh overhead-a npr. IP telefonija, streaming audio/video itd.
-
ETF, Katedra za raunarsku tehniku i informatiku5
TCP i UDPDve vrste protokola 4. nivoa u TCP/IP modelu UDP User Datagram Protocol
samo osnovne funkcije connection-less protokol - jednostavan, nema garancije pouzdanosti prenosa i
redosleda - best-effort princip VoIP, IP telefonija, Video streaming, DNS, TFTP, SNMP....
TCP Transition Control Protocol osnovne i dodatne funkcije
connection oriented protokol pouzdan prenos odravanje redosleda kontrola toka
primeri: FTP, HTTP, HTTPS, email...
-
ETF, Katedra za raunarsku tehniku i informatiku6
Portovi identifikacija aplikacija na hostu Multipleksiranje komunikacija
polje protocol u zaglavlju na 2. nivou identifikuje protokole 3. nivoa polje protocol u zaglavlju na 3. nivou identifikuje protokole 4. nivoa na 4. nivou se koristi polje port celobrojna vrednost, dva bajta
Port - identifikacija aplikacija na matinom hostu gde se izvravaju aplikacije na jednom hostu imaju razliite portove
Transportni sloj na osnovu broja porta prosleuje podatke do odgovarajue aplikacije
-
ETF, Katedra za raunarsku tehniku i informatiku7
Portovi identifikacija aplikacija na hostu IANA dodeljuje fiksne portove za pojedinane aplikacije Vrste portova (opsezi brojeva za portove razliitih namene)
0-1023 - Well-known ports serverske aplikacije 1024-49151 - Registered Ports za klijentske i serverske aplikacije 49152-65535 Private and/or Dynamic Ports dinamiki se dodeljuju klijentskim
aplikacijama Primeri protova
TCP 21 FTP (File Trasport Protocol) 23 Telnet 25 SMTP (Simple Mail Transport Protocol - slanje email-a) 110 POP3 (prijem email-a) 80 HTTP (web) 443 HTTPS (secure HTTP) ...
UDP 53 DNS (Domain Name System) 69 TFTP (Trivial File Trasport Protocol) 161 SNMP (Simple Network Management Protocol) 5004 RTP (Real Time Protocol) ...
-
ETF, Katedra za raunarsku tehniku i informatiku8
Socket identifikacija aplikacija na mrei Socket (soket) jedinstveno identifikovanje aplikacije (procesa) na mrei Soket se sastoji od:
IP adrese transportnog protokola (TCP ili UDP) broj porta
Serverske aplikacije soket: IP adresa servera + unapred poznat TCU ili UDP port
(Well-known ili Registered opsezi) raspoloive na mrei za pristup od strane proizvoljnih klijenata
Klijentske aplikacije soket: IP adresa klijenta + dinamiki dodeljen TCU ili UDP port
(Registered ili Private and/or Dynamic opstezi) pojedinani procesi na strani korisnika koji iniciraju konekciju sa serverskim
aplikacijama
-
ETF, Katedra za raunarsku tehniku i informatiku9
Klijent Server komunikacija Uspostavljanje Klijent-Server veze
Serverske aplikacije se izvravaju (ekaju) na poznatim portovima na odreenim serverima (IP adresama)
Klijentske aplikacije pozivaju serverske aplikacije preko poznatih soketa (poznati portovi na poznatim IP adresama) odredini soketi
Klijentske aplikacije tom prilikom uzimaju sluajno izabrane slobodne lokalne portove izvorini soketi
Serverske aplikacije vraaju odgovore na klijentski soket IP adresa klijenta i sluajno izabrani port
-
ETF, Katedra za raunarsku tehniku i informatiku10
Klijent Server komunikacija Komunikacija izmeu aplikacija horizontalno izmeu aplikativnih slojeva Serverske aplikacije imaju iste portove, ali prate komunikacije sa pojedinanim
klijentima na osnovu jedinstvenih klijentksih soketa Razliite komunikacije:
jedna klijentska aplikacija sa vie serverskih aplikacija jedna serverska aplikacija sa vie klijentskih aplikacija vie nezavisnih komunikacija izmeu istorodnih klijentskih aplikacija (razliiti procesi,
razliiti portovi) i iste serverske aplikacije (ista IP adresa i isti porovi)
-
ETF, Katedra za raunarsku tehniku i informatiku11
Segmentacija aplikativnih podataka Aplikativni podaci
mogu biti u velikim blokovima - npr. prenos cele datoteke, real-time audio/video... da ne bi zauzeli ceo komunikacioni kanal, podaci se dele u manje celine
paketi - UDP datagremi i TCP segmenti paketima se dodaju hederi i oni se prenose u nizu
Paketi/Segmenti treba da se enkapsuliraju i prenose na niim nivoima, koji imaju maksimalnu dozvoljenu veliinu MTU (Max. Transmission Unit)
Default veliina segmentaobino 512 ili 536 bajta u zavisnosti od implementacije
-
ETF, Katedra za raunarsku tehniku i informatiku12
TCP Transmission Control Protocol TCP heder (Header)
Source Port - izvorini port sluajno dodeljen broj vei od 1023, koji e da identifikuje aplikaciju inicijatora komunikacije (klijenta)
Destination Port odredini port poznati port koji identifikuje serversku aplikaciju predstavlja protvrdu da su se svi prethodni okteti uspeno primili Header Length duina hedera Code bits (Flags) flegovi koji oznaavaju posebne tipove paketa u odravanju sesije Window veliina dinamikog TCP prozora koliko okteta moe biti poslato pre nego
to se dobije njihova potvrda (Ack) Checksum provera bitskih greaka, 16 bita, komplement sume TCP hedera,
TCP podataka i TCP pseudo-hedera TCP pseudo-header polja: src i dst IP adrese, protokol i duina TCP segmenta
donekle se kri princip slojeva, radi ukljuivanja podataka IP nivoa, koji nema proveru greke
-
ETF, Katedra za raunarsku tehniku i informatiku13
TCP Potvrda prenosa segmenata Sequence Number (SEQ) redni broj prvog bajta aplikativnih podatka u segmentu koji se
alje Acknowledgement Number (ACK) redni broj sledeeg bajta koji se oekuje da se primi U fazi uspostavljanja sesije uzima se sluajno izabrana vrednost SEQ za poetnu vrednost Svaki pojedinani bajt u nizu aplikativnih podataka ima svoj redni broj relativno u odnosu
na inicijalni SEQ Prijem kontinualnog niza segmenata (svi bajtovi od poetka aplikativnih podataka) se
potvruje sa vrednou ACK za jedan veom od rednog broja poslednjeg primljenog bajta u nizu
znaenje ovo je sledei bajt koji se oekuje za prijem, svi prethodni su uspeno primljeni
-
ETF, Katedra za raunarsku tehniku i informatiku14
Code bits Kontrolni biti Kontrolni biti (Code bits, Flags)
nose informacije o kontrolnim podacima i aktiviraju pojedina polja Najznaajniji flegovi
SYN sinhronizacija brojne sekvence (Sequence Number) pri uspostavljanju sesije FIN oznaava poslednji segment koji se alje zavrava se sesija ACK polje Acknowledgement Number je aktivno potvruje se prijem do odreenog
bajta u segmentu
Bitovi u polju CODE BITS
Bit Znaenje
URG Polje URGENT POINTER je validno
ACK Polje ACKNOWLEDGMENT NUMBER je validno
PSH Segment zahteva push
RST Resetuj konekciju
SYN Sinhronizuje brojeve sekvence
FIN Poslednji segment u sekvenci za slanje
-
ETF, Katedra za raunarsku tehniku i informatiku15
TCP Uspostavljanje sesije TCP connection oriented protocol
dvosmerna komunikacija dve odvojene komunikacione sesije, u oba smera po jedna uspostavljanje, odravanje i raskidanje obe komunikacione sesije
razliite vrednosti SEQ i ACK
Uspostavljanje TCP sesije u tri koraka - Three-way handshake 1. korak
inicijator sluajno bira vrednost za Sequence Number SEQ (u primeru SEQ=100) inicijator alje paket sa SYN flagom i izabranom vrednou Sequence Number
2. korak druga strana prepoznaje i prihvata inicijativu za uspostavljanje sesije, i o tome obavetava
inicijatora - postavlja se ACK flag, a vrednost ACK polja se postavlja na SEQ+1 sledei bajt koji se oekuje za prijem
u istom paketu se inicira sesija u suprotnom smeru, na isti nain kao 1. korak (SEQ=300) 3. korak
inicijator prihvata sesiju u suprotnom smeru i obavetava drugu stranu (ACK=101)
rezultat: uspostavljene sesije u oba smera
-
ETF, Katedra za raunarsku tehniku i informatiku16
TCP Raskidanje sesije Raskidanje TCP sesije u dva koraka u oba smera 2 x Two-way handshake
1. korak kada jedna strana nema vie paketa za slanje, alje se FIN flag u poslednjem paketu
2. korak druga strana potvruje prijem poslednjeg paketa slanjem ACK za taj paket sesija u tom smeru je zatvorena
3. korak druga strana nastavlja da alje preostale pakete, dok ne doe do poslednjeg paketa u poslednjem paketu se postavlja FIN flag
4. korak prva stran potvruje prijem poslednjeg paketa slanjem odgovarajue ACK potvrde
rezultat: TCP sesija je prekinuta U sluaju da druga stana nema paketa
za slanje, 2. i 3. korak se mogu objediniti
-
ETF, Katedra za raunarsku tehniku i informatiku17
TCP Pouzdan prenosPouzdan prenos (Reliable delivery) Svaki poslati segment zahteva potvrdu (Ack) da je uspeno pristigao na strani primaoca Potvrda se eka odreeno vreme timeout
za svaki poslati segment startuje se poseban tajmer Vreme tajmera treba da bude vee od vremena putovanja segmenta od izvorita do
odredita i potvrda u suprotnom smeru RTT (Round Trip Time) RTT esto varira tokom vremena TCP dinamiki prati RTT i odreuje vrednost za timeout na sledei nain:
RTT = a * OldRTT + (1-a) * NewRTTsampleNewRTTsample - poslednji izmereni RTTa faktor od 0 do 1 vea vrednost-sporije pormene, manja vrednost-bre promene
Timeout = b * RTTb faktor uveanja (tipino b=2)
Ako nema greaka, primalac e da poalje potvrdu za poslednji bajt poslednjeg segmenta potvrda da su svi segmenti uspeno primljeni
Poiljalac nastavlja sa slanjem novih segmenata eka se nova potvrda da su segmenti uspeno pristigli bez greaka
-
ETF, Katedra za raunarsku tehniku i informatiku18
TCP Oporavak od grekeOporavak od greke (Error Recovery)
Primalac je dobio poslednji segment, ali prepoznaje da je izostao jedan prethodni segment
UVEK se potvruje prijem POSLEDNJEG ISPRAVNOG SEGMENTA u nizu poslednji primljeni segment, koji je diskontinualan sa prethodno primljenim
segmentima, se ne potvruje Ack se alje samo kada pristigne neki segment, bilo za taj segment ili za neki
prethodni koji nedostaje Viestruki Ack oznaava:
da je jedan segment izgubljen ali i da su drugi segmenti
uspeno pristigli
-
ETF, Katedra za raunarsku tehniku i informatiku19
TCP Oporavak od grekeRetransmisija: Kada primalac dobije retransmitovani segment
popunie rupu u nizi primljenih podataka potvrdie poslednji ispravan segment
-
ETF, Katedra za raunarsku tehniku i informatiku20
TCP - Rekonstrukcija redosleda segmenataRekonstrukcija redosleda segmenata (segmets reordering) U sluaju vie putanja izmeu izvorita i odredita razliiti segmenti uzimaju
razliite putanje (Load Balancing) Moe da doe do permutacije segmenata promene redosleda prijema Prijemna strana e da rekonstruie originalni redosled na osnovu SEQ vrednosti
primljenih segmenata
-
ETF, Katedra za raunarsku tehniku i informatiku21
TCP - Kontrola tokaKontrola toka (Flow control) mehanizam TCP prozora (Window) Polje Window u TCP zaglavlju
oznaava ukupan broj bajtova koji se mogu poslati pre nego to se eka na potvrdu Kada se popuni prozor
obustavlja se sa slanjem novih segmenata eka se potvrda prethodnih segmenata sa poetka prozora potvreni segmenti se oslobaaju i oslobaa se prostor u prozoru za slanje novih
segmenataWindow
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
A B C D
A Poslati i potvreni bajtoviB Poslati, ali jo nepotvreni bajtoviC Bajtovi koji se odmah mogu poslatiD Bajtovi koje se ne mogu odmah poslati
-
ETF, Katedra za raunarsku tehniku i informatiku22
TCP - Kontrola toka Prozor odreene veliine se pomera po nizu aplikativnih podataka koji se alju
Zato se mehanizam prozora esto naziva i Sliding Window
Kontrola toka: Manji prozor - vie ekanja, sporije slanje Vei prozor - manje eka, bre slanje
Sprovodi se nezavisno u svakom smeru
Initial window
1 2 3 4 5 6 7 8 9 10 ...
window slides
1 2 3 4 5 6 7 8 9 10 ...
-
ETF, Katedra za raunarsku tehniku i informatiku23
TCP Kontrola toka TCP dinamiki uspostavlja veliinu prozora
Zato se mehanizam prozora esto naziva i Dynamic Window Inicijalno se obe strane dogovore o veliini prozora U sluaju gubitka paketa ili greke
vri se oporavak od greke retransmisija ako je prijemna strana zaguena, moe da zahteva smanjenje trenutne veliine
prozora zajedno sa ACK znak poiljaocu da uspori slanje segmenata
U sluaju da nema greaka poiljalac postepene poveava veliinu prozora
-
ETF, Katedra za raunarsku tehniku i informatiku24
TCP Kontrola zaguenja Kontrola zaguenja (congestion control) -
TCP moe da se dinamiki prilagodi trenutnom optereenju u mrei poiljalac prilagoava brzinu slanja u zavisnosti od propusnog opsega i potencijalnog
zaguenja na putu Moderne implementacije TCP protokola obuhvataju sledee algoritme kontrole
zaguenja: Slow start Congestion avoidance Fast retransmit Fast recovery
-
ETF, Katedra za raunarsku tehniku i informatiku25
TCP Slow start Tokom uspostavljanja sesije primalac oglaava veliinu prozora, kojim kontrolie
prijem segmenata Advertised Window (AW, awnd) Da bi se izbeglo potencijalno zaguenje, poiljalac ipak ne alje sve segmente
na poetku sesije Uvodi se Congestion Window (CW, cwnd) kontrolie ga poiljalac Veliina prozora na strani poiljaoca:
min(AW, CW) Slow start
inicijalna vrednost za CW je 1 segment CW se poveava sa svakim Ack za 1
Ako se potvruje svaki segment, CW se u svakom koraku poveava za 2
1, 2, 4, 8 .... eksponencijalno U praksi se tipino Ack alje
za 2 segmenta, pa je rast neno manjeali i dalje eksponencijalan (slow ?)
-
ETF, Katedra za raunarsku tehniku i informatiku26
TCP - Congestion avoidance Congestion avoidance usporiti slanje kada doe do gubitka paketa, linearno
poveanje prozora Indikacija gubitka paketa na strani poiljaoca: timeout segmenta ili dupli Ack Uvodi se veliina Slow Start Threshold Size ssthresh
inicijalna vrednost za ssthresh je 65535 u sluaju timeout ili dupli Ack (zaguenje) ssthresh uzima vrednost polovine trenutno
primenjenog prozora dodatno u sluaju timeout-a cwnd se postavlja na 1 ako je cwnd < ssthresh
slowstartcwnd se poveava eksponencijalno
ako je cwnd > ssthresh congestion avoidance
cwnd se poveava linearno (najvie za jedan segment)
Globalni efekat uestale greke e prozor
brzo smanjiti na malu vrednost ako nema greaka prozor e
se postepeno poveavati i podaci e se intenzivnije slati
-
ETF, Katedra za raunarsku tehniku i informatiku27
TCP Fast retransmit Kada poiljalac primi dupli Ack za neki segment, ne zna se da li je segment
izgubljen ili je dolo do promene redosleda (reordering) Tek kada se desi viestruki Ack za neki segment, smatra se da je segment zaista
izgubljen Fast retransmit je tehnika koja sprovodi retransmisiju pre isteka timeout-a, u
sluaju da se dobio viestruki Ack za neki segment
-
ETF, Katedra za raunarsku tehniku i informatiku28
TCP Fast recovery Fast recovery podrazumeva da se posle Fast retransmit procesa:
ne sprovodi slow start, jer se smatra da je rupa popunjena(ne smanjuje se prozor na 1 segment i ne sprovodi se eksponencijalni rast)
sprovodi se samo congestion avoidance (prozor se smanjuje na pola i linearno poveava)
Fast recovery se sprovodi u kombinaciji sa Fast retransmit tehnikom Razliite implementacije TCP-a mogu da imaju razliite optimizacije reagovanja
prozora na nestanak segmenta
-
ETF, Katedra za raunarsku tehniku i informatiku29
UDP User Datagram Protocol UDP zaglavlje samo 8 bajtova
izvorini i odredini port duin paketa (datagrama) checksum provera greke, ali ne i korekcija
Karakteristike UDP protokola Connectionless
ne uspostavlja konekciju pre slanja podataka svaki datagram se nezavisno prenosi
Unreliability nepouzdan izgubljeni ili oteeni paketi (datagram) se ne mogu retransmitovati nema kontrole i provere redosleda pristizanja paketa ako je potrebno, aplikacija koja koristi UDP mora da implementira ove funkcije
Low overhead brz, jednostavan, ne zahteva velike mrene i procesorske resurse
-
ETF, Katedra za raunarsku tehniku i informatiku30
UDP Primena Mnoge aplikacije ne zahtevaju pouzdanost prenos i UDP funkcije su dovoljne
(npr. periodian prenos manje koliinu podataka) Primeri
DNS Domain Name System SNMP Simple Network Management Protocol DHCP Dynamic Host Configuration Protocol RIP Routing Information Protocol TFTP Trivial File Transfer Protocol
Nekim aplikacijama bi TCP predstavljao problem veliko zaglavlje, a podaci se kontinualno prenose u malim koliinama kontrola greke, retransmisija, dinamiki prozor mogu da uspore podatke i degradiraju
prenos Real-Time saobraaj VoIP Voice Over IP Video Streaming
-
ETF, Katedra za raunarsku tehniku i informatiku31
UDP saobraajPrimer: VoIP, IP Telefonija, IP TV interaktivan prenos zvuka i slike zahtevi
malo kanjenje (delay) do 200 ms za interaktivan razgovor mala varijacija kanjenja - diter (jitter) +/- 30 ms manji gubitak paketa se moe tolerisati
ako se izgubi neki paket, retransmisija bi naruila kanjenje i diter povremeni gubitak nekog paketa nije primetna za uesnike u komunikaciji - kvalitet se ne
naruava znaajno
-
ETF, Katedra za raunarsku tehniku i informatiku32
Literatura CCENT/CCNA ICND1,
official exam certification guide, Wendell Odom, Cisco Press, 2008
CCNA curriculum, Cisco
Douglas Comer Internetworking with TCP/IP
IBM - TCP/IP Tutorial and Technical Overview, www.ibm.com/redbooks