TCP/IP - Transportni sloj PowerPoint PPT Presentation

presentation player overlay
1 / 85
About This Presentation
Transcript and Presenter's Notes

Title: TCP/IP - Transportni sloj


1
TCP/IP - Transportni sloj
2
Transportni sloj
  • Portovi
  • UDP
  • TCP

3
?Host-host? vs. ?proces-proces? komunikacija
Procesi
Procesi
Domen IP protokola
Domen UDP i TCP protokola
4
Brojevi portova
?Dobro-poznati? port
Privremeni port
5
IP adrese vs. Brojevi portova
Broj porta procesa
IP adresa hosta
6
Opsezi portova
Dodela portova je pod kontrolom medunarodne
neprofitne organizacije koja se zove ICANN
(Internet Corporation for Assigned Names and
Numbers)
Nisu dodeljeni (organizacija ICANN nije
definisala njihvou namenu), ali koje neke druge
organizacije mogu registrovati kod ICANN da bi se
predupredila dupliciranja
Mogu se koristiti kao privremeni ili privatni
portovi
?dobro-poznati? portovi - Dodeljuje ih (definiše
njihovu namenu) organizacija ICANN
7
Adresa soketa
8
UDP
UDP (User Datagram Protocol - Protokol
korisnickih datagrama) koji omogucava udaljenim
aplikacijama da razmenjuju enkapsulirane IP
datagrame. Konceptualno, jedina bitna razlika
izmedu UDP datagrama i IP datagrama je u tome što
UDP sadrži brojeve portova, što omogucava
predajnoj aplikaciji da se obrati tacno odredenoj
aplikaciji na odredišnoj mašini. UDP se ne bavi
kontrolom toka, kontrolom grešaka i
retransmisijom nakon prijema lošeg datagrama, baš
kako ni IP
9
Korisnicki datagram
Format zaglavlja
Velicina UDP datagrama u bajtovima, ukljucujuci i
zaglavlje i podatke
10
Kontrolna suma - pseudo-zaglavlje
komplement
11
Kontrolna suma - primer
12
Karakteristike UDP-a
  • Beskonekcioni servis
  • Svaki korisnicki datagram poslat preko UDP-a
    tretira kao nezavisni datagram.
  • Korisnicki datagrami nisu numerisani, a pošto do
    odredišta mogu stici izvan redosleda, UDP nije u
    mogucnosti da rekonstruiše njihov prvobitni
    redosled.
  • Svaka poruka koju proces šalje mora biti dovoljno
    kratka da može stati u jedan UDP datagram

13
Karakteristike UDP-a
  • Ne postoje mehanizmi za kontrolu protoka
  • Ne postoji zaštita od zagušenja prijemnika
    velikim brojem poruka
  • Ne postoje mehanizmi za kontrolu grešaka
  • Pošiljalac ne može znati da li je poruka koju je
    poslao uspešno preneta, ili je možda izgubljena
    ili duplicirana u prenosu.

14
Enkapsulacija korisnickih datagrama
15
Multipleksiranje i demultipleksiranje
16
UDP - Primena
  • Jednostavne klijent-server aplikacije
  • Klijent šalje kratak upit serveru i ocekuje
    kratak odgovor
  • Ako se upit ili odgovor izgube u prenosu, klijent
    ceka neko vreme i pokušava ponovo
  • Primer DNS
  • Upit klijent traži od servera IP adresu hosta
    www.elfak.ni.ac.yu
  • Odgovor Server odgovara UDP datagramom sa IP
    adresom hosta
  • Nije potrebna nikakva prethodna priprema ili
    uspostavljanje konekcije, dovoljno je razmeniti
    dve kratke poruke

17
UDP - Primena
  • Real-time multimedijalne aplikacije
  • Internet radio, Internet telefonija,
    muzika-na-zahtev, video konferencije,
    video-na-zahtev ...
  • Prenos kontinualnog toka digitalizovanog zvuka
    i/ili videa (na predaji zvuk/video se
    digitalizuje i pakuje u UDP datagrame, na predaji
    datagrami se raspakuju i rekonstruiše tok
    odmeraka)
  • Nema vremena za retransmisiju izgubljenih paketa
  • Gubitak pojedinih paketa nije katastrofalan

