47
22.1.2007. Predavanja 1 Računarske Računarske mreže mreže Protokoli transportnog sloja Lekcija 9

Protokoli transportnog sloja

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

Page 1: Protokoli transportnog sloja

22.1.2007. Predavanja 1

Računarske mrežeRačunarske mreže

Protokolitransportnog sloja

Lekcija 9

Page 2: Protokoli transportnog sloja

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

Page 3: Protokoli transportnog sloja

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

Page 4: Protokoli transportnog sloja

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

Page 5: Protokoli transportnog sloja

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

Page 6: Protokoli transportnog sloja

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)

Page 7: Protokoli transportnog sloja

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)

Page 8: Protokoli transportnog sloja

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

Page 9: Protokoli transportnog sloja

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

Page 10: Protokoli transportnog sloja

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)

Page 11: Protokoli transportnog sloja

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

Page 12: Protokoli transportnog sloja

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

Page 13: Protokoli transportnog sloja

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

Page 14: Protokoli transportnog sloja

22.1.2007. Predavanja 14

TCP

Page 15: Protokoli transportnog sloja

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)

Page 16: Protokoli transportnog sloja

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

Page 17: Protokoli transportnog sloja

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)

Page 18: Protokoli transportnog sloja

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

Page 19: Protokoli transportnog sloja

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)

Page 20: Protokoli transportnog sloja

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

Page 21: Protokoli transportnog sloja

TCP/IP

• Orijentacija na tok

Tok bajtova

TCP TCP

Predajni proces

Prijemni proces

TCP protokol

Page 22: Protokoli transportnog sloja

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

Page 23: Protokoli transportnog sloja

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

Page 24: Protokoli transportnog sloja

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)

Page 25: Protokoli transportnog sloja

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.

Page 26: Protokoli transportnog sloja

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

Page 27: Protokoli transportnog sloja

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

Page 28: Protokoli transportnog sloja

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

Page 29: Protokoli transportnog sloja

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

Page 30: Protokoli transportnog sloja

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

Page 31: Protokoli transportnog sloja

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

Page 32: Protokoli transportnog sloja

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

Page 33: Protokoli transportnog sloja

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

Page 34: Protokoli transportnog sloja

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

Page 35: Protokoli transportnog sloja

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

Page 36: Protokoli transportnog sloja

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)

Page 37: Protokoli transportnog sloja

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

Page 38: Protokoli transportnog sloja

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

Page 39: Protokoli transportnog sloja

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

Page 40: Protokoli transportnog sloja

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)

Page 41: Protokoli transportnog sloja

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

Page 42: Protokoli transportnog sloja

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

Page 43: Protokoli transportnog sloja

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

Page 44: Protokoli transportnog sloja

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

Page 45: Protokoli transportnog sloja

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

Page 46: Protokoli transportnog sloja

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

Page 47: Protokoli transportnog sloja

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