Professional Documents
Culture Documents
8 Transportni Sloj PDF
8 Transportni Sloj PDF
8 Transportni Sloj PDF
Autor:
dr Slavko Gajin
2008. god
1
ETF, Katedra za raunarsku tehniku i informatiku
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
2
ETF, Katedra za raunarsku tehniku i informatiku
1
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)
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.
4
ETF, Katedra za raunarsku tehniku i informatiku
2
TCP i UDP
Dve 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...
5
ETF, Katedra za raunarsku tehniku i informatiku
6
ETF, Katedra za raunarsku tehniku i informatiku
3
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) ...
7
ETF, Katedra za raunarsku tehniku i informatiku
8
ETF, Katedra za raunarsku tehniku i informatiku
4
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
9
ETF, Katedra za raunarsku tehniku i informatiku
10
ETF, Katedra za raunarsku tehniku i informatiku
5
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)
11
ETF, Katedra za raunarsku tehniku i informatiku
12
ETF, Katedra za raunarsku tehniku i informatiku
6
TCP Potvrda prenosa segmenata
Sequence Number (SEQ) broj prvog bajta aplikativnih podatka u segmentu koji se alje
Acknowledgement Number (ACK) 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 svoju 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
13
ETF, Katedra za raunarsku tehniku i informatiku
Bit Znaenje
7
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
15
ETF, Katedra za raunarsku tehniku i informatiku
16
ETF, Katedra za raunarsku tehniku i informatiku
8
TCP Pouzdan prenos
Pouzdan 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 neto vee od vremena putovanja segmenta od izvorita do
odredita i nazad RTT (Round Trip Time) RTT = a*OldRTT+(1-
a)*NewRTTsample
Timeout = b*RTT , 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
17
ETF, Katedra za raunarsku tehniku i informatiku
Timeout = b * RTT
b faktor uveanja (tipino b=2)
18
ETF, Katedra za raunarsku tehniku i informatiku
9
TCP Oporavak od greke
Oporavak od greke (Error Recovery)
Primalac je dobio poslednji segment, ali prepoznaje da je izostao jedan prethodni
segment
potvruje se prijem poslednjeg ispravnog segmenta u nizu
poslednji primljeni segment, koji je diskontinualan sa prethodno primljenim
segmentima se ne potvruje
Ako istekne tajmer nekog segmenata, a ne stigne njegova potvrda, sprovodi se
retransmisija samo tog segmenta, u nadi da su naredni segmenti uspeno
pristigli
Kada primalac dobije
retransmitovani segment,
popunie rupu u nizi
primljenih podataka i
potvrdie poslednji
ispravan segment
19
ETF, Katedra za raunarsku tehniku i informatiku
20
ETF, Katedra za raunarsku tehniku i informatiku
10
TCP - Kontrola toka
Kontrola 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
segmenata
Window
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
A B C D
22
ETF, Katedra za raunarsku tehniku i informatiku
11
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
23
ETF, Katedra za raunarsku tehniku i informatiku
24
ETF, Katedra za raunarsku tehniku i informatiku
12
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 za svakom 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 manje
ali i dalje eksponencijalan (slow ?)
25
ETF, Katedra za raunarsku tehniku i informatiku
13
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
27
ETF, Katedra za raunarsku tehniku i informatiku
28
ETF, Katedra za raunarsku tehniku i informatiku
14
UDP User Datagram Protocol
UDP zaglavlje samo 8 bajtova
izvorini i odredini port
duin paketa (datagrama)
checksum provera greke, ali ne i korekcija
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
30
ETF, Katedra za raunarsku tehniku i informatiku
15
UDP saobraaj
Primer: 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
31
ETF, Katedra za raunarsku tehniku i informatiku
Literatura
CCENT/CCNA ICND1,
official exam certification guide,
Wendell Odom, Cisco Press, 2008
www.wikipedia.org
32
ETF, Katedra za raunarsku tehniku i informatiku
16