18
UDP - Primena kod real-time multimedijnih
aplikacija
Rekonstrukcija izgubljenih datagrama
Uredjenje datagrama, eliminacija džitera
Gubitak datagrama, džiter, prenos izvan redosleda
19
TCP
TCP (Transmission Control Protocol - Protokol za
kontrolu prenosa) je konekcioni, pouzdani
proces-proces transportni protokol koji pruža
puni transportni servis udaljenim
aplikacijama. TCP sprovodi kontrolu protoka i
kontrolu grešaka, a projektovan je tako da se
može dinamicki prilagoditi promenljivim
karakteristikama Interneta i održi pouzdanu vezu
cak i u slucajevima pojave raznih vrsta otkaza u
mrežnoj infrastrukturi
20
TCP
21
TCP
  • Sadržaj
  • Servisi
  • Mehanizmi
  • Segment
  • Konekcija
  • Dijagram stanja
  • Kontrola protoka
  • Kontrola grešaka
  • Kontrola zagušenja

22
TCP servisi
  • Koje servise TCP pruža aplikacijama?
  • Proces-proces komunikacija
  • Orijentacija na tok (prenos toka podataka, a ne
    pojedinacnih poruka)
  • Puna dupleks komunikacija
  • Konekcioni servis (uspostavljanje veze, prenos
    podataka, raskidanje veze)
  • Pouzdani servis (pouzdanost prenos podataka je
    odgovornost TCP-ja, a ne aplikacije)

23
Proces-proces komunikacija
Slicno UDP-u, TCP omogucava komunikaciju od
procesa do procesa korišcenjem 16-bitnih brojeva
portova za identifikaciju procesa. Opsezi portova
(dobro-poznati, registrovani i dinamicki) su
identicni kao kod UDP-a
24
Orijentacija na tok
25
Prijemni i predajni baferi
26
TCP segmenti
27
Redni brojevi
TCP numeriše sve bajtove podataka koji se prenose
putem uspostavljene konekcije. Numeracija
startuje od slucajno izabranog broja. Redni
brojevi se koriste za kontrolu protoka i kontrolu
grešaka
28
Redni brojevi
  • Za razmenu rednih brojeva u zaglavlju TCP
    segmenta predvidena su dva polja
  • Sequence Number (SEQ broj) - redni broju prvog
    bajta u segmentu.
  • Acknowledgement Number (ACK broj, ili broj
    potvrde) - redni broj prvog sledeceg bajta kojeg
    pošiljalac segmenta ocekuje da primi. Koristi se
    za kumulativnu potvrdu prijema.

29
Format TCP segmenta
30
Kontrolni bitovi
Flag Opis
UGR Vrednost polja Urgent Pointer je validna.
ACK Vrednost polja Acknowledgment Number je validna.
PSH Push podataka.
RST Konekcija mora biti resetovana.
SYN Sinhroniše redne brojeve u toku uspostavljanja konekcije.
FIN Raskida konekciju.
31
Kontrolna suma - pseudo zaglavlje
32
Enkapsulacija TCP segmenta
33
TCP konekcija
  • Uspostavljanje konekcije
  • Prenos podataka
  • Raskidanje konekcije
  • Resetovanje konekcije

