400 likes | 619 Views
Lekcija 9. Računarske mreže. Transportni sloj ( Transport layer ). Aplication Layer. Transport Layer. Network Layer. Uvod. Predstavlja suštinu hijerarhije protokola Zadatak transportnog sloja:
E N D
Lekcija 9 Računarske mreže Transportni sloj (Transport layer) Predavanja
Aplication Layer Transport Layer Network Layer Uvod • Predstavlja suštinu hijerarhije protokola • Zadatak transportnog sloja: • Prihvata podatke aplikacije izvorišta i dostavlja ih aplikaciji odredišta starajući se o prenosu, kontroli i ispravljanju grešaka pri prenosu • Nezavisno od fizičke mreže ili mreže koja se trenutno nalazi između izvorišta i odredišta • Transportni sloj obezbeđuje usluge aplikativnom sloju, a koristi usluge mrežnog sloja • Izvori i odredišta su najčešće procesi u sloju aplikacije Predavanja
Uvod • Funkcionalnosti koje su bitne za ovaj sloj: • Ostvarivanje virtuelne veze za prenos podataka. • Prevođenje podataka u (uglavnom binarni) format pogodan za prenos. • Segmentacija podataka radi efikasnijeg iskorišćenja komunikacionog kanala. • Isporuka podataka u obliku u kom su poslati. • Omoućavanje optimalne brzine prenosa podataka u skladu sa propusnom moći i učestalošću grešaka na komunikacionom kanalu i prihvatnoj moći primaoca. Predavanja
Logička komunikacijaizmeđu aplikacija koje rade na različitim računarima (hostovima) Transportni protokoli rade na krajnjim sistemima Predajna strana: deli aplikacionu poruku u segmente, prosleđuje ih mrežnom sloju Prijemna strana: slaže segmente u poruku, prosleđuje je aplikaciji Postoji više transportnih protokola za aplikacije Internet: TCP i UDP application transport network data link physical application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical logical end-end transport Uvod Predavanja
Uvod Transportna adresa Sloj aplikacije (ili sesije) Sloj aplikacije (ili sesije) TPDU Transportna jedinica Transportna jedinica Mrežni sloj Mrežni sloj Transport Protocol Data Unit - SEGMENT - Mrežna adresa Predavanja
Zaglavlje okvira Zaglavlje paketa Uvod Zaglavlje TPDU poruke Koristan teret TPDU poruke Koristan teret paketa Koristan teret okvira Predavanja
Uvod • Osnovna uloga transportnog sloja: • Izolacija viših slojeva od tehnologije, strukture i nedostataka podmreže • Transportni sloj poboljšava kvalitet usluge i ostvaruje pouzdaniju uslugu u odnosu na mrežni sloj • Usluga mrežnog sloja: isporuka od računara do računara • Usluga transportnog sloja: isporuka od procesa do procesa za aplikacije koje se izvršavaju na računarima Predavanja
Elementi transportnih protokola • Transportni protokol povezuje dve transportne jedinice • Razlikuje se od protokola mrežnog sloja: • Fizički kanal za komunikaciju je čitava podmreža • Mora se zadati adresa odredišta (kod mrežnog sloja jedan izlaz iz rutera vodi tačno do drugog) routher Podmreža Fizički komm. kanal Predavanja
Adresiranje • Krajnje tačke – procesi aplikacija na Internetu imaju portove (ports) • Za neke druge mreže uobičajen naziv je Transport Service Access Point - TSAP Računar 1 Računar 2 Proces aplikacije Sloj aplikacije TSAP3 TSAP2 TSAP1 Transportni sloj NSAP1 NSAP2 Mrežni sloj Sloj veze podataka Fizički sloj Predavanja
Portovi • Transportni sloj poseduje interni sistem adresiranja čija je adresna jedinica port • Port je određen 16-bitnim numeričkim parametrom • Portovi se mogu podeliti na: • privilegovane, • registrovane i • dinamičke (ili kratkotrajne) portove Predavanja
Portovi • Privilegovani portovi: • Portovi u opsegu 0-1023 i pravo na njihovo otvaranje uglavnom ima samo operativni sistem • Na ovim portovima se nalaze najčešće korišćeni servisi (FTP, SSH, Telnet, DNS i sl.) • Registrovani portovi se kreću u opsegu od 1024 do 49151 i na njima se zvanično koriste servisi novijeg datuma • Dinamički ili kratkotrajni portovi se kreću u opsegu od 49152 do 65535 i njih nije moguće registrovati a uglavnom služe za klijentske komponente klijent/server softvera Predavanja
Portovi Predavanja
Socket • Kompozitna adresna jedinica transportnog i mrežnog sloja jeste socket. • Socket (nekada se naziva i mrežni socket) je sačinjen od sledećih komponenti: • IP adresa izvorišta • Port izvorišta • Protokol transportnog sloja • Port odredišta • IP adresa odredišta Predavanja
Socket • Podrška za socket-e se u operativnim sistemima najčešće realizuje pomoću gotovih sistemskih biblioteka. • Neki od najpopularnijih socket biblioteka su: • Berkeley socket za Unix operativne sisteme i • Winsock za MS Windows operativne sisteme Predavanja
application application application transport transport transport P4 P2 P3 P1 P1 network network network link link link physical physical physical Mux na predajnom računaru: Demux na prijemnom računaru: host 3 host 2 host 1 Multipleksiranje/demultipleksiranje Isporuka primljenih segmenata određenom soketu Prihvatanje podataka sa više soketa, dodavanje hedera (kasnije se koristi za demultipleksiranje) = socket = process Predavanja
Prijemni računar dobija IP datagram Svaki datagram sadrži source IP adresu, destination IP adresu Svaki datagram sadrži 1 transport-layer segment Svaki segment sadrži source/destination broj porta(za određenu aplikaciju) Krajnji računar koristi IP adrese i broj porta za dostavljanje segmenta odgovarajućoj aplikaciji Multipleksiranje/demultipleksiranje 32 bits source port # dest port # other header fields application data (message) TCP/UDP segment format Predavanja
Usluge prenosa • Usluge prenosa tr. sloja mogu biti: • Sa uspostavljajem direktne veze: uspostavljanje veze, prenos podataka i raskidanje veze • Bez uspostavljanja direktne veze: datagramska podrška (bitna za aplikacije u realnom vremenu) Predavanja
P3 P2 P1 P1 SP: 9157 client IP: A DP: 6428 Client IP:B server IP: C SP: 5775 SP: 6428 SP: 6428 DP: 6428 DP: 9157 DP: 5775 Demux i T protokol bez uspostavljanja veze DatagramSocket serverSocket = new DatagramSocket(6428); SP ima smisla kao “adresa za odgovor” Predavanja
Demux i T protokol bez uspostavljanja veze • UDP socket se identifikuje sa parom: • dest IP address • dest port number • IP datagrami sa različitim source IP adresama i/ili različitim brojevima source portamogu se usmeriti na isti socket Predavanja
SP: 5775 SP: 9157 P1 P1 P2 P4 P3 P6 P5 client IP: A DP: 80 DP: 80 Demux i T protokol sa uspostavljanjem veze S-IP: B D-IP:C SP: 9157 DP: 80 Client IP:B server IP: C S-IP: A S-IP: B D-IP:C D-IP:C Predavanja
SP: 5775 SP: 9157 P1 P1 P2 P3 client IP: A DP: 80 DP: 80 Demux i T protokol sa uspostavljanjem veze P4 S-IP: B D-IP:C SP: 9157 DP: 80 Client IP:B server IP: C S-IP: A S-IP: B D-IP:C D-IP:C Predavanja
Demux i T protokol sa uspostavljanjem veze • TCP socket se identifikuje sa sledećim: • source IP address • source port number • dest IP address • dest port number) • Serveri mogu da podrže više različitih TCP soketa • Web serveri mogu da imaju različite sokete za istog klijenta Predavanja
Osnovne operacije u uslugama prenosa • Osnovne operacije: • LISTEN • CONNECT • SEND • RECEIVE • DISCONNECT • Mnogi programi (i programeri) rade sa uslugama prenosa. • Usluge treba da su pogodne i lake za korišćenje • Kod usluga mrežnog sloja mala je fleksibilnost Predavanja
Uspostavljanje veze • Suština veze: • TPDU pruka CONNECTION REQUEST • Odgovor odredišta CONNECTION ACCEPTED • Problemi: • Gubljenje, čuvanje, kašnjenje i dupliranje paketa • Npr: Transakcija prebacivanje para sa računa na račun • Poništavanje duplikata u mreži: • Odgovarajućim projektovanjem mreže • Uključenje brojača skokova u svaki paket • Vremensko označavanje svakog paketa • U praksi, poništavaju se i paketi i njihove potvrde Predavanja
Trostepeno usaglašavanje • Strane u komunikaciji imaju odgovarajuće brojače • redni brojevi paketa • U toku uspostave veze dve strane kreću od različitih rednih brojeva • Računar 1 bira redni broj x i šalje računaru 2 TPDU zahtev CONNECTION REQUEST • Računar 2 TPDU potvrdom kojom prihvata x i najavljuje svoj početni redni broj y • Računar 1 potvrđuje da prihvata početni redni broj y računara 2, u prvom TPDU paketu sa podacima koji mu šalje Predavanja
Trostepeno usaglašavanje • Normalan rad Računar 1 Računar 2 CR(r.b.=x) v r e m e ACK(r.b.=y, ACK=x) Podaci (r.b.=x, ACK=y) CR=CONNECTION REQ. ACK=ACKNOWLEDGMENT Predavanja
Trostepeno usaglašavanje • Stari duplikat – CR se pojavljuje neočekivano Računar 1 Računar 2 v r e m e CR(r.b.=x) ACK(r.b.=y, ACK=x) Odbacivanje (ACK=y) Predavanja
Trostepeno usaglašavanje • Stari duplikat – CR i ACK se pojavljuju neočekivano Računar 1 Računar 2 CR(r.b.=x) v r e m e ACK(r.b.=y, ACK=x) Podaci(r.b.=x, ACK=z) Odbacivanje (ACK=y) Predavanja
Raskidanje veze • Raskidanje je lakše od uspostavljanja veze • Raskidanje veze • Asimetrično • Jedan od učesnika naglo raskida vezu • Npr. telefonski sistem • Simetrično • Svaka veza je sistem od dve paralelne jednosmerne veze • Svaka jednosmerna veza se raskida zasebno Predavanja
Asimetrično raskidanje • Može da izazove gubitak podataka Računar 1 Računar 2 CR v r e m e ACK Podaci Podaci DR Izgubljeni podaci Predavanja
Simetrično raskidanje • Izbegava se gubljenje paketa • Nezavisno se raskida svaka od dve jednosmerne veze • Moguće je da računar prima podatke iako je sam raskinuo vezu (tj. svoj smer) • Radi dobro kada svaki od dva procesa treba da pošalje fiksnu količinu podataka (precizno zna kada ih je sve poslao) • Trostepeno usaglašavanje: • Prvi računar: zahtev za raskid • Drugi računar: zahtev za raskid • Prvi računar: potvrda zahteva Predavanja
Simetrično raskidanje • Normalan slučaj trostepenog usaglašavanja Računar 2 Računar 1 DR Šalje DR i pokreće tajmer v r e m e Šalje DR i pokreće tajmer DR Raskida vezu Šalje ACK ACK Raskida vezu Predavanja
Simetrično raskidanje • Gubi se poslednja ACK poruka Računar 2 Računar 1 DR Šalje DR i pokreće tajmer v r e m e Šalje DR i pokreće tajmer DR Raskida vezu tajmer Šalje ACK ACK Po isteku roka, tajmer raskida vezu Predavanja
Simetrično raskidanje • Gubi se odgovor Računar 1 Računar 2 Šalje DR i pokreće tajmer DR Šalje DR i pokreće tajmer v r e m e DR DR Šalje DR i pokreće tajmer DR Raskida vezu ACK Šalje ACK Raskida vezu Predavanja
Simetrično raskidanje • Gubi se i odgovor i naknadne DR poruke Računar 1 Računar 2 Šalje DR i pokreće tajmer DR Šalje DR i pokreće tajmer v r e m e DR tajmer tajmer DR Posle N neuspelih pokušaja tajmer raskida vezu Po isteku roka, tajmer raskida vezu Predavanja
Upravljanje uspostavljenom vezom • Osnovni zadatak – kontrola toka • Sličnost sa kontrolom toka u sloju veze • Primena kliznog prozora, da brz pošiljaoc ne bi porukama zatrpao sporijeg primaoca • Osnovna razlika • Ruter ima relativno mali broj izlaznih linija • U transportnom sloju se mogu ostvariti brojne veze Predavanja
Upravljanje uspostavljenom vezom • Pošiljaoc mora da baferuje sve TPDU poruke, dok se ne potvrde (za slučaj da ih ponovo šalje) • Na prijemu se takođe obezbeđuju baferi • Fiksni (slaba iskorišćenost) • Cirkularni • Veze se uspostavljaju i raskidaju • Unapred se ne zna broj veza u jednom trenutku • Dinamička dodela bafera (rad sa klizećim prozorima promenljive dužine) Predavanja
Upravljanje uspostavljenom vezom • Brzina slanja podataka zavisi od broja slobodnih bafera primaoca • Može se popraviti dodavanjem više RAMa • Sledeće ograničenje: prenosni kapacitet podmreže • Kontroliše se pošiljaoc, da na mreži ne bi bilo previše nepotvrđenih TPDU (klizeći prozori promenljive dužine) • Određivanje prenosnog kapaciteta mreže • Brojanjem potvrđenih TPDU u jedinici vremena • Radi se povremeno, jer se menjaju uslovi prenosa Predavanja
Oporavak posle pada sistema • Pad podmreže sa ruterima u toku veze • Transportni sloj se oslanja na usluge mrežnog sloja • Paketska komutacija: očekuje se odgovor o izgubljenom TPDU • Čvrsta direktna veza: uspostavlja se novo virtuelno kolo • Pad računara (npr. servera) u toku veze • Server mora difuzno da obavesti sve računare da se upravo oporavio • Računari obaveštavaju server o stanju veze • Važne razlike: da li je server prvo upisuje TPDU, a zatim šalje ACK potvrdu • Moguća pojava duplikata, gubljenje TPDU ili nastavak Predavanja