870 likes | 1.36k Views
Transportni sloj. Transportni sloj. Osnovni z adatak transportnog sloja je obe z be đ ivanje pouzdanog prenosa podataka za sloj aplikacija, bez obzira na fizičke mreže kroz koje se vrši prenos Hardver i softver transportnog sloja se nazivaju transportna jedinica – transport entity
E N D
Transportni sloj • Osnovni zadatak transportnog sloja je obezbeđivanje pouzdanog prenosa podataka za sloj aplikacija, bez obzira na fizičke mreže kroz koje se vrši prenos • Hardver i softver transportnog sloja se nazivaju transportna jedinica – transport entity • Analogno postojanju dve vrste usluga mrežnog sloja, sa i bez uspostavljanja direktne veze, postoje i dve vrste usluga prenosa • Transportni sloj i slojevi iznad se izvršavaju samo na krajnjim računarima a ne i na usputnim čvorovima kao slojevi ispod
Usluga transportnog sloja • Transportni sloj odvaja sloj aplikacije od sloja mreže koji može da bude promenljiv • Programeri aplikacija ne moraju da vode računa o mrežama kroz koje podaci prolaze i da se bave pouzdanošću prenosa, to rešavaju protokoli transportnog sloja • Transportni sloj ne bi bio potreban kada bi sve mreže radile bez greške, imale iste usluge i kada se ne bi menjale • Pošto realne mreže nisu idealne, postojanje transportnog sloj ima smisla
Osnovne operacije u uslugama prenosa • Operacije usluge prenosa su interfejs ka usluzi prenosa • Interfejs – operacije usluge prenosa omogućavaju uspostavljanje veze, komunikaciju i raskidanje veze
Ugneždeni paketi slojeva • TPDU – Transport Protocol Data Unit • Server šalje poruku – paket CONNECTION ACCEPTED kojom se uspostavlja veza • Komunikacija se vrši operacijama SEND i RECEIVE • Operacija RECEIVE blokira primaoca dok se ne prime podaci
Tok veze • Transportni sloj vrši potvrdu prijema paketa i eventualno ponovno slanje paketa kada tajmer istekne • To se skriveno od korisnika – programera aplikacije koji vide samo pouzdani prenosni kanal koji prenosi bitove koji se razmenjuju • Prekid veze se vrši zbog oslobađanja prostora koji svaka veza rezerviše u transportnim jedinicama • Asimetričan prekid operacijom DISCONNECT prekida obe veze, dok simetričan prekid prekida svaki smer veze posebno
Dijagram stanja veze • Na dijagramu su prikazana stanja koja se menjaju prelazima, a svaki prelaz je uzrokovan događajem • Pri uspostavljanju i prekidanju veze posmatraju se odvojeno stanja servera i klijenta • Klijent inicira komunikaciju • Događaji su zahtev za uspostavljanjem veze – CONNECT i zahtev za prekid veze - DISCONNECT
Berkli utičnice – TCP sockets • Programski inerface za korišćenje komunikacije preko TCP protokola transportnog sloja • Implementirane su u raznim OS - UNIX, Linux, Windows preko programskih biblioteka • U tabeli su navedene osnovne operacije
Primer TCP sockets za server datoteka • Server se prvo inicijalizuje – kriera utičnicu i povezuje IP adresu sa tom utičnicom • Poziva se procedura LISTEN – spremnost za uspostavljanje veze sa klijentom • Ako se premaši zadat broj konekcija, višak se automatski odbija • Server ulazi u petlju u kojoj poziva proceduru ACCEPT • Po prihvatanju zahteva klijenta dobija se deskriptor za čitanje i upis sa utičnice - sa, analogno čitanju i upisu u file • Na osnovu deskriptora, server čita ime tražene datoteke • Sadržaj datoteke šalje klijentu preko iste utičnice • Zatvara se datoteka i prekida veza
Klijentski kod • Klijentski kod se poziva se na pr. • Client physics.kg.ac.rs/usr/mreze.doc > mreze • Client je ime programa a u nastavku su argumenti • Proverava se da li ima dovoljno argumenata • Slovna IP adresa se pretvara u numeričku • Kreira se i inicijalizuje utičnica • Procedurom connect se šalje zahtev za vezu • Ako se veza uspostavi – server prihvati, klijent šalje ime datoteke write • Klijent potom ulazi u petlju u kojoj učitava traženu datoteku blok po blok i upisuje je u file • Po završetku učitavanja klijentski program se završava
Elementi transportnih protokola • Veza između usmerivača u mrežnom sloju i hostova u transportnom sloju – sličnosti i razlike • TSAP – Transport Service Access Point – pristupna tačka usluge prenosa – port – priključak • NSAP – Network Service Access Point – pristupna tačka mrežne usluge – IP adresa
Server imena – name ili directory server • Nove usluge se registruju na serveru imena • Server imena prevodi naziv servisa u TSAP adresu • Način da se omogući pozivanje novih ili nestandardnih – custom servisa čiji TSAP-ovi nisu opšte poznati ili standardni • Da bi se dobila adresa nove ili nepoznate usluge, mora biti poznata adresa servera imena • Analogno, morate znato broj 988 da bi preko njega dobili druge brojeve
Uspostavljanje veze • Problematika uspostavljanja veze u uslovima zagušenja – zakasneli duplikati • Jednokratne transportne adrese – adresa se generiše kada je potrebna i posle se ne koristi • Svakoj vezi se pridružuje identifikator veze koji se uvećava za 1 sa svakom novom vezom, pa se prema vrednosti identifikatora u paketu zna da li je paket iz prethodne veze ili iz aktuelne. Brisanje memorije transportne jedinice iz nekog razloga, onemogućava dalju primenu • Koristi se životni vek paketa – implementacija preko mreže bez petlji, brojača skokova u paketu i odbacivanje kada dođe na 0, vremensko označavanje paketa
Uspostavljanje veze, Tomlinson 1975 • Računari imaju sat realnog vremena, sinhronizovani satovi – brojači, broj bitova >= broj bitova rednog broja paketa. Satovi rade I kada računar otkaže • Dve TPDU poruke sa istim brojem, nikada na mreži u isto vreme • Kada se veza uspostavi, za početni redni broj prvog paketa se koristi trenutna vrednost brojača sata realnog vremena • Kada se sa najvećeg broja brojača pređe na 0, svi paketi sa brojem 0 su davno nestali sa mreže
Vreme i redni brojevi paketa Prebrzo slanje paketa posle otkaza Presporo slanje posle otkaza Dovode do preklapanja rednih brojeva Optimalna brzina slanja paket po otkucaju sata
Izbegavanje slanja duplikata paketa • Pre svakog slanja paketa, transportna jedinica treba da proveri na osnovu tekućeg vremena i rednog broja paketa, da li se nalazi u zabranjenoj oblasti, tj. da li dolazi do preklapanja paketa • Ako bi se našao u zabranjenoj oblasti sa aspekta korišćenih rednih brojeva paketa i vremena, onda ili čekati vreme T da stari paketi nestanu sa mreže, ili se ponovo sinhronizovati u pogledu izbora rednih brojeva paketa • Trenutna vrednost brojača sata služi kao početna vrednost broja paketa pri novoj sinhronizaciji
Problem uspostavljanja veze • Upravljački TPDU paketi kojima se uspostavlja veza, takođe mogu da kasne • Host 1 šalje hostu 2 TPDU paket CONNECTION REQUEST sa predloženim početnim brojem paketa i brojem priključka • Host 2 odgovara sa TPDU paketom CONNECTION ACCEPTED • Ako se paket CONNECTION REQUEST izgubi, i primi se njegov zakasneli duplikat, veza će se uspostaviti neispravno • Zato se koristi Three way handshake – Trostepeno usaglašavanje
Raskidanje veze • Simetrično i asimetrično raskidanje veze Asimetrično raskidanje veze – mogući gubici podataka
Druga varijanta raskidanja veze – simetrično raskidanje veze • Simetrično raskidanje veze prekida posebno svaki smer komunikacije dva hosta • Problem sa simetričnim raskidom veze ilustruje problem dve vojske – two army problem
Peti nepovoljni scenario – slučaj raskidanja veze • Kada se izgubi i prvi DC TCDU paket, kao pod d) na prethodnoj slici, i ne uspe ni jedan od ponovljenih pokušaja raskida veze, pošiljalac – host 1 na kraju prekida vezu, a host 2 ništa ne zna o tome i nastavlja da šalje – poluuspostavljena veza • Prekid veze posle perioda neaktivnosti – nema paketa od druge strane • Teoretski, raskid veze bez gubljenja podataka nije trivijalan!
Kontrola toka i privremeno skladištenje • Sličnost kontrole toka u sloju veze podataka i u transportnom sloju preko kliznih prozora, da brz pošiljalac ne zatrpa sporog primaoca paketima • Razlika je u tome što usmerivač obično ima manje linija, dok računar može da ima puno veza, zbog čega se primenjuje druga strategija privremenog skladištenja za transportni sloj • U nepouzdanoj mreži, pošiljalac mora da privremeno uskladišti TPDU poruke koje šalje, zbog eventualne potrebe da ih šalje ponovo • Problem izbora veličine bafera u zavisnosti od veličine TPDU poruka – poruke iste dužine, poruke različitih dužina,
Problem bafera • Problem izbora bafera zavisi i od saobraćaja na mreži • Za povremen, mali saobraćaj za datu vezu mogu da se koriste dinamički baferi – po potrebi • Za intenzivan saobraćaj sa prenosom datoteka, potrebno je da se svakoj vezi dodeli poseban bafer • Pošiljalac treba da ima mogućnost da može da zahteva adekvatne bafere na prijemnoj strani • Baferi se mogu dodeljivati po pojedinačnoj vezi, ili zbirno za sve veze između dva računara
Dinamičko dodeljivanje bafera • Dodeljivanje bafera je dinamičko zbog stalne promene uslova – uspostavljanje i prekidanje veza, kao i promena intenziteta saobraćaja • Pošiljalac zahteva bafere, a primalac šalje potvrdu o rezervisanim baferima posebnim porukama, a ne šlepovanim uz povratne okvire • Pošto se upravljačke TPDU poruke – o baferima ne memorišu, zbog mogućeg gubljenja, treba da se periodično emituju – šalju • Ako bafera ima uvek dovoljno, ograničenje može biti prenosni kapacitet mreže
Multipleksiranje • Korišćenje samo jedne mrežne adrese za više različitih transportnih veza – uzlazno - upward multiplexing i obrnuto, slanje većeg saobraćaja preko više IP adresa – downward multiplexing
Oporavak posle pada sistema • Mogućnost otkaza mrežnog sloja ili računara • Otkaz usmerivača kod datagram-ske veze nije problem • Kada otkaže usmerivač sa direktnom vezom, uspostavlja se nova veza i utvrđuje se koji su paketi primljeni a koji ne i ponovo se šalju • Složenija je situacija kada otkaže računar – server • Klijent može da bude u jednom od dva stanja: S1 kada je poslao TPDU i čeka potvrdu, ili S0 ne čeka potvrdu
Oporavak posle pada sistema 2 Server ne vrši u istom trenutku upis primljenog paketa i slanje potvrde. Problem je ako se desi otkaz servera između ova dva događaja Različite varijante strategija servera i klijenta i moguće kombinacije i scenariji Problem oporavka nije trivijalan
Jednostavan primer transportnog protokola • connum = CONNECT(local TSAP, remote TSAP) – pozivalac blokiran u toku uspostavljanja veze, konačno vreme • connum = LISTEN(pristupna TSAP) – primalac blokiran dok neko ne uspostavi vezu • status = DISCONNECT(connum) – simetrično raskidanje veze • status = SEND(connum, buffer, bytes) – slanje podataka – sadržaja bafera - poyivalas • Status = RECEIVE(connum) – prijem podataka sa zadatog broja konekcije
Pretpostavke za mrežni sloj • Radi jednostavnosti, pretpostavlja se da mrežni sloj radi sa direktnom pouzdanom vezom • Time se postiže da se razmatra problematika karakteristična za transportni sloj – uspostavljanje i raskidanje veze, kao i radsa kreditima • Transportna jedinica može biti deo OS ili deo biblioteke potprograma u ovom slučaju • Interfejs ka mrežnom sloju – procedure to_net i from_net
Paketi mrežnog sloja koje koriste procedure to_net i from_net
Stanja transportne jedinice • IDLE – nije uspostavljena veza • WAITING – izvršeno CONNECT i poslat paket CALL_REQUEST • QUEUED – stigao CALL_REQUEST, nije izvršeno LISTEN • ESTABLISHED – veza uspostavljena • SENDING – čeka se dozvola za slanje paketa • RECEIVING – izvršeno RECEIVE • DISCONNECTING – izvršen lokalni DISCONNECT
Prelasci iz stanja u stanje • Događaji izazivaju prelazak iz stanja u stanje • Izvršavanje osnovne operacije • Stizanje paketa • Isticanje tajmera • Sve procedure iz listinga se mogu pozvati iz korisničkog programa osim procedura clock i packet_arrival koje pokreću spoljašnji događaji – stizanje paketa i rad sata. Te dve procedure su prekidne – služe za obradu prekida – interrupt-a
Opis protokola • Procedure to_net i from_net predstavljaju interface između transportnog i mrežnog sloja • Transportnom sloju su poznatri parametri koji se predaju procedurama to_net i from_net, ali to je sve • Ako je bafer / prozor mrežnog sloja popunjen, mrežni sloj blokira proceduru to_net dok se ne oslobodi – to je transparentno za transportni sloj • Mrežni sloj takođe podešava veličinu prozora - bafera
Opis protokola (2) • Procedurama to_net i from_net se predaje 6 parametara • Cin – identifikator veze koji se preslikava na virtuelni kolo – u saglasnosti sa pretpostavkama – direktna pouzdana veza • Q bit 1 označava upravljačku poruku – CREDIT za podešavanje prozora, 0 nije upravljačka, već podaci • M bit 1 sledi još delova iste poruke, 0 nema više • Oznaka tipa paketa koji mrežni sloj treba da pošalje, bira se na osnovu osnovne operacije koja se izvodi • Pokazivač na podatke koji se šalju • Broj bajtova poruke • Transportni sloj samo navodi tipove paketa, dok ih mrežni sloj razmenjuje – predaje / prima, i obavlja sve poslove u vezi toga
Opis protokola (3) • Glavna strukura podataka je niz conn čiji su elementi istoimena struktura conn – po jedan element niza – zapis za svaku vezu • Stanje svakog elementa niza se inicijalizuje sa IDLE • Kada se pozove procedura CONNECT, nalaže se mrežnom sloju da pošalje paket CALL_REQUEST i potom se poziva sleep() • Kada paket CALL_REQUEST stigne, sa packet_arrival() – interrupt, se proverava da li se osluškuje data adresa • Ako se osluškuje, vraća se paket CALL_ACCEPTED, posle čega se server budi • Ako se ne osluškuje CALL_REQUEST se smešta u red čekanja i aktivira se timer sa TIMEOUT • Ako se u toku TIMEOUT pozove LISTEN, uspostavlja se veza, ako ne paket se odbacuje i šalje se CLEAR?REQUEST da bi se pozivalac odblokirao
Opis protokola (4) • Pošto se može uspostaviti više transportnih veza, jedan od načina za obeležavanje veze je da se oznaka – broj virtuelnog kola iz mrežnog sloja upotrebi kao broj transportne veze, tj. Kao indeks za niz conn. • Paket koji stigne virtuelnim kolom k, pripada onda transportnoj vezi conn[k] • Poziv procedure RECEIVE šalje transportnoj jedinici pošiljaoca kreditnu poruku • Procedura SEND pošiljaoca proverava da li je stigao kredit preko zadate veze – na koju se šalju podaci • Ako jeste stigao, poruka se šalje u određenom broju paketa • Ako nije stigao, čeka se da stigne • SEND ništa ne šalje bez prehodnog RECEIVE sa suprotne strane
Transportni protokol kao mašina konačnih stanja • Pošto je transportni protokol i u pojednostavljenoj varijanti složen, korisno je da se predstavi mašinom konačnih stanja radi kašeg pregleda, opisa, uvida, dokumentacije • Postoji ukupno 7 mogućih stanja po svakoj vezi • Ukupno 12 događaja koji dovode do prebacivanja veze iz jednog stanja u drugo • 5 su osnovne operacije usliga • Pristizanje 6 vrsta paketa od mrežnog sloja • Isticanje roka timer-a