34
Uspostavljanje konekcije
Trostepeno usaglašavanje
35
Prenos podataka
36
Zatvaranje konekcije - trostepeno usaglašavanje
37
Zatvaranje konekcije - polu-zatvaranje
38
Dijagram stanja
Da bi se olakšalo pracenje razlicitih dogadaja i
brojnih izuzetnih sitacija koje se mogu desiti u
toku uspostavljanja konekcije, prenosa podataka i
zatvaranja konekcije, TCP softver je realizovan u
vidu konacnog automata (FSM Finite State
Machine). Ovaj konacni automat ima 11 stanja i
može se predstaviti u vidu dijagrama stanja
39
Stanja
Stanje Opis
CLOSED zatvorena konekcija Konekcija ne postoji
LISTEN server ceka na poziv (apl. izvršila LISTEN) Konekcija ne postoji
SYN RCVD primljen zahtev za otvaranje konekcije Otvaranje
SYN SENT aplikacija izvršila CONNECT Otvaranje
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 Zatvarane konekcije
TIMED WAIT cekanje da paketi nestanu iz mreže Zatvarane konekcije
CLOSING Istovremeni pokušaj zatvaranja Zatvarane konekcije
CLOSE WAIT druga strana je inicirala zatvaranje konekcije Zatvarane konekcije
LAST ACK cekanje da paketi nestanu iz mreže Zatvarane konekcije
40
Dijagram stanja
41
Scenario uspostavljanja konekcije
42
Scenario zatvaranja konekcije trostepenim
usaglašavanjem
43
Odbijanje konekcije
44
Prekidanje konekcije
45
Kontrola protoka
Kotrola protoka reguliše kolicinu podataka koju
izvor može da pošalje pre nego što od odredišta
primi potvrdu prijema poslatih podataka. TCP
uvodi prozor (eng. window) u okviru predajnog
bafera koji definiše koje od svih podataka
trenutno prisutnih u baferu TCP sme da pošalje.
Velicina prozora se reguliše tzv. protokolom
kliznog prozora (eng. sliding window protocol)
46
Klizni prozor - koncept
  • Predajnik vodi evidenciju o preostalom prostoru u
    baferu prijemnika i šalje samo onoliko bajtova
    koliko prijemnik može trenutno da prihvati
  • Prijemnik, ima obavezu da obaveštava predajnu
    stranu o velicini preostalog prostora u svom
    baferu (Polje Window Size (velicinu prozora) iz
    zaglavlja TCP segmenta)

47
Protokol kliznog prozora
48
Kontrola grešaka
  • Detekcija i korekcija grešaka kod TCP-ja se
    postiže pomocu tri jednostavna principa
  • Kontrolna suma
  • Potvrdivanje
  • Retransmisija

49
Kontrolna suma
Prijemnik odbacuje svaki segment za koji,
proverom kontrolne sume, ustanovi da sadrži
grešku. Drugim recima, pogrešni segmenti se
tretiraju na isti nacin kao izgubljeni segmenti
(tj. kao da nisu ni primljeni)
50
Potvrdivanje
Kada prijemnik šalje potvrdu?
51
Pravilo 1
Svaki segment podataka koji jedna strana šalje
drugoj sadrži ACK broj postavljen na vrednost
rednog broja sledeceg bajta kojeg ocekuje da
primi. Na ovaj nacin smanjuje se broj segmenata
potrebnih za potvrdivanje.
52
Pravilo 2
Kada prijemnik primi ocekivani segment (sa
ocekivanim rednim - SEQ brojem) u situaciji kada
nema svojih podataka za slanje, a sve prethodno
primljene segmente je vec potvrdio, prijemnik
odlaže slanje ACK segmenta sve do prijema
sledeceg segmenta podataka ili do isteka unapred
zadatog vremenskog perioda (tipicno 500 ms).
Drugim recima, prijemnik odlaže slanje ACK
segmenta ako postoji samo jedan nepotvrdeni
segment. Ovo pravilo sprecava generisanje
dodatnog saobracaja radi slanja velikog broja ACK
segmenata.
53
Pravilo 3
Kada prijemnik primi ocekivani segment u sitaciju
kada prethodno primljeni segment još uvek nije
potvrdio, prijemnik odmah šalje ACK segment.
Drugim recima, na strani prijemnika ne bi trebalo
da postoji više od jednog nepotvrdenog segmenta.
Na ovaj nacin, sprecava se nepotrebna
retransmisija segmenata zbog kašnjenja potvrde.
54
Pravilo 4
Kada prijemnik primi segment izvan redosleda, sa
redni brojem vecim od ocekivanog (što ukazuje da
je segment sa ocekivanim rednim brojem izgubljen
u prenosu), prijemnik odmah šalje ACK segment sa
ACK brojem sledeceg ocekivanog segmenta. Na ovaj
nacin se inicira brza retransmislija segmenta
koji nedostaje.
55
Pravilo 5
Podaci koji do prijemnika stižu izvan redosleda
se ne odbacuju vec se privremeno cuvaju u
prijemnom baferu (ali se ne isporukucuju
aplikaciji sve dok ne pristignu svi prethodni,
nedostajuci podaci)
Kada stigne segment koji nedostaje, prijemnik,
bez cekanja, šalje ACK segment kojim predajnika
obaveštava o sledecem ocekivanom rednom broju
56
Pravilo 6
Ako primi duplicirani segment, prijemnik, bez
cekanja, šalje ACK segment
57
Retransmisija
Svaki segment koji je primljen sa greškom,
izgubljen ili dupliciran u prenosu se ponovo
šalje (retransmituje). Retransmisiji su podložni
segmenti koji troše redne brojeve (segmenti
podataka i pojedini kontrolni segmenti).
Segmenti koji ne troše redne brojeve, kao što je
ACK segment se ne retransmituju. Segment se
ponovo šalje u dva slucaja 1)vreme
retransmisionog tajmera (RTO) je isteklo i 2)
prijemnik je primio tri duplicirana ACK segmenta.
58
Scenario normalnog rada
59
Scenario Izgubljeni segment
60
Scenario Brza retransmisija
61
Scenario Izgubljeni ACK - automatska zamena
62
Scenario Izgubljeni ACK - ponovno slanje segmenta
63
Retransmisioni tajmer
Koliko treba da bude RTO vreme ?
Ethernet
Internet
64
Odredivanje RTO vremena
  • RTT (Round trip time), ili vreme odziva.
  • RTTM (Izmereno RTT) - vreme od trenutka slanja
    segmenta do trenutka prijema potvrde za poslati
    segment.
  • RTTS (Uravnoteženo RTT)

