1 / 83

Transportni sloj

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

aran
Download Presentation

Transportni sloj

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Transportni sloj

  2. 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

  3. Odnos transportnog sloja i susednih slojeva

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. Serverski kod

  12. 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

  13. Klijentski kod

  14. 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

  15. 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

  16. Server procesa za inicijalno povezivanje

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. Raskidanje veze • Simetrično i asimetrično raskidanje veze Asimetrično raskidanje veze – mogući gubici podataka

  23. 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

  24. 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!

  25. 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,

  26. Različite organizacije bafera

  27. 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

  28. 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

  29. Prikaz komunikacije sa baferima

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. Paketi mrežnog sloja koje koriste procedure to_net i from_net

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

More Related