Upload
sopoline-madden
View
55
Download
7
Embed Size (px)
DESCRIPTION
Lekcija 9. Računarske mreže. Protokoli transportnog sloja. Uvod. Internet ima dva glavna protokola u transportnom sloju UDP: protokol za rad bez uspostavljanja direktne veze TCP: protokol sa uspostavljanjem direktne veze. UDP. UDP – User Datagram Protocol - PowerPoint PPT Presentation
Citation preview
22.1.2007. Predavanja 1
Računarske mrežeRačunarske mreže
Protokolitransportnog sloja
Lekcija 9
22.1.2007. Predavanja 2
Uvod
• Internet ima dva glavna protokola u transportnom sloju– UDP: protokol za rad bez uspostavljanja direktne veze– TCP: protokol sa uspostavljanjem direktne veze
22.1.2007. Predavanja 3
UDP
• UDP – User Datagram Protocol• Protokol bez uspostavljanja direktne veze (tzv.
Protokol za korisničke datagrame)– Omogućava aplikacijama da šalju kapsulirane IP
datagrame za koje ne moraju prethodno da uspostavljaju vezu
• Opisan je u dokumentu RFC 768
22.1.2007. Predavanja 4
UDP
• UDP prenosi segmente koji se sastoje od 8-bajtnog zaglavlja i korisničkih podataka
source port # dest port #
32 bits
Applicationdata
(message)
length checksumDužina UDP segmenta
koja uključuje i zaglavlje
22.1.2007. Predavanja 5
UDP
• Portovi identifikuju dva kraja veze• Koristan sadržaj UDP segmenta se predaje procesu koji je pridružen
odredišnom portu• Izvorišni port se koristi za slanje odgovora (oznaka procesa na
izvorištu kome se odgovara)• Kontrolni zbir UDP paketa
– Nije obavezan – prikazuje se nulom kada nije izračunat
• Isključuje se npr. kod digitalizovanog govora – povećava se kvalitet kodovanih podataka
– Ako je chacksum izračunat kao 0 prikazuje se svim 1
22.1.2007. Predavanja 6
UDP
• Šta UDP ne radi:– ne upravlja tokom– ne kontroliše greške– ne vrši retransmisiju izgubljenih segmenata
• Sve prepušta korisničkim aplikacijama• UDP je koristan za klijent-server arhitekturu
– Klijent šalje kratak zahtev i očekuje kratak odgovor– Ako se UDP segment izgubi, aktiviraće se tajmer koji
obaveštava aplikaciju da ga pošalje ponovo– Pojednostavljuje programski kod (potrebno je manje
poruka nego kod prethodnog uspostavljanja veze)
22.1.2007. Predavanja 7
UDP
• UDP je interfejs ka IP protokolu• Primena npr. kod DNS-a
– Sistem imena domena (Domain Name System)• Npr. program koji treba da pronađe IP adresu za
www.singidunum.ac.rs– Šalje se UDP paket sa imenom DNS serveru– Server odgovara UDP paketom sa IP adresom– (Preko mreže su razmenjene dve jednostavne poruke)– (Nema potrebe za prethodnim uspostavljanjem veze)
22.1.2007. Predavanja 8
UDP i on-line multimedijske aplikacije
• RTP protokol (Real Time Protocol)• Multimedijske aplikacije: Internet radio, IP telefonija, Video
konferencije, muzika i video na zahtev itd.– Sastoje se iz više tokova
• RTP u realnom vremenu multipleksira različite tokove i kodira ih u jedinstven tok UDP paketa
• RTP transportni protokol je ugrađen u sloj aplikacije
22.1.2007. Predavanja 9
UDP i on-line multimedijske aplikacije
Koristan teret RTP paketaKoristan teret RTP paketa
Koristan teret paketa
Koristan teret okvira
IPzaglavlj
e
UDPzaglavlj
e
RTP zaglavlje
Multimedijalna aplikacija
RTP
UDP
IP
Ethernet
22.1.2007. Predavanja 10
RTP i UDP
• Svaki RTP paket u UDP toku ima redni broj• Ako neki paket nedostaje na odredištu on se interpolira• Kod RTP nema:
– upravljanja tokom, potvrđivanja paketa, retransmisije paketa
• RTP paket sadrži način kodiranja– Način kodiranja se može menjati vremenom
• RTP sadrži vremensko označavanje:– Ublažavanje efekta neravnomernosti stizanja paketa (džiter)– Sinhronizacija istovremenih tokova (slika i zvuk)
22.1.2007. Predavanja 11
RTP i UDP
mikrofon
Internet
Bafer
ReprodukcijaUDP datagrami
Gubitak datagrama, džiter, prenos bez redosleda
Rekonstrukcija izgubljenih datagrama
Uređenje datagrama, eliminacija
džitera
22.1.2007. Predavanja 12
TCP
• TCP – Transmission Control protocol• Protokol sa uspostavljanjem direktne veze (tzv. Protokol za
upravljanje prenosom)• Obezbeđuje pouzdan tok bajtova s kraja na kraj veze kroz
nepouzdanu raznovrsnu mrežu– Različite topologije, propusni opsezi, kašnjenja, veličine paketa i
sl.• projektovan je tako da se može dinamički prilagoditi promenljivim
karakteristikama Interneta• održi pouzdanu vezu čak i u slučajevima pojave raznih vrsta otkaza u
mrežnoj infrastrukturi• Definisan je u dokumentu RFC 793, ispravke grešaka u RFC 1122,
dopune u RFC 1323
22.1.2007. Predavanja 13
TCP
• TCP prihvata tokove korisničkih podataka i deli ih u segmente– Max. veličina segmenta je 64 KB, a najčešće je to 1460 bajtova
zbog Ethernet okvira• Segmenti se šalju kao zasebni IP datagrami• TCP mora da brine o tome da datagram bude ispravno isporučen (IP
sloj ne brine o tome)• Datagrami mogu stići preko reda – TCP treba da ih ispravno složi• TCP obezbeđuje pouzdanost
22.1.2007. Predavanja 14
TCP
22.1.2007. Predavanja 15
Model TCP Usluge
• Usluge koje TCP pruža aplikacijama– Proces-proces komunikacija– Orijentacija na tok (prenos toka podataka, a ne
pojedinačnih poruka)– Prenos podataka u punom dupleksu– Konekcioni servis (uspostavljanje veze, prenos
podataka, raskidanje veze)– Pouzdani servis (pouzdanost prenos podataka je
odgovornost TCP-ja, a ne aplikacije)
22.1.2007. Predavanja 16
Karakteristike TCP Usluge
• TCP veze su u punom dupleksu, tipa od tačke do tačke• TCP ne podržava višesmerno niti neusmereno (difuzno) emitovanje• Kada TCP primi podatke od aplikacije, on može da čeka da se sakupi
dovoljno podataka (efikasnost prenosa)• Nekada aplikacije zahtevaju da se uneseni podaci moraju odmah
slati– Npr. prijavljivanje na računar
22.1.2007. Predavanja 17
Karakteristike TCP Usluge
• Hitno slanje podataka• U slučajevima kada korisnik interaktivno radi sa
udaljenom aplikacijom– Npr. <Ctrl><C> - za prekid započete aplikacije– Na predaji se ovakav zahtev odmah prosleđuje (nema
daljeg skladištenja)
22.1.2007. Predavanja 18
TCP protokol
• Pretpostavka za TCP– Svaki bajt na TCP vezi ima svoj 32-bitni redni broj
• Dve transportne jedinice razmenju podatke u obliku segmenata• Segment sadrži
– 20-bajtno zaglavlje– Podatke (kojih i ne mora biti)
• Svaki segment mora da odgovara polju za koristan teret IP paketa (max. 65515 bajtova)
• Za svaku mrežu postoji najveća jedinica prenosa – MTU (Maximum Transmission Unit)
• Najčešće je 1500 bajtova – karakteristika za Ethernet
22.1.2007. Predavanja 19
TCP protokol
source port # dest port #
32 bits
podaci(nisu obavezni)
redni broj
broj potvrdeveličina prozora
Urg data pnterchecksum
FSRPAUheadlen
notused
Opcije (0 ili više)
URG: urgent data (generally not used)
ACK: ACK #valid
PSH: push data now(generally not used)
RST, SYN, FIN:connection estab(setup, teardown
commands)
# bytes rcvr willingto accept
countingby bytes of data(not segments!)
Internetchecksum
(as in UDP)
22.1.2007. Predavanja 20
TCP protokol
• TCP vidi nestruktuirane podatke, kao niz bajtova• Redni broj je u bajtovima, ne u segmentima• Inicijalni redni broj se bira slučajno• TCP je u punom dupleksu – redni brojevi podataka su
nezavisni za svaki smer• Broj potvrde je broj sledećeg bajta koji se očekuje od
pošiljaoca
TCP/IP
• Orijentacija na tok
Tok bajtova
TCP TCP
Predajni proces
Prijemni proces
TCP protokol
TCP
• Prijemni i predajni baferi
Tok bajtova
Bafer
poslati
neposlati
Lokacija za upis sledećeg
bajta
Lokacija iz koje se šalje sledeći bajta
TCP
Predajni proces
TCP
Prijemniproces
Bafer
Sledeći bajt za čitanje
Lokacija za upis sledećeg primljenog bajta
nepročitani
slobodni slobodni
TCP protokol
TCP
Bafer
poslati
neposlati
Lokacija za upis sledećeg
bajta
Lokacija iz koje se šalje sledeći bajta
TCP
Predajni proces
TCP
Prijemniproces
Bafer
Sledeći bajt za čitanje
Lokacija za upis sledećeg primljenog bajta
nepročitani
HH
Segment N Segment 1
slobodni slobodni
TCP protokol
22.1.2007. Predavanja 24
TCP protokol
• Primenjuje se protokol klizećih prozora• Kada se segment pošalje, aktivira se timer (čeka se ACK
sa rednim brojem sledećeg segmenta koji očekuje druga strana)
22.1.2007. Predavanja 25
Uspostavljanje TCP veze
• Primenjuje se mehanizam trostepenog usaglašavanja• Primer
– Server čeka zahteve za uspostavom veze (LISTEN)– Klijenet izvršava CONNECT navodeći: IP adresu, port, max.
veličinu TCP segmenta koji može da prihvati. U TCP segmentu je SYN postavljen na 1, a ACK na 0 i čeka se odgovor
– Kada segment stigne na odredište TCP jedinica proverava da li na datom portu postoji proces koji je izvršio LISTEN.
22.1.2007. Predavanja 26
Raskidanje TCP veze
• TCP veze su dupleksne• Posmatraju se kao dve nezavisne veze• Raskid veze se obavlja slanjem zahteva FIN i njegovim
potvrđivanjem ACK• Moguće je uspešno primeniti trostepeni mehanizam
TCP/IP
Uspostavljanje konekcije
Trostepeno usaglašavanje
Seq: 8000SYN
Seq: 1500
Ack: 8001
SYN
Rwnd: 5000
Seq: 8000Ack: 15001ACK
Rwnd: 10000
Vreme Vreme
ACK
SYN
SYN + ACK
ACK
Klijent Server
Aktivno otvaranje
TCP/IP
Prenos podataka
Vreme Vreme
Klijent Server
Seq: 8001Ack: 15001ACK
PSHPodacibajtovi: 8001 - 9000
Seq: 9001Ack: 15001ACK
PSHPodacibajtovi: 9001 - 10000
Seq: 15001
Ack: 10001
ACK Podaci
bajtovi: 15001 - 17000
Seq: 10000Ack: 17001ACK
Rwnd: 10000
TCP/IP
Raskidanje veze
Seq: xAck: yFIN
Seq: y
Ack: x + 1
FIN
Seq: xAck: y + 1
ACK
Vreme Vreme
ACK
FIN
FIN + ACK
ACK
Klijent Server
Aktivno zatvaranje
Pasivnozatvaranje
TCP/IP
Zatvaranje konekcije - polu-zatvaranje
Seq: xAck: yFIN
Seq: y - 1
Ack: x + 1
ACK
Seq: xAck: z + 1ACK
Vreme
FIN
ACK
ACK
Klijent
Aktivno zatvaranje
Seq: z
Ack: x + 1
FIN FIN
Segmenti podataka od servera ka klijentu
Potvrde od klijenta ka serveru
22.1.2007. Predavanja 31
Dijagram stanja
• Da bi se olakšalo praćenje različitih događaja i brojnih izuzetnih sitacija koje se mogu desiti u toku uspostavljanja konekcije, prenosa podataka i zatvaranja konekcije, TCP softver je realizovan u vidu konačnog automata (FSM – Finite State Machine).
• Ovaj konačni automat ima 11 stanja i može se predstaviti u vidu dijagrama stanja
22.1.2007. Predavanja 32
Dijagram stanja
Stanje Opis
CLOSED zatvorena konekcijaKonekcija ne postoji
LISTEN server čeka na poziv (apl. izvršila LISTEN)
SYN RCVD primljen zahtev za otvaranje konekcijeOtvaranje
SYN SENT aplikacija izvršila CONNECT
ESTABLISHED stanje za normalni prenos podataka Konekcija je otvorene
FIN WAIT 1 aplikacija izvršila CLOSE
Zatvarane konekcije
FIN WAIT 2 druga strana potvrdila FIN
TIMED WAIT čekanje da paketi nestanu iz mreže
CLOSING Istovremeni pokušaj zatvaranja
CLOSE WAIT druga strana je inicirala zatvaranje konekcije
LAST ACK čekanje da paketi nestanu iz mreže
22.1.2007. Predavanja 33
Dijagram stanja
CLOSED
LISTEN
SYN-SENTSYN-RCVD
ESTABLISHED
Pasivno otvaranje / -
RST / -
Aktivno otvaranje / SYN
Close / -
SYN / SYN + ACK
Simulatano otvaranje
ACK / -SYN + ACK /
ACK
FIN-WAIT-1
Close / FINClose / FIN
CLOSINGFIN / ACK
Simulatanozatvaranje
FIN-WAIT-2 TIME-WAIT
ACK / -FIN + ACK / ACK
Trostepeno usaglasavanje
ACK / -
CLOSE-WAIT
LAST ACK
Close / FIN
FIN / ACK
ACK / -
Close iliIsteklo vreme ili RST / -
Isteklo vreme(2MSL)
Isteklo vreme / RST
FIN / ACK
Send / SYNRST / -
SYN / SYN + ACKP
asivno zatvaranjeAkt
ivno
zat
vara
nje
22.1.2007. Predavanja 34
Scenario rada
CL
OS
ED
SY
N-S
EN
TE
ST
AB
LIS
HE
D
CL
OS
ED
LIS
TE
NS
YN
-RC
VD
SYN
SYN + ACK
ACK
ES
TA
BL
ISH
ED
Prenospodataka
FIN
FIN
-WA
IT-1
ACK
FIN
-WA
IT-2 CL
OS
E-W
AIT
FIN
Podaci
Potvrde
ACK LA
ST
-AC
KC
LO
SE
D
CL
OS
ED
TIM
E-
WA
IT
Klijentski proces
Akt
ivno
ot
vara
nje
Akt
ivno
za
tvar
anje
2MSLtajmer
Isteklo vreme
Klijentskastanja
Serverskastanja
Serverski proces
Pas
ivno
otva
ranj
eO
bave
stav
a ap
likac
iju d
a je
kon
ekci
ja z
atvo
rena
Pasivno zatvaranje
22.1.2007. Predavanja 35
Odbijanje konekcije
Klijentski proces
Serverski proces
CL
OS
ED
CL
OS
ED
SYN
RST + ACK
LIS
TE
N
SY
N-S
EN
TC
LO
SE
D
SY
N-R
CV
DL
IST
EN
Akt
ivno
ot
vara
nje
Pas
ivno
otva
ranj
e
22.1.2007. Predavanja 36
Prekidanje konekcije
RST + ACK
Klijentski proces
Abo
rt
Serverski proces
. . .
ES
TA
BL
ISH
ED
. . .
ES
TA
BL
ISH
ED
CL
OS
ED
CL
OS
ED
Gre
ška
(Err
or)
22.1.2007. Predavanja 37
TCP kontrola zagušenja
• Zagušenjem upravlja mrežni sloj, ali to nije dovoljno• Zagušenje se može rešiti samo smanjenjem brzine prenosa podataka• Kada se uspostavlja veza
– Bira se podesna veličina prozora– Primalac predlaže veličinu prozora na osnovu svoga bafera– Pošiljalac može taj predlog da prihvati
22.1.2007. Predavanja 38
TCP kontrola zagušenja
• Posledica zagušenja – tajmeri padaju na nulu – paketi se odbacuju• Zagušenje može da nastane iz dva razloga
– kapacitet mreže– kapacitet primaoca
• Svaki pošiljalac održava dva prozora koji prate prethodna dva problema– prozor koji je odobrio primalac– prozor zagušenja
• Prozor zagušenja se u koracima povećava – klizeći prozor
22.1.2007. Predavanja 39
Klizeći prozor
1 2 3 4 5
Poslati i potvrdjeni
6 7 8 9 10 11
Poslati, a nepotvrdjeni
12 13 14 15 17 1816 19 20
Mogu se poslati
Ne mogu se poslati
Pomera se udesno po prijemu potvrde
Pomera se udesno po slanju podataka
Uvek je za velicinu prozora udaljen odlevog pointera
Velicina prozora
22.1.2007. Predavanja 40
Upravljanje tajmerima
• Postoji više tajmera, a najvažniji je tajmer za ponovno slanje (retransmission timer)– Aktivira se sa slanjem segmenta– Deaktivira se kada stigne potvrda– Ako istekne, segment se ponovo šalje
• Problem dodeljivanja roka tajmeru– Nije jednostavno kao na sloju veze podataka– Mali rok – Internet se zagušuje nepotrebnim segmentima– Veliki rok – neefikasnost Interneta
• Algoritam za dinamičko podešavanje tajmeraRTT=RTT+(1- )M
M je vreme korektnog stizanja potvrde - koeficijent izglađivanja (npr =7/8)
22.1.2007. Predavanja 41
Upravljanje tajmerima
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
22.1.2007. Predavanja 42
Upravljanje tajmerima
• Tajmer za ograničenje čekanja– Sprečava kružno blokiranje (uzajamno čekanje)
• Tajmer za proveru stanja veze– Kada se veza neko vreme potpuno utiša, treba proveriti da li je
druga strana još uvek na vezi
22.1.2007. Predavanja 43
Bežični TCP i UDP protokoli
• Transportni protokoli ne bi trebalo da zavise od tehnologije mrežnog sloja
• U praksi, TCP protokoli su optimizovani za žične veze• Žične veze:
– Paketi se gube zbog zagušenja– Treba usporiti slanje
• Bežični prenos– Paketi se gube zbog uslova prenosa– Treba što pre ponovo slati pakete
22.1.2007. Predavanja 44
Bežični TCP i UDP protokoli
• Heterogene mreže: prenos paketa kroz žične i bežične mreže
• Princip: TCP veza se deli na dve zasebne veze: do bazne stanice i od bazne stanice
22.1.2007. Predavanja 45
Bežični TCP i UDP protokoli
• Bežični prenos smeta i UDP protokolu• U principu, UDP ne nudi nikakve garancije, ali se
podrazumeva da se paketi retko gube• Kod bežičnih veza, gubljenje paketa je evidentno
– Slabe se performanse mreže
22.1.2007. Predavanja 46
Performanse
• Osnovni problem je zagušenje mreže• Strukturna neravnoteža resursa – spor računar na
gigabitnoj mreži ne stiže da obradi pakete• Problem sa difuznim slanjem ako port nije odgovarajući
– Npr. 10000 računara odgovara da nešto nije u redu– Problem je rešen tako što je izmenjen UDP protokol da
ne odgovara na ovakve greške• Brzi procesori sa velikim memorijama, a malo memorije je
dodeljeno baferima• Loše podešeni tajmeri
22.1.2007. Predavanja 47
Performanse
• Iskustvena pravila:– Brzina procesora je važnija od brzine mreže– Smanjenje broja paketa skraćuje vreme obrade
• Svaki paket nosi zaglavlje, izaziva softverski prekid itd.– Povećanje propusnog opsega ne menja kašnjenje
• Kašnjenje se može smanjiti boljim protokolom, operativnim sistemom ili mrežnim interfejsom