8 Transportni Sloj PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Raunarske mree 1

8. deo: Transportni sloj


Predava:
dr Slavko Gajin, slavko.gajin@rcub.bg.ac.yu

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)

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
3
ETF, Katedra za raunarsku tehniku i informatiku

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

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

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

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

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

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)

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)

Default veliina segmenta


obino 512 ili 536 bajta
u zavisnosti od implementacije

11
ETF, Katedra za raunarsku tehniku i informatiku

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-heder 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

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

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)
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


14
ETF, Katedra za raunarsku tehniku i informatiku

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

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
- dobija se Three-way handshake

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

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 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) * NewRTTsample
NewRTTsample - poslednji izmereni RTT
a faktor od 0 do 1 vea vrednost-sporije pormene, manja vrednost-bre promene

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

TCP - Rekonstrukcija redosleda segmenata


Rekonstrukcija 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

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

A Poslati i potvreni bajtovi


B Poslati, ali jo nepotvreni bajtovi
C Bajtovi koji se odmah mogu poslati
D Bajtovi koje se ne mogu odmah poslati 21
ETF, Katedra za raunarsku tehniku i informatiku

TCP - Kontrola toka


Prozor odreene veliine se pomera po nizu aplikativnih podataka koji se alju
Zato se mehanizam prozora Initial window
esto naziva i Sliding Window
Manji prozor 1 2 3 4 5 6 7 8 9 10 ...
vie ekanja, sporije slanje
Vei prozor window slides

manje eka, bre slanje


1 2 3 4 5 6 7 8 9 10 ...

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

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

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

TCP - Congestion avoidance


Congestion avoidance usporiti slanje kada doe do gubitka paketa
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
slowstart
cwnd se poveava
eksponencijalno
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
26
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

TCP Fast recovery


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
Fast recovery podrazumeva da se posle Fast retransmit procesa ne sprovodi
slow start, ve congestion avoidance algoritma
prozor se smanjuje na pola i linearno poveava, a ne na 1 uz eksponencijalni rast
Fast retransmit se sprovodi u kombinaciji sa Fast recovery tehnikom
Razliite implementacije TCP-a mogu da imaju razliite optimizacije reagovanja
prozora na nestanak segmenta

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

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
29
ETF, Katedra za raunarsku tehniku i informatiku

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

CCNA curriculum, Cisco

Douglas Comer Internetworking with TCP/IP

IBM - TCP/IP Tutorial and Technical Overview, www.ibm.com/redbooks

www.wikipedia.org

32
ETF, Katedra za raunarsku tehniku i informatiku

16

You might also like