Sloj veze podataka Osnovni zadaci sloja podataka Dobro
Sloj veze podataka
Osnovni zadaci sloja podataka • Dobro definisan interfejs prema mrežnom sloju • Obrada grešaka pri prenosu • Upravljanje tokom podataka – usklađivanje brzine prijema i slanja
Tokovi podataka
Osnovne usluge sloja podataka • Prenos podataka bez uspostavljanja direktne veze i bez potvrde o prijemu • Prenos podataka bez uspostavljanja direktne veze i sa potvrdom o prijemu • Prenos podataka sa uspostavljanjem direktne veze i sa potvrdom o prijemu
Prenos podataka bez uspostavljanja direktne veze i bez potvrde o prijemu • Izvorišni računar šalje nezavisne okvire bez potvrde prijema • Nema uspostavljanja ili raskidanja logičke veze • Gubljenje podataka - okvira se ne registruje i ne koriguje se • Pogodno kada je mala verovatnoća grešaka • Komunikacija u realnom vremenu kada je odsustvo kašnjenja bitnije od eventualnih grešaka • Proveru i korekciju grešaka rade viši slojevi • Koristi se kod lokalnih mreža u sloju veze
Prenos podataka bez uspostavljanja direktne veze i sa potvrdom o prijemu • Ne uspostavlja se logička veza između računara u komunikaciji, ali se šalje potvrda o prijemu svakog pojedinačnog okvira • Ako potvrda izostane u nekom vremenskom intervalu, okvir se ponovo šalje • Paket se može sastojati od više okvira • Ako su greške česte –bežični prenos, isplativije je slanje potvrde o svakom okviru, nego o svakom paketu –okviri su manji, pa se lakše ponovo pošalju • Ako su greške retke – optički kabl, vrši se provera paketa
Prenos podataka sa uspostavljanjem direktne veze i sa potvrdom o prijemu • Računari u komunikaciji uspostavljaju vezu • Okviri se numerišu, a sloj veze garantuje isporuku okvira i još u pravilnom redosledu • U prvoj fazi se uspostavlja veza i pripremaju resursi za vezu – brojači okvira • U drugoj fazi se prenose okviri • U trećoj fazi veza se raskida i oslobađaju se resursi korišćeni za vezu • Primer – regionalna mreža sa iznajmljenom linijom i usmerivačima od tačke do tačke
Protokol sloja veze
Okviri • Fizički sloj prenosi bitove manje ili više pouzdano • Sloj veze iznad treba da vrši proveru prenetih podataka i korekciju • Tok bitova – podataka fizičkog sloja se grupiše u okvire u sloju veze • Okviri omogućavaju da se vrši provera prenosa podataka i da se vrši korekcija po potrebi • Kako se okviri definišu i dele? • Postoje razni načini da se to uradi
Podela na okvire • Vremenski interval između okvira - nepouzdano • Prebojavanje znakova, polje sa brojem znakova
Indikatorski byte • Znak – byte kojim se označava početak i kraj okvira • Dva uzastopna indikatorska byte-a označavaju kraj jednog i početak narednog okvira • Indikatorski byte može da predstavlja podatak okvira koji se prenosi, šta onda? • Sloj veze može da u tom slučaju prosledi neki znak na pr. ESC ispred indikatorskog znaka • Sloj veze na prijemu uklanja taj znak – ESC predaje podataka mrežnom sloju • Umetanje byte-ova – byte stuffing
ESC kao regularni znak u prenosu • 1 ESC znak – indikatorski byte je regularni znak • 2 ESC znaka – ESC znak je regularan znak
Bit stuffing – umetanje bit-ova • Prenos ASCII (8) ali i Uni. Code (16) znakova koji su različite dužine zahteva umetanje na nivou bitova koje je je nezavisno od dužine znakova • Indikator je opet byte sledeće sekvence bitova: • 01111110 • Dva takva uzastopna byte-a označavaju kraj jednog i početak narednog okvira • Posle svakih pet uzastopnih 1 -ca umeće se 0 • Ako je znak indikator deo podataka, šalje se kao • 011111010
Primer umetanja bitova
Bit stuffing 2 • Na taj način se sekvenca: • 01111110 • Može naći isključivo između dva okvira jer se onda ne ubacuje 0 posle 5 bitova, dok se u podacima ubacuje • Sloj veze vrši ubacivanje 0 pri predaji, i takođe izbacuje 0 prijemu, tako da mrežni sloj ništa ne zna o tome • Neki protokoli kombinuju brojanje znakova sa indikatorskim byte-ovima, pa prihvataju okvir jedino kada se oba načina slažu
Kontrola grešaka • Neophodna kod sigurne - pozdane usluge sa i bez direktne veze • Pouzdana usluga se obezbeđuje slanjem povratne informacije pošiljaocu- pozitivna ili negativna potvrda o prijemu • Postoje principijelni problemi – okvir nikada ne stigne, pa ne stigne nikakva potvrda koja se očekuje, čime se blokira dalji prenos • Dokle čekati? Vreme se ograničava tajmerom, posle čega se okvir ponovo šalje.
Kontrola grešaka 2 • Šta ako se izgubi potvrda o uspešnom prijemu? • Okvir se ponovo šalje posle vremena određenog tajmerom • Onda se šalju uzastopno dva ispravna okvira • To se takođe mora detektovati – preko rednih brojeva okvira koji se šalju sa okvirima i uzeti samo jedan okvir a drugi odbaciti • U normalnim situacijama će najćešće potvrda stići pre isteka vremena definisanog tajmerom
Upravljanje tokom podataka • Usaglašavanje brzine slanja podataka – brzi pošiljalac i spori primalac • Feedback based regulacija – primalac obaveštava pošiljaoca o brzini kojom može da šalje podatke • Rate based control – brzina se ograničava samim protokolom nezavisno od stanja primaoca
Otkrivanje i ispravljanje grešaka • Obrada greška zahteva da se uz korisne podatke, takođe prenose i dodatni podaci za kontrolu grešaka • Dve osnovne strategije za obradu grešaka • Otkrivanje greške prenosa – učestalost grešaka je mala, pa se ponovo šalju blokovi podataka – optički kablovi • Otkrivanje i korekcija greške prenosa – učestalost grešaka velika, pa se greške koriguju bez ponovnog slanja – bežične komunikacije
Obrada grešaka • • • m bit-ova podataka – poruka koja se prenosi r redundantnih - kontrolnih bitova Okvir dužine n = m + r zove se i kodna reč Kodna reč A: 10001001 i B: 10110001 Broj bitova razlike između A i B naziva se Hammingovo rastojanje Ako je Hamming rastojanje d, to znači da je za konvertovanje jedne reči u drugu potrebno izvršiti d konverzija bitova 10001001 10110001 ISKLJUČIVO ILI (EXOR) operacija 00111000 broj jedinica daje rastojanje d = 3
Hamming rastojanje celog koda • Sa m bit-ova podataka moguće 2 m poruka • Ali nema svih 2 n različitih poruka • Može se napraviti potpuna lista svih mogućih kodnih reči dužine n • U toj listi se može odrediti minimalno rastojanje između dve kodne reči koje se naziva Hamming rastojanje celog koda • To rastojanje direktno određuje mogućnost za detekciju i korekciju grešaka • Detekcija d grešaka zahteva rastojanje d+1 • d jednobitnih grešaka ne može da dovede do pretvaranja važeće kodne reči u neku drugu važeću kodnu reč
Parnost - paritty • Paritty bit omogućava jednostavnu proveru ispravnosti prenosa za jednu jednobitnu grešku • Kod sa paritty bit-om ima Hamming rastojanje • d = 2, jer se može detektovati samo jednobitna greška • U slučaju dve jednobitne greške, ovom metodom se ne može otkriti greška jer se time parnost ne menja • Za korekciju grešaka, potrebno je još redundantnih bitova
Korekcija jednobitnih grešaka • • • m bitova korisnih podataka r kontrolnih bitova za korekciju n = m + r dužina kodne reči 2 m različitih korisnih podataka Za svaku od 2 m korisnih poruka postoji n pogrešnih poruka dobijenih inverzijom 1 bita • Svakoj od 2 m korisnih poruka odgovara n+1 sekvenca (1 tačna i n pogrešnih) • Ukupan broj sekvenci je 2 n • Treba da važi: 2 m *(n+1) <= 2 n
Korekcija jednobitnih grešaka 2 • (m+r+1)* 2 m <= 2 m+r • m+r+1 <= 2 r • Dobijeno r je minimalni broj redundantnih bitova neophodan za korekciju jednobitne greške
Hamming code - korekcija jednobitnih grešaka • p 1, p 2, . . . bitovi parnosti (paritty) 1, 2, 4, 8, 16 • d 1, d 2, . . . bitovi podataka (data) • x – mesta koje kontrolišu bitovi parnosti • Vertikala na mestu di određuje bitove parnosti koji kontrolišu bit podataka di
Određivanje Hamming bitova parnosti
Provera bitova parnosti
Korekcija rafalne greške sa Hamming code • Hamming code omogućava korekciju jednobitnih grešaka • Rafalna greška u sekvenci menja više bitova • Ako se sekvenca od k uzastopnih reči poređa u matricu i takva matrica pošalje u redosledu po kolonama, onda se može korigovati rafalna greške do dužine k. • Radi se o tome da rafalna greška uzastopno menja bitova u jednoj koloni, ali ti bitovi u stvari pripadaju različitim rečima, pa u svakoj reči ima samo po jedna greška, što se može ispraviti
Hamming code - varijante • Šta ako se nepravilno prenese neki od bitova parnosti, a ne bitova podataka? • Bitovi podaci se kontrolišu sa najmanje 2 ili više bitova parnosti, tako da ako je samo jedan od bitova parnosti neispravan, to znači da je baš taj bit parnosti pogrešno prenesen.
Korekcija rafalne greške sa Hamming code
Kodovi za otkrivanje grešaka • Otkrivanje grešaka bez korekcije se uglavnom koristi kada je mala verovatnoća grešaka u prenosu – kod kablova – optičkih i bakarnih • Primer: • Verovatnoća nastanka greške 10 -6 • Blok dužine 1000 bita • Za korekciju potrebno dodatnih 10 bita po bloku • Za 1 Mb – 1000 blokova, potrebno 10. 000 dodatnih bitova ukupno • Pri datoj verovatnoći nastanka greške, samo jedan bit u 1 Mb će biti pogrešan, pa se ne isplati slati toliko redundantnih bitova
Kodovi za otkrivanje grešaka 2 • Za otkrivanje jednobitne greške, dovoljan je samo jedan dodatni bit parnosti • Na 1000 blokova to je 1000 dodatnih bitova • Kada se greška otkrije, ponovo se prenosi taj blok sa greškom, što daje još 1001 bit • Ukupan broj redundantnih bitova je 2001 kada se sve sabere – i ponovni prenos, u poređenju sa 10. 000 za korekciju • U slučaju rafalne greške, verovatnoća otkrivanja greške preko bita parnosti je samo ½ • Blok se može organizovati u matricu, pa da se šalje po vrstama, dok se parnost računa po kolonama • Ako ima n kolona, onda se može otkriti rafalna greška do dužine n • U slučaju dužih rafalnih grešaka, verovatnoća otkrivanja je 2 -n
Polynomial code -CRC • CRC (Cyclic Redundancy Check) • CRC se bazira na deljenju u prstenu polinoma nad konačnim poljem GF 2 – Galois field sa 2 elementa • Definisane dve operacije su: i • Bitovi u sekvenci dužine m se posmatraju kao koeficijenti polinoma M(x) stepena xm-1 • Generatorski polinom G(x) stepena xn • Dužina polinoma M(x) je veća od G(x) • Prvi i poslednji bit G(x) su 1
Polynomial code –CRC 2 • Predajna i prijemna strana se dogovaraju o izboru G(x) • Množenje M(x) sa xn je dodavanje n 0 -la sa desne strane • Zatim se polinom M(x) deli sa G(x) – po modulu 2 – nema pozajmice • Rezultat je polinom Q(x) i ostatak R(x) koji predstavlja CRC
Postupak deljenja polinoma preko binarnih operacija sa bitovima koeficijentima
Provera na prijemnoj strani • CRC podatak – ostatak deljenja se priključuje bloku podataka koji se prenosi • Na prijemnoj strani se čitav postupak ponavlja sa istim G(x), i ako se dobije isti ostatak, pretpostavlja se da nije bilo grešaka u prenosu • To nije garancija da nije bilo grešaka u prenosu, ali je verovatnoća da je došlo do greške mala • Od izbor polinoma G(x) zavisi efikasnost otkrivanja grešaka
Karakteristike polinoma G(x) • Najbitnija karakteristika polinoma G(x) je dužina, tj. red najvišeg koeficijenta različitog od nule • Najčešće korišćene dužine polinoma su: – 9 bits (CRC-8) – 17 bits (CRC-16) – 33 bits (CRC-32) – 65 bits (CRC-64) • Važno je da se koriste ireducibilni polinomi po analogiji sa prostim brojevima • Ne ireducibilni polinomi imaju umanjenu moć detekcije grešaka
Karakteristike polinoma G(x) 2 • Polinomi sa više od jednog koeficijenta različitog od nule otkrivaju sve jednobitne greške u dolaznoj poruci na koju se primenjuju • Sve dvobitne greške mogu da se otkriju ako je poruka kraća od 2 k, gde je k dužina najvećeg ireducibilnog dela polinoma G(x) • Ako je polinom G(x) deljiv sa x+1, onda će biti detektovane sve greške sa neparnim brojem bitova • Detektuju se pojedinačne rafalne greške dužine manje od najvećeg stepena G(x)
Osnovni protokoli veze podataka • Neke pretpostavke za grupu protokola sloja veze podataka koji će ovde biti razmotreni • Procesi u fizičkom, sloju veze i u mrežnom sloju su nezavisni • Računar A šalje dugačak tok podataka računaru B što znači da A ne mora da čeka na podatke koje dobija iz mrežnog sloja • Veza je pouzdana, direktno uspostavljena • Paket iz mrežnog sloja se pakuje u okvir tako što se dodaje zaglavlje i završni blok – kontrolni zbir CRC
Procedure protokola sloja veze • Komunikacija sa fizičkim slojem u oba smera, tj predaja i prijem okvira ide preko procedura to_physical_layer i from_physical_layer • Na prijemnoj strani procedura wait_for_event(&event) čeka na događaj – prijem okvira od fizičkog sloja • Osim čekanja, mogu da se odvijaju i neke druge paralelne aktivnosti, pri čemu signal interrupt-a preusmerava aktivnost na obradu dolaznog okvira • Izračunava se CRC - hardverski
Procedure protokola sloja veze 3 • Obaveštava se sloj veze o rezultatu provere okvira – bez greške(event=frame_arrival) ili sa greškom (event=cksum_err) • Ako nema greške, sloj veze preuzima okvir procedurom from_physical_layer • Posle obrade okvira, paket se prosleđuje mrežnom sloju procedurom to_network_layer • Zaglavlje okvira se ne prosleđuje mrežnom sloju zbog nezavisnosti ova dva sloja
C listing programa za sloj veze tipovi podataka
C listing programa za sloj veze deklaracije procedura
C listing programa za sloj veze deklaracije procedura 2
Protokol za neograničen jednosmeran prenos podataka - Simplex protocol • Maksimalno idealizovan slučaj prenosa • Podaci se prenose samo u jednom smeru • Mrežni slojevi su uvek spremni za slanje / prijem podataka • Vreme obrade je zanemarljivo • Buffer-i su neograničene dužine • U fizičkom kanalu nikada ne dolazi do smetnji i gubljenja podataka • Nema neusklađenosti između brzine slanja i prijema podataka
Simplex protocol stop & wait stani i čekaj • Odbacuje se idealizacija da mrežni sloj može trenutno da obradi sve podatke koje dobije od sloja veze • Bafer u sloju veze nije neograničene dužine • Prenos je jednosmeran bez grešaka • Rešavanje problema usaglašavanja brzine sporog primaoca i brzog pošiljaoca • Δt je vreme za izvršavanje procedura from_physical_layer i to_network_layer • Primalac šalje povratnu informaciju o primljenom okviru, radi sinhronizacije slanja i primanja • Povratna informacija u vidu malog praznog okvira
Simplex protocol stop & wait • Zaključak: • Iako se podaci šalju samo u jednom smeru, postoji dvosmeran tok zbog toka povratne informacije • Dvosmeran tok nikada nije simultan • Kanal može biti simplex - jednosmeran
Simplex protokol bučnim kanalom • Bučni kanal znači da nastaju greške u prenosu • Okviri se mogu izgubiti li se može promeniti sadržaj • Pretpostavlja se da se svako oštećenje okvira može detektovati • PAR - Positive Acknowledgement with Retransmision • ARQ – Automatic Repeat re. Quest • Može da se izgubi okvir sa podacima ili okvir sa potvrdom
Simplex protokol bučnim kanalom 2 • Gubljenje okvira sa podacima prozrokuje ponovno slanje okvira što je dobro • Ako se izgubi povratni okvir sa potvrdom o prijemu, to nije dobro, jer će se ponovo poslati okvir koji je uspešnoprimljen – duplikat • Neophodno je pouzdano razlikovanje duplikata • Pošto se uek radi o susednim okvirima, dovoljno je okvire koji se šalju numerisati naizmenično samo sa 0 ili 1 za pouzdano razlikovanje duplikata
Protokoli kliznih prozora Sliding window protocols • Dvosmerni protokoli za slanje poruka u oba smera istim komunikacionim kanalom • Slanje potvrde o prijemu preko okvira za slanje podataka u suprotnom smeru – šlepovanje (piggybacking) • Povećava se efikasnost kanala, ali se takođe povećava i složenost protokola jer treba odlučiti koliko se čeka na sledeću poruku u suprotnom smeru • Pošiljalac i primalac održavaju skup rednih brojeva okvira koje mogu da pošalju / prime • Skup tih brojeva predstavlja prozor
Protokoli kliznih prozora • Skup rednih brojeva okvira koji su poslati ili se mogu slati su brojevi okvira za koje nije stigla potvrda – prozor pošiljaoca • Novi paket iz mrežnog sloja povećava gornju granicu prozora za 1, a potvrda o prijemu povećava za 1 donju granicu prozora • Ako prozor dostigne max veličinu, onda se zatvara mrežni sloj, da više ne šalje pakete • Prozor primaoca sadrži sve redne brojeve okvira koje primalac sme da prima. • Svaki okvir van ovog skupa se zanemaruje
Klizni prozor veličine 1 – redni broj veličine 3 bita (0 – 7)
Jednobitni protokol kliznog prozora • Ovaj protokol radi slično kao i stani i čekaj jer se šalje samo po jedan okvir i čeka se potvrda pre slanja sledećeg okvira • Sada jedna ista procedura služi i za slanje i za prijem okvira • Potvrda o primljenom okviru se šalje sa sledećim okvirom podataka koji se šalje pošiljaocu (u ovom slučaju i primaocu)
Scenariji kliznog prozora širine 1 a – regularna situacija b - neregularna
Protokol tipa “vrati se N” • Kada je kašnjenje signala duž komunikacione linije veliko ne može se zanemariti. • Veliko kašnjenje smanjuje iskorišćenje komunikacione linije • l – veličina okvira u bitima • b – kapacitet kanala u bitima/sec • R – vreme obilaska linije – kašnjenje u sec • l/b – vreme prenosa jednog okvira u sec • Iskorišćenje linije = l/b/(R+l/b) = l/(l+Rb) • Ako je Rb veliko, Rb > l, iskorišćenje je malo
Vrati se N – Go back N Prozor dužine 1 Protočno slanje podataka Selektivno ponovno slanje
Vrati se N i selektivno slanje • Vrati se N štedi memoriju ali rasipa propusni opseg • Selektivni pristup efikasno koristi propusni opseg, ali mu treba velika memorija • Uvodi se događaj network_layer_ready – mrežni sloj šalje podatke samo kada ih ima, a ne uvek kao do sada • Sloj veze mora da spreči mrežni sloj da šalje podatke ukoliko je prozor popunjen – procedure enable_network_layer i disable_network_layer
Vrati se N • Koristi se modulus aritmetika određena sa N • Može se poslati do 2 N-1 okvira max. • Ne može se poslati 2 N, jer se onda ne zna odakle je okvir broj 2 N-, iz prethodne sekvence ili iz aktuelne sekvence • Posle 2 N-1 dolazi 0 i obrnuto, pre 0 je 2 N-1 • Ako stigne potvrda za i-ti okvir, onda se mogu smatrati potvrđenim i svi prethodni – i-1, i-2, . . . što je bitno ako se izgubio neki okvir za potvrdu koji je prethodno poslat
Povezani timeri • Timer-i formiraju povezanu listu • Kada dođe do 0, prvi timer generiše prekid i skida se sa liste • Samo je levi timer aktivan a ostali imaju vrednost razlike u odnosu na prvi • Kada se jedan timer skloni, startuje se sledeći na listi
Protokol sa selektivnim ponavljanjem • Ovaj protokol dolazi do izražaja kada ima dosta grešaka, i kada ne dolazi u obzir slanje čitave sekvence zbog samo jednog pogrešnog okvira • Veličina prozora pošiljaoca je od 0 do nekog zadatog MAX_SEQ • Prozor primaoca uvek ima veličinu MAX_SEQ • Okviri se čuvaju u buffer-u primaoca dok ne stignu svi prethodni okviri kada se isporučuju mrežnom sloju
Diskusija protokola 6 • • 3 – bitni redni brojevi MAX_SEQ + 1 = 2 n - 1 = 8 – 1 = 7 okvira max Okviri 0 – 6 se šalju i uspešno svi primaju Ali, sve potrde – ACK se gube Ponovo se šalje 0, i dobija se ACK za 6 Šalju se okviri 7, 0, 1, 2, 3, 4, i 5 Prethodni okvir 0 maskira novi okvir 0 Zato se koristi max dužina ne MAX_SEQ = 2 n-1, već 2 n / 2 = (MAX_SEQ + 1)-2 • Time se dobijaju nepreklapajući opsezi okvira, tako da se ne mogu pomešati prethodno poslati okviri sa novima a sa istim brojem, jer se sada brojevi okvira ne preklapaju
Diskusija protokola 6 (2) • Broj bafera b za čuvanje okvira je b = (MAX_SEQ+1)/2 • ACK TIMER za slanje potvrde nezavisno od postojanja saobraćaja u suprotnom smeru • Interval ACK TIMER-a mora biti kraći nego TIMER-a kod pošiljaoca • Poatoji i NAK – Not Ac. Knowledged okvir • Promenljiva no_nak za evidenciju slanja NAK • Podešavanje intervala timer-a pošiljaoca • Veza timer-a i okvira: 01234 → 3405126
Provera rada protokola Model mašine konačnih stanja • Stanje računara povezanog protokolom – trenutne vrednosti promenljivih koje protokol koristi • Grupisanje stanja (čekanje na okvir 0 ili 1 na pr) • Stanje – čekanje na sledeći događaj • Broj stanja 2 n, n je broj bitova za prikaz svih promenljivih koje definišu stanja • Stanje sistema je kombinacija svih stanja računara povezanih protokolom i kanala • Stanje kanala – sadržaj kanala (4 stanja: 1. okvir 0 ili 2. okvir 1, 3. potvrda i 4. prazan kanal
Model mašine konačnih stanja (2) • • • Broj stanja sistema 2 n 1+n 2+nk n 1 – broj stanja računara 1 n 1 – broj stanja računara 2 nk – broj stanja kanala Okvir u kanalu – nije prebačen iz fizičkog sloja u sloj veze • Prelazi između stanja (0, 1, ili više) – transitions se izazivaju događajima – events • Događaji računara: slanje okvira, dolazak okvira, isključivanje timer-a • Događaji kanala: slanje i prijem, kao i gubitak okvira usled šuma
Model mašine konačnih stanja (3) • • • Potpun opis modela sistema → usmereni graf Čvorovi – stanja, usmerene grane - prelazi Početno stanje – initial state Analiza rada protokola preko analize dostupnosti stanja preko grafa Protokol po modelu mašine konačnih stanja: (S, M, I, T) S - skup svih mogućih stanja sistema(kanal + računari) M - skup okvira koji se razmenjuju I - skup početnih stanja T - skup svih prelaza između stanja
Analiza protokola preko mašine konačnih stanja • Otkrivanje grešaka u specifikaciji protokola preko analize dostupnosti • Stanja bez specifikacije akcije ili prelaza – nepotpuna specifikacija protokola • Stanja bez izlaza – beskonačna petlja • Prelaz koji se ne može desiti
Dijagram stanja protokola 3 samo stanja dostupna iz početnog S – sender 0 / 1 Stanja: SRC R – receiver 0 / 1 C – channel 0 / 1 / A / - (prazno)
Modeli mreže Petri • • • Četiri osnovna elementa Petri mreža Mesta, prelazi, lukovi i žetoni Mesto – stanje sistema ili dela sistema - krug Prelaz – kratka vertikalna ili horizontalna crta Luk – ulazni / izlazni – spaja mesto i prelaz Žeton – crni kružić označava aktuelno stanje
Modeli mreže Petri (2) • Prelaz je omogućen ako u svakom od izvorišnih mesta postoji barem jedan žeton • Petri mreže su nedeterminističke, tj. ako je prelaz omogućen, može da se aktivira ali ne nužno • Istovremeno može da bude omogućeno dva ili više prelaza • Prelaz koji će se aktivirati od omogućenih prelaza nije unapred određen
Primeri protokola sloja veze • Protokoli izvedeni iz IBM protokola sloja veze • SDLC – Synchronous Data Link Control • Protokol za sinhrono upravljanje povezivanjem podataka • ANSI (SDLC) → ADCCP – Advanced Data Communication Control Procedure • ISO (SDLC) → HDLC – High level Data Link Control • CCIT (SDLC) → LAP – Link Access Procedure • LAPB
Format okvira za protokole koji rade sa bitovima • • • Početna i završna sekvenca bitova 01111110 Adresa Control – upravljanje - redni brojevi, potvrde Data - podaci – informacije koje se prenose Checksum – kontrolna suma Informacioni, nadzorni i nenumerisani okviri
Control – upravljačko polje • • a) Kod Informacionih okvira Seq – redni broj okvira sa 3 bita, ukupno 7 Next – potvrda – sledeći okvir koji se očekuje Process / Finish (P – okviri sa podacima) (F poslednji okvir)
Polje control (b) kod nadzornih okvira • Type 0 – Receive ready – koristi se kada nema povratnog saobraćaja, očekuje se sledeći okvir - next • Type 1 – Rejected, očekuje se ponovno slanje pogrešnh okvira počev od next • Type 2 – Receive not ready – potvrda svih pri‚mljenih okvira, ne šalji više • Type 3 – Selective reject – ponovno slanje samo naznačenog okvira
Polje control (c) kod nenumerisanih okvira • Koristi se za upravljanje, ali i za prenos podataka • 5 bitova za označavanje tipa okvira • Kod svih protokola komanda DISConnect – zbog preventivnog održavanja • SNRM – Set Normal Response Mode za asimetričnu komunikaciju računat terminal • SABM Set Asynchrnous Balanced Mode – simetrična komunikacija • FRMR – FRa. Me Reject – zbog neispravne semantike – značenja sadržaja
Sloj veze podataka na Internetu • • • Pojedinačni umreženi računari Usmerivači Komunikaciona infrastruktura Lokalne mreže i pojedinačni korisnici Lokalne mreže su preko iznajmljene linije tipa od tačke do tačke povezane sa svim drugim mrežama na Internetu • Pojedinačni korisnici (Internet host) su preko privremenih linija tipa od tačke do tačke povezani sa svim drugim mrežama na Internetu
Kućni PC ravnopravan sa ostalima na Internetu
PPP (Point to Point Protocol) sloja veze • RFC 1661, 1662 i 1663 • Koristi se za saobraćaj između usmerivača kao i za vezu korisnik – internet provider • PPP obrađuje greške • Podržava više protokola • Omogućava dogovaranje IP adresa prilikom povezivanja • Jasno razgraničavanje okvira i otkrivanje grešaka • LCP – Link Control Protocol – sinhrone i asonhrone veze • Više podržanih mrežnih slojeva
Sesija povezivanja na Internet preko provider-a • LCP (Link Control protocol) paketi za dogovaranje PPP parametara sloja veze • NCP (Network Control Protocol) paketi za konfigurisanje mrežnog sloja • Privremena dodela IP adrese • Po završetku veze, prvo NCP prekida vezu u mrežnom sloju i oslobađa korišćenu IP adresu • Potom LCP prekida vezu u sloju podataka • Format PPP okvira je sličan kao kod HDLC-a, jer nema razloga da bude različit • HDLC radi na nivou bitova dok PPP radi sa znakovima
Format PPP okvira • PPP okviri se mogu prenositi telefonskim linijama kao i SONET linijama • Standardni Flag-ovi na početku i kraju • Polje adresa uvek isto, koristi se daresa u sloju mreže • Vrednost control polja 00000011 – nenumerisan okvir – PPP ne obezbeđuje pouzdan prenos • Sa numerisanjem okvira – pouzdan prenos • Ova fiksna polja se mogu i izstaviti zbog uštede • Protocol: LCP, NCP, IPX, Apple Talk
Format PPP okvira • Korisnički podaci – promenljive dužine, podrazumevano 1500 byte-ova • PPP – multiprotokolarni mehanizam za uokvirivanje podataka koji radi preko modema, HDLC-a, SONET-a i raznim fizičkim slojevima • Podržava dogovaranje opcija, otkrivanje grešaka i pouzdan prenos
PPP povezivanje i raskidanje
Razmatrani protokoli • Sloj veze podataka organizuje niz bitova iz fizičkog sloja u niz okvira koji koristi mređni sloj • Okviri se mogu formirati – razgraničiti na različite načine – prebojavanjem znakova, umetanjem bitova i byte-ova • Korekcija greške ponovnim slanjem oštećenih i izgubljenih okvira • Usaglašavanje brzine slanja i prijema – upravljanje tokom • Mehanizam kliznih prozora objedinjava upravljanje tokom i korekciju grešaka
Razmatrani protokoli 2 Protokol 1 stani i čekaj, pretpostavka da nema grešaka, i da nema zastoja kod primaoca • Protokol 2 nema grešaka, upravljanje tokom • Protokol 3 obrada grešaka • Protokol 4 dvosmerna komunikacija, šlepovanje potvrde • Protokol 5 klizni prozori – vrati se N • Protokol 6 selektivno ponavljanje i slanje NAK • Razmatrano modelovanje protokola mašinom konačnog stanja i Petri mrežom
Razmatrani protokoli 3 • Široko korišćeni protokoli u sloju veze podataka • SDLC, HDLC, ADCCP i LAPB • Razgraničavanje putem indikatorskog bajta i umetanja bajtova • Klizni prozori za upravljanje tokom • Na Internetu je PPP osnovni protokol sloja veze za linije tipa od tačke do tačke
- Slides: 95