1.24k likes | 1.52k Views
Lekcija 7. Računarske mreže. S loj veze podataka ( Data Link Layer ). Sloj veze podataka. Algoritmi za postizanje pouzdane i efikasne komunikacije između dva susedna računara na nivou sloja veze Susedni računari: Povezani komunikacionim kanalom
E N D
Lekcija 7 Računarske mreže Sloj veze podataka (Data Link Layer)
Sloj veze podataka • Algoritmi za postizanje pouzdane i efikasne komunikacije između dva susedna računara na nivou sloja veze • Susedni računari: • Povezani komunikacionim kanalom • Biti se isporučuju tačno onim redom kojim su i poslati(npr. koaksijalni kabl, tel. linija, ...) • Na komunikacionom kanalu postoje greške • Razlika u brzinama slanja, prenosa i prijema podataka
Network Layer Data Link Layer Physical Layer Sloj veze - uvod • Odgovornost za pouzdan i efikasan prenos podataka od uređaja do uređaja • Predaja:Kontrola načina slanja podataka ka medijumu • Prijem: Organizacija bita sa fizičkog nivoa u konzistentnu poruku za sloj mreže • Glavne funkcije protokola na sloju veze: • Media Access Control • Kontrola kada računar šalje podatke • Error Control • Detekcija i korekcija greške u prenosu • Određivanje početka i kraja poruke
Sloj veze - terminologija Tx Rx Paket Paket frame trailer header zaglavlje Polje za korisničke podatke završni blok zaglavlje Polje za korisničke podatke završni blok Payload field Okvir (frame) Okviri imaju strogo ograničenu veličinu, definisanu hardverom
PC1 PC2 PC1 PC2 5 5 5 5 4 4 4 4 3 3 3 3 2 2 2 2 1 1 1 1 Virtuelni tok podataka Stvarni tok podataka Usluge koje se obezbeđuju za mrežni sloj
Usluge koje se obezbeđuju za mrežni sloj • Sloj veze podataka može da obezbedi različite usluge za mrežni sloj • Prenos podataka bez uspostavljanja direktne veze i bez potvrde o njihovom prijemu • Prenos podataka bez uspostavljanja direktne veze sa potvrdom o njihovom prijemu • Prenos podataka sa uspostavljanjem direktne veze i sa potvrdom o njihovom prijemu
Usluge koje se obezbeđuju za mrežni sloj • Prenos podataka bez uspostavljanja direktne veze i bez potvrde o njihovom prijemu • Tx računar šalje nezavisne okvire za Rx i ne zahteva potvrdu o prijemu • Nema uspostavljanja niti raskidanja (logičke) veze • Ako se neki okvir izgubi, ovaj sloj to ne registruje • Pogodno je za mesta sa malom verovatnoćom greške • Ispravljanje grešaka se prepušta višim slojevima • Pogodno za saobraćaj u realnom vremenu • Npr. prenos govora – gde je najbitnije kašnjenje • Koristi se u većini LAN-ova
Usluge koje se obezbeđuju za mrežni sloj • Prenos podataka bez uspostavljanja direktne veze sa potvrdom o njihovom prijemu • Pouzdanija usluga • Ne uspostavlja se logička veza između Tx i Rx • Zahteva se potvrda o prijemu za svaki primljeni okvir • Kada se utvrdi da neki okvir nije stigao Tx strana ga ponavlja • Usluga je pogodna za kanale sa visokim šumom • npr. bežični sistemi
Usluge koje se obezbeđuju za mrežni sloj • Potvrda okvira na nivou sloja veze nije neophodna • Može se prepustiti višem sloju • Ponavlja se ceo paket ako nije stigao • Paketi se obično dele na više okvira • Primer: Prosečan paket sadrži 10 okvira, a 20% ne stiže do Tx • Usluga sa potvrdom okvira se brže odvija od ponavljanja celog paketa • Ovo nije dobro kod npr. prenosa po optičkim vlaknima • Puno vremena se gubi na potvrde, a kanal je dobar
Usluge koje se obezbeđuju za mrežni sloj • Prenos podataka sa uspostavljanjem direktne veze i sa potvrdom o njihovom prijemu • Uspostava veze između Tx i Rx pre razmene podataka • Svaki poslati okvir se numeriše • Garantuje se da je takav okvir primljen • Primena npr. za vezu između rutera, tj. za veze od tačke do tačke • Ruter se na mrežnom sloju opterećuje algoritmima za rutiranje, a ne sa izgubljenim okvirima
Prenos podataka sa uspostavljanjem direktne veze • Tri odvojene faze: • Inicijalizacija promenljivih i brojača koji vode računa o primljenim okvirima • Prenosi se jedan ili više okvira • Veza se raskida, oslobađaju se promenljive, baferi i drugi resursi
Protokol na sloju veze čini komunikacionu liniju savršenom Ruter Ruter Ruter Ruter 2 2 Protokol na sloju veze 3 3 2 2 2 2 2 2 Ruter Primer: WAN mreža sa ruterima koji su povezani iznajmljenim linijama Ruter
Terminologija: Krajnji računarii ruteri sučvorovi Komunikacioni kanali koji spajaju čvorove su spojni putevi, veze ililinkovi žična veza bežična veza LAN-ovi Na sloju veze osnovna jedinica za prenos je okvir (frame) Sloj veze “linkovi” Sloj veze podataka je odgovoran za prenos paketa između susednih čvorova po datom spojnom putu
Sloj veze Datagrami se prenose različitim protokolima sloja veze podataka po različitim spojnim putevima: npr., Ethernet je prvi spojni put, frame relay je posredni spojni put, 802.11 je na kraju spojni put Svaki protokol sloja veze pruža različite servise višim slojevima npr., pouzdana/nepouzdana uspostava sa i bez potvde o prijemu
Implementacija sloja veze podataka U krajnjim računarima U mrežnim adapterima(network interface cardNIC) Ethernet card, PCMCI card, 802.11 card Radi u fizičkom sloju i sloju veze podataka Povezana je na sistemske magistrale računara Kombinacija: hardware, software, firmware application transport network link link physical host schematic cpu memory host bus (e.g., PCI) controller physical transmission network adapter card
Komunikacija mrežnih adaptera Predajna strana: Enkapsulira datagrame u okvire Dodaje bite za kontrolu greške, kontrolu toka itd. Prijemna strana Kontrola greške, kontrola toka, itd. Izdvaja datagrame i predaje ih mrežnom sloju datagram datagram controller controller Predajni računar Prijemni računar datagram okvir 5: DataLink Layer 5-16
Mrežni adapter • Sadrži interfejs prema magistrali i interfejs prema spojnom putu • Radi poluautonomno • Kada ima nešto da preda računaru, izaziva prekid prema procesoru i predaje mu primljeni okvir • Ako zaključi da je okvir pogrešan može da ga odbaci ne obaveštavajući drugu stranu • Zavisno od servisa prema višim slojevima može da: • Prati brojeve okvira • Prati tajmere • Generiše potvrde itd.
Formiranje okvira • Podela toka podataka u okvire konačne (fiksne) dužine • Izračunavanje kontrolnog zbira (checksum) za svaki okvir • Problem pronalaženja početka i kraja okvira • Mreže ne garantuju sinhronizovanost događaja na Tx i Rx strani • Na fizičkom nivou moguće su greške
Formiranje okvira • Obeležavanje početka i kraja • Prebrojavanje broja znakova • Mana: može biti loše očitana dužina • Upotreba indikatorskih bajtova uz umetanje bajtova (flegovi) • Mana: i podaci mogu biti takvi da odgovaraju flegovima • Upotreba početnih i završnih indikatora uz umetanje bita
Dužina okvira 7 1 2 3 4 5 6 4 1 2 3 8 1 2 3 4 5 6 7 5 1 2 3 4 Okvir 4 Okvir 2 Okvir 3 Okvir 1 Greška (pročitano 6 tj. 0100 se pročita kao 0110) 7 1 2 3 4 5 6 4 1 2 3 8 1 2 3 4 5 6 7 5 1 2 3 4 Okvir 4 Okvir 2 Okvir 3 Okvir 1 Obeležavanje početka i kraja • Prebrojavanje broja znakova
FLAG Zaglavlje Korisnički podaci Završni blok FLAG FLAG B A ESC FLAG B A ESC B A ESC ESC B A ESC FLAG B A ESC ESC ESC FLAG B A Obeležavanje početka i kraja • Upotreba indikatorskih bajtova sa umetanjembajtova • Umetanja zbog moguće pojave flegova u podacima Kontrolni bajt
Umetanje bajtova(Byte Stuffing) FLAG FLAG+ESC
Obeležavanje početka i kraja • Umetanje bajtova se primenjuje kod povezivanja kućnih PC-a sa davaocem Internet usluga (PPP protokol) • Problemi: • Nisu kodovi svih znakova 8-bitni (npr. kod UNICODE koristi 16 bita)
Umetanje bita(Bit Stuffing) • Upotreba početnih i završnih indikatora uz umetanje bita • Početak i kraj okvira su 01111110 • Kada se u sloju veze Tx strane naiđe na pet uzastopnih jedinica ubacuje se 0 • Ako u podacima postoji indikatorski kod on se automatski zamenjuje sa 011111010 • Ova tehnika je moguća ako okviri sa podacima mogu da budu različite dužine
Kontrolagreške (Error Control) • Upravljanje greškama na mreži koje su izazvane problemima u prenosu • Greške na mreži • Npr., promena vrednosti bita u toku prenosa • Kontrola mrežnim hardverom i softverom • Greške čoveka: • Npr., pogrešno otkucan broj (karakter) • Kontrolisane aplikacijom • Kategorije mrežnih grešaka • Narušavanje (promenjen podatak) • Izgubljen podatak (lost data)
Kontrola grešaka • Nivo greške (errorrate) • 1pogrešan bit nanposlatih bita, • Npr., 1 na 500.000 • Grupne greške (burst error) • Više bita je narušeno u isto vreme) • Greške nisu uniformno raspoređene • Npr., nije isto100 na 50,000,000 1 na 500,000 • Osnovne funkcije • Sprečavanje grešaka (Preventing errors) • Detekcija grešaka (Detecting errors) • Ispravljanje grešaka (Correcting errors)
Izvori grešaka • Šum na liniji i degradacija – osnovni uzrok • Očekivan na električnim medijima • Neočekivan električni signal • Nastaje usled uređaja i prirodnih poremećaja • Degradira performanse mreže • Manifestacije • Dodatni biti – umetanje (extra bits) • Nedostaju biti – brisanje (missing bits)
Izvor greške Uzrok Prevencija Prekid linije Greške uređaja, incidenti, linija ... Beli Gausov šum Prenos električne energije Povećati snagu signala (povećanje SNR) Impulsni šum Nagle promene struje (npr., osvetljenje, napajanje) Oklapanje kablova i njihovo pomeranje Preslušavanje Bliski kablovi, nedovoljno razmaknuti freq. opsezi Povećanje freq. opsega i pomeranje kablova Eho Loše veze(signal se reflektuje do izvorišta) Provera konektora ili podešavanje uređaja Slabljenje Povećava se sa rastojanjem Upotreba ripitera ili pojačivača Intermodulacioni šum Signal nastao kombinacijom iz više prenosnih sistema Pomeranje ili oklapanje žica Džiter Promena analognih signala (amplituda, frekvencija, faza) Podešavanje uređaja Harmonijska izobličenja Pojačivači menjaju fazu (nekorektno pojačanje ulaznog signala) Podešavanje uređaja Izvori grešaka i prevencija Najvažnije Uobičajeno za analogne sisteme
Hamingovo rastojanje • Ukupna dužina okvira n=m+r • m: dužina poruke • r: redudantni biti • Okvir dužine n – kodna reč (codeword) • Primer: 1000100110110001 00111000 • Hamingovo rastojanje je 3 XOR
Hamingovo rastojanje • Mogućnost detekcije i ispravke greške zavisi od minimalnog Hamingovog rastojanja • Detekcija d grešaka zahteva kod sa min. rastojanjem d+1 • Ispravka d grešaka zahteva kod sa min. rastojanjem 2d+1
Hamingovo rastojanje • Primer detekcije: bit parnosti • Minimalno Hamingovo rastojanje je 2 • Mogu se detektovati samo jednostruke greške • 010011001010001000000010001 • 000000011000000101000000110 XOR XOR
Hamingovo rastojanje • Primer korekcije: • Postoje 4 kodne reči0000000000 0000011111 1111100000 1111111111 • Hamingovo rastojanje je 5 • Moguće je ispraviti do dve greške • Npr: primljena kodna reč 0000000111 se konvertuje u ispravnu 0000011111 • Više od dva pogrešna bita se ne može ispraviti
Detekcija greške Primalac izračunava dodatak i poredi ga sa dobijenim Pošiljalac izračunava dodatak i šalje ga zajedno sa korisnim podacima Matematički algoritam Matematički algoritam ? = dodatak Korisni podaci • Ako je isto nema greške u prenosu • Ako je različito greška u prenosu • Povećanje dužine: • bolja detekcija greške, manja efikasnost prenosa
Detekcija greške • EDC= Biti za: Error Detection and Correction (redudansa) • D = Korisni podaci (mogu da uključe i zaglavlje okvira) • Detekcija ne mora da bude 100% • Protokoli mogu da “propuste” neke greške • Duži EDC obezbeđuje bolju detekciju i korekciju
Tehnike za detekciju greške • Provera parnosti • Longitudinal Redundancy Checking (LRC) • Polinomijalna provera • Checksum • Cyclic Redundancy Check (CRC)
Provera parnosti • Najstariji metod i najjednostavniji • Jedan bit se dodaje svakom karakteru • Parna parnost (Even parity) • Neparna parnost (Odd parity) • Prijemnik prima i ponovo računa bit parnosti • Može se uočiti neparan broj pogrešnih bita • Jednostavan metod, ali ne detektuje sve greške • Detektuje se oko 50% grešaka
sender receiver EVEN parity 01101010 number of all transmitted 1’s remains EVEN parity sender receiver ODD parity 01101011 parity Primer korišćenja bita parnosti Slanje: karaktera “V” u 7-bit ASCII kodu: 0110101
LRC - Longitudinal Redundancy Checking • Dodaje se dodatni karakter (umesto bita) • Block Check Character (BCC) – za svaki okvir podataka • Dodatak kao bit parnosti, ali se računa duž cele poruke (kao i vertikalno) • Izraćunavanje se zasniva na prvom bitu, drugom bitu itd. (za sve karaktere) u bloku • Prvi bit u BCC broj jedinica u prvim bitovima svih karaktera • Drugi bit u BCC broj jedinica u drugom bitu svih karaktera • Mogućnost provere ovom metodom • 98% detektovanih grešaka u okvirima ( > 10 bits) • Mogućnost detekcije pojedinačno pogrešnih bita
Korišćenje LRC za detekciju greške Primer: Slanje poruke “DATA” korišćenjem ODD parity i LRC Letter D A T A ASCII 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 1 BCC 0010001
Korišćenje LRC za korekciju greške Dvodimenzonalna šema parnosti omogućava detekciju i korekciju pojedinačno pogrešnih bita u bloku
Polinomijalna provera Polynomial Checking • Dodaje se 1 ili više karaktera na kraj poruke (zasniva se na matematičkom algoritmu) • Dva tipa: Kontrolna suma (Checksum) i CRC • Checksum • Sračunava se sabiranjem decimalnih vrednosti svakog karaktera u poruci, • ukupna vrednost se deli sa 255, • ostatak deljenja (1 bajt) je kontrolna suma • Efikasnost je 95% • Najčešće se implementira za Transpotni sloj
Cyclic Redundancy Check (CRC) Primer: P = 58 G = 8 Q = 7 R = 2 P / G = Q + R / G Poruka (posmatra se kao jedan dugački binarni broj) Rezultat deljenja(ceo broj) • Ostatak: • Dodatak uz poruku • Može da budedužine: 8,16,24 ili 32 bita Poznat broj (određuje dužinu R) • Najjači i najviše upotrebljavan u sloju veze podataka • Detektuje se 100% grešaka (ako je broj grešaka <= veličine R) • Inače: CRC-16 (99.998%) i CRC-32 (99.9999%)
Kontrola grešaka • Pouzdanost isporuke – obezbeđuje se ako ima potvrde (ACK ili NACK) • Problem: kada se okvir potpuno izgubi, Rx strana ne šalje ni ACK ni NACK • Neophodan je tajmer • Moguće je i da se isti okvir pošalje dva puta • Neophodan je redni broj okvira T1 - slanje T2 - obrada T3 - prijem
Korekcija greške - Error Correction • Tehnike za korekciju greške • Retransmisija (tip tehnike:Backward Error Correction) • Jednostavno, efikasno, jeftino, najčešće u upotrebi • Korekcija retransmisijom podataka • Prijemnik, kada detektuje grešku, traži od predajnika da ponovo pošalje poruku • Čest naziv:Automatic Repeat Request (ARQ) • Forward Error Correction – korekcija greške unapred • Prijemnik na osnovu primljenih podataka može sam da ispravi grešku
Forward Error Correction (FEC) • Prijemnik može da koriguje greške na osnovu primljene poruke (bez retransmisije) • Dodatni biti se računaju na osnovu poruke • Ekstra informacija je oko 50-100% dužine korisne informacije • Pogodno za satelitske komunikacije • Prenos u jednom smeru (retransmisije nisu efikasne) • Vreme prenosa je veoma dugo (retransmisijebi samo povećavale ovo vreme) • Beznačajna cena FEC-a (u odnosu na ukupnu cenu sistema)
Dva osnovna pristupa: Point-to-point (PPP) PPP za dial-up pristup point-to-point veza između Ethernet switch-ai računara Broadcast– difuzna veza (deljeni medijum) stari Ethernet satelitska komunikacija 802.11 wireless LAN Kontrola pristupamedijumu humans at a cocktail party (shared air, acoustical) shared wire (e.g., cabled Ethernet) shared RF (e.g., 802.11 WiFi) shared RF (satellite) 5: DataLink Layer 5-46
MAC – Media Access Control • Podela mreža: • Veze od tačke do tačke • Kanali za neusmereno difuzno emitovanje • Ekvivalentni nazivi • Kanali za višekorisnički pristup (multiaccess channels) • Kanali za slučajan pristup (random access channels) • Upravljanje pristupom medijumima – protokol kojim se određuje sledeći korisnik kanala • Donji podsloj sloja veze podataka
Problem dodeljivanja kanala • Statičke šeme dodeljivanja kanala • FDM – multipleksiranje podelom frekvencija • Neiskorišćenost ako je broj korisnika manji od broja kanala • Problemi ako je broj korisnika veći od broja kanala • U računarskim sistemima saobraćaj je neredovan • TDM – multipleksiranje podelom vremena • Nisu pogodne za računarsku primenu gde se saobraćaj odvija u grupama (rafalima) – povremeno i sa velikim protokom
Problem dodeljivanja kanala • Osnovne pretpostavke • Posmatraju se nezavisni terminali koji generišu okvire za slanje • Svi terminali su povezani jedinstvenim kanalom • Istovremeno emitovanje dovodi do kolizije podataka (collision) • Ne postoji centralni časovnik za određivanje vremena slanja • Terminali mogu da osluškuju ili da ne osluškuju saobraćaj na kanalu
ALOHA – protokol za višekorisnički pristup • Prva primena: Radiodifuzno emitovanje • Nezavisni korisnici se nadmeću za korišćenje jedinstvenog zajedničkog kanala • Čista ALOHA • ne zahteva sinhronizaciju globalnog vremena • Vremenski raspodeljena ALOHA • Vreme je izdeljeno na intervale konačne dužine u koje se moraju uklopiti svi okviri