1k likes | 1.5k Views
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.
E N D
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
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
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 • Prebrojavanje 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 pre 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 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
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
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 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
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č
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 • 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
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
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
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.
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 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
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
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
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
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 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)
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
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