1 / 96

Sloj veze podataka

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.

reyna
Download Presentation

Sloj veze podataka

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. Sloj veze podataka

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

  3. Tokovi podataka

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

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

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

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

  8. Protokol sloja veze

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

  10. Podela na okvire • Vremenski interval između okvira - nepouzdano • Prebrojavanje znakova, polje sa brojem znakova

  11. 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 pre predaje podataka mrežnom sloju • Umetanje byte-ova – byte stuffing

  12. ESC kao regularni znak u prenosu • 1 ESC znak – indikatorski byte je regularni znak • 2 ESC znaka – ESC znak je regularan znak

  13. Bit stuffing – umetanje bit-ova • Prenos ASCII (8) ali i UniCode (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

  14. Primer umetanja bitova

  15. Bit stuffing 2 • Na taj način se sekvenca: • 0111111001111110 • 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 pri 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

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

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

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

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

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

  21. Hamming rastojanje celog koda • Sa m bit-ova podataka moguće 2m poruka • Ali nema svih 2n 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č

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

  23. Korekcija jednobitnih grešaka • m bitova korisnih podataka • r kontrolnih bitova za korekciju • n = m + r dužina kodne reči • 2m različitih korisnih podataka • Za svaku od 2m korisnih poruka postoji n pogrešnih poruka dobijenih inverzijom 1 bita • Svakoj od 2m korisnih poruka odgovara n+1 sekvenca (1 tačna i n pogrešnih) • Ukupan broj sekvenci je 2n • Treba da važi: 2m *(n+1) <= 2n

  24. Korekcija jednobitnih grešaka 2 • (m+r+1)* 2m <= 2m+r • m+r+1 <= 2r • Dobijeno r je minimalni broj redundantnih bitova neophodan za korekciju jednobitne greške

  25. Hamming code - korekcija jednobitnih grešaka p1, p2, ... bitovi parnosti (paritty) 1, 2, 4, 8, 16 d1, d2, ... bitovi podataka (data) x – mesta koje kontrolišu bitovi parnosti Vertikala na mestu di određuje bitove parnosti koji kontrolišu bit podataka di

  26. Određivanje Hamming bitova parnosti

  27. Provera bitova parnosti

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

  29. Korekcija rafalne greške sa Hamming code

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

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

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

  33. Polynomial code -CRC • CRC (Cyclic Redundancy Check) • CRC se bazira na deljenju u prstenu polinoma nad konačnim poljem GF2 – 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

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

  35. Postupak deljenja polinoma preko binarnih operacija sa bitovima - koeficijentima

  36. Jednostavni ilustrativni primeri Polinom podatak Q(x) 1101=13 Generatorski polinom G(x) 11=3 Deljenje 13/3=4 ostatak 1 Dodavanje 0 množenje sa 2 i dodavanje 1 13 * 2 +1 = 27 27 / 3 = 9 ostatak 0 Q(x) = 17 = 10001 G(x) = 5 = 101 Q(x) / G(x) = 3 ostatak 2 17 * 4 + 2 = 70 – deljivo sa 5

  37. 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 ne dobije 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 izbora polinoma G(x) zavisi efikasnost otkrivanja grešaka

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

  39. 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 2k, 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)

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

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

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

  43. C listing programa za sloj veze tipovi podataka

  44. C listing programa za sloj vezedeklaracije procedura

  45. C listing programa za sloj vezedeklaracije procedura 2

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

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

More Related