Pocetno gt nema vrednost
Posle prvog merenja gt RTTS RTTM
Posle svakog sledeceg merenja gt RTTS (1-a)RTTS a RTTM
Tipicno se usvaja a7/8
65
Odredivanje RTO vremena
  • RTTD (RTT devijacija)

Pocetno gt nema vrednost
Posle prvog merenja gt RTTD RTTM/2
Posle svakog sledeceg merenja gt RTTD (1-ß)RTTD ß RTTS - RTTM
Tipicno se usvaja ß 1/4
66
Odredivanje RTO vremena
  • RTO vreme

Pocetno gt Pocetna vrednost
Posle svakog merenja gt RTO RTTS 4 RTTD
67
RTO - primer
68
Eksponencijalni backoff - koju vrednost za RTO
izabrati nakon gubitka segmenta?
69
Kontrola zagušenja
Zagušenje u mreži nastaje kada opterecenje mreže
(broj paketa poslatih u mrežu) postane vece od
kapaciteta mreže (broj paketa koje mreža može da
prihvati). Cilj kontrole zagušenja je
održavanje opterecenja mreže ispod kapaciteta
mreže, tj. regulacija broja paketa u mreži ispod
nivoa pri kome performanse mreže pocinju naglo da
padaju.
70
Zagušenje je posledica postojanja redova cekanja
u ruterima
71
Performanse kašnjenje vs. opterecenje
Opterecenje - broj paketa ubacenih u mrežu u
jedinici vremena Kašnjenje - prosecno kašnjenje
paketa kroz mrežu
Kapacitet mreže
72
Performanse propusnost vs. opterecenje
Propusnost - broj paketa koji se prenose kroz
mrežu u jedinici vremena
Idealna zavisnost
Realna zavisnost
73
Mehanizmi za kontrolu zagušenja
  • Kontrola zagušenja u otvorenoj petlji
  • Cilj je da se spreci pojava zagušenja
  • Kontrola zagušenja u zatvorenoj petlji
  • Pokušaj da se prevazide zagušenje nakon što se
    ono pojavilo

74
Kontrola zagušenja u otvorenoj petlji
  • Politika retransmisije. Primer Eksponencijalni
    backoff mehanizam. Ponavljanje retransmisije
    istog segmenta je simptom zagušenja, a
    udvostrucavanje RTO vremena je pokušaj izvora da
    u takvim uslovima redukuje broj retransmitovanih
    paketa koje ubacuje u mrežu.
  • Politika potvrdivanja. Na primer, ako prijemnik,
    umesto da potvrduje svaki ili svaki drugi
    segment, prede u režim potvrdivanja svakog n-tog
    segmenta, usporice predajnika i u isto vreme
    pomocice u prevenciji zagušenja

75
Kontrola zagušenja u zatvorenoj petlji
  • Potisak (back pressure).
  • Ruter koji je postao zagušen, može zatražiti od
    prethodnog rutera da redukuje brzinu slanja
    paketa. Informacija o nastalom zagušenju se
    rekurzivno prenosi unazad sve do primarnih
    izvora.
  • Kontrolni (chocke) paket.
  • Zagušeni paket šalje choke paket nazad izvornom
    hostu sa zahtevom da redukuje brzinu slanja
    paketa.
  • Primer chocke paketa je ICMP poruka za prigušenje
    izvora.

76
Kontrola zagušenja u zatvorenoj petlji
  • Implicitna signalizacija.
  • Sam izvor, bez pomocu rutera, može na neki
    posredan nacin da detektuje izvesne signale koji
    upozorenja o mogucem zagušenju u mreži i da nakon
    toga samnji brzinu slanja paketa. Na primer,
    povecano kašnjenje u prijemu potvrda (ACK) može
    biti signal da je mreža zagušena.
  • Eksplicitna signalizacija.
  • Ruter izložen zagušenju, može poslati ekplicitan
    signal, na primer, postavljanjem nekog posebnog
    bita u paketima koje prosleduje, kao bi
    pošiljaoca ili primaoca paketa obavestio o pojavi
    zagušenja

77
Kontrola zagušenja kod TCP protokola
  • rwnd - velicina prozora koju diktira prijemnik (u
    cilju kontorle protoka)
  • cwnd - prozor zagušenja - velicina prozora koju
    diktira mreža.
  • Stvarna velicina prozora
  • min(rwnd, cwnd)

78
Kontrola zagušenja kod TCP protokola
  • Tri faze
  • Spori start eksponencijalno povecanje
  • Izbegavanje zagušenja linearno povecanje
  • Detekcija zagušenja Multiplikativno smanjenje

79
Spori start
Velicina prozora zagušenja se eksponencijalno
povecava sve dok se ne dostigne granicna
vrednost sstresh
80
Izbegavanje zagušenja
Pocinje kada se dostigne granicna vrednost
sstresh. Na svaku potvrdu, velicina prozora
zagušenja se povecava za 1 sve dok se ne
detektuje zagušenje
81
Detekcija zagušenja
  • Kako se detektuje zagušenje ?
  • Vreme RTO tajmera je isteklo - sa velikom
    verovatnocom ukazuje na mogucnost zagušenja
  • Primljena tri ponovljena ACK-a - takode ukazuje
    na zagušenje, ali sa znacajno manjom verovatnocom
    u odnosu na prethodni slucaj.

82
Detekcija zagušenja - Isteklo RTO vreme
  1. Granicna velicinu prozora se postavlja na
    polovinu trenutne velicine prozora (sstresh
    cwnd/2).
  2. Velicina prozora zagušenja se postavlja na 1
    (cwnd 1).
  3. Ponovo se startuje faza sporog starta.

83
Detekcija zagušenja - tri ponovljena ACK-a
  1. Granicna velicinu prozora se postavlja na
    polovinu trenutne velicine prozora (sstresh
    cwnd/2).
  2. Velicinu prozora zagušenja se postavlja na
    granicnu vrednost (cwnd sstresh)
  3. Povratak na fazu izbegavanja zagušenja.

84
Kontrola zagušenja kod TCP
85
Kontrola zagušenja - primer
Write a Comment
User Comments (0)
About PowerShow.com