FUNKCIJE NIVOA VEZE IV POGLAVLJE
FUNKCIJA NIVOA VEZE Na nivou veze, u saglasnosti sa OSI modelom, potrebno je obaviti veći broj specifičnih funkcija koje se odnose na: ostvarivanju servisa za potrebe mrežnog nivoa, odredjivanju načina grupisanja bitova fizičkog nivoa u okvire, manipulisanju sa greškama u prenosu, regulisanju toka prenosa okvira tako da se i spori prijemnici ne "prenatrpaju" porukama od strane brzih predajnika
Position of the data-link layer
Data link layer duties
SERVISI NA MREŽNOM NIVOU Nivo veze treba da obezbedi usluge mrežnom nivou. Osnovna usluga (servis) odnosi se na prenos podataka sa mrežnog nivoa izvorne mašine ka mrežnom nivou odredišne mašine. Kod izvorišne mašine na mrežnom nivou egzistira jedan proces (zadatak) koji predaje odredjeni broj bitova nivou veze radi njihovog prenosa ka odredištu.
VIRTUELNA I STVARNA KOMUNIKACIJA Virtuelna komunikacija
STANDARDNE USLUGE Nivo veze može biti projektovan da pruži različite usluge, najstandardnije su : nepotvrdjivanje okvira potvrdjivanje okvira potvrdjivanje brojivih poruka
-nepotvrdjivanje okvira- STANDARDNE USLUGE -nepotvrdjivanje okvira- Izvorna mašina predaje nezavisne okvire odredišnoj pri čemu ih odredišna ne potvrdjuje. Na početku i na kraju prenosa ne uspostavlja se i raskida veza, respektivno. Ako se signal izgubi zbog šuma na liniji ne zahteva se novi pokušaj za slanje. Ovaj tip prenosa koristi se kod pouzdanih komunikacija.
-potvrdjivanje okvira- STANDARDNE USLUGE -potvrdjivanje okvira- Svaki okvir se predaje i potvrdjuje individualno. Predajnik zna da li je okvir korektno ili ne stigao do prijemnika. Ako za specificirani vremenski period okvir nije stigao do prijemnika on se šalje ponovo. Ovaj tip usluga pogodan je za korišćenje kod nepouzdanih veza kakve standardno srećemo kod bežičnog prenosa.
-potvrdjivanje brojivih poruka- STANDARDNE USLUGE -potvrdjivanje brojivih poruka- Izvorišna i odredišna mašina pre početka prenosa uspostavljaju vezu. U toku prenosa, svaki predati okvir se numeriše. Usluga na nivou veze garantuje da će se svaki okvir korektno primiti i da će okviri biti primljeni u ispravnom redosledu.
FORMIRANJE OKVIRA Podaci koji se predaju šalju se u obliku okvira. Okvir čini deo poruke. Jedan od standardnih pristupa za detekciju grešaka koji se koristi na nivou veze zasniva se na podeli niza podataka na diskretne okvire i izračunavanju suma-provere (checksum) za svaki okvir. Kada okvir pristigne, na prijemnoj strani suma provere izračunava se ponovo. Kada je novodobijena suma provere različita od one koja je sastavni deo okvira, nivo-veze zna da se javila greška i preuzima odgovarajuće akcije (obično se zahteva od predajnika ponovo da pošalje loše primljeni okvir).
DEOBA NIZA BITOVA NA OKVIRE Deoba niza bitova može se ostvariti koristeći jednu od sledećih metoda: brojanje znakova karakteri početak i kraj prenosa, sa umetanjem karaktera umetanje bita
DEOBA NIZA BITOVA NA OKVIRE -BROJANJE ZNAKOVA- Odredjenim poljem u okviru zaglavlja specificira se broj karaktera u okviru Primer: Kada nivo-veze na odredišnom kraju izdvoji iz zaglavlja broj-karaktera, on zna koliko karaktera slede Problem kod ovog algoritma se javlja ako dodje do greške u prijemu broj-karaktera Prijemnik će izaći iz sinhronizacije i neće biti u stanju da locira početak novog okvira.
DEOBA NIZA BITOVA NA OKVIRE -karakteri početak i kraj prenosa, sa umetanjem karaktera - Početak prenosa svakog okvira karakteriše ASCII karakter sekvenca STX DLE, a kraj sekvenca DLE ETX DLE je Data Link Escape, STX je Start of Text, a ETX je End of Text. Ako odredište izgubi trag o granicama okvira ono analizira niz STX DLE ili DLE ETX da bi se ustanovilo u kom je stanju. Ozbiljan problem kod ovog metoda se javlja kod prenosa binarnih podataka kakvi su objektni programi ili FP brojevi. Naime, može da se dogodi da se par karaktera STX DLE ili DLE ETX javi u okviru podataka što ima za efekat narušavanje granica okvira. Postoji više načina da se uspešno reši ovaj problem. Jedan od njih je sledeći: Predajnik na nivo veze (link layer) pre svakog ASCII DLE karaktera umeće (ubacuje) u nizu karaktera po još jedan DLE karakter. Ova tehnika se naziva umetanje-karaktera (character stuffing).
DEOBA NIZA BITOVA NA OKVIRE -karakteri početak i kraj prenosa, sa umetanjem karaktera - Primer: (a) podaci koji se predaju od nivoa-veze; (b) podaci nakon umetanja; (c) podaci nakon restauriranja
Example of byte stuffing data link escape (DLE) characters
DEOBA NIZA BITOVA NA OKVIRE -umetanje bita - Okvir podataka može da sadrži proizvoljan broj bitova Svaki okvir počinje i završava specijalnim bit oblikom 0111110 koji se naziva flag-bajt. Kada predajnik na nivou-veze u informacionom delu naidje na pet uzastopnih jedinica on ubaci 0 u izlaznom nizu bitova. Kada prijemnik naidje na pet uzastopne jedinice, iza čega sledi 0 bit, on automatski izbacuje umetnuti 0 bit. Ova tehnika se naziva bit stuffing
DEOBA NIZA BITOVA NA OKVIRE -umetanje bita - Primer: početni podaci; podaci na liniji; podaci nakon obnavljanja
Bit stuffing Note: Bit stuffing is the process of adding one extra 0 whenever there are five consecutive 1s in the data so that the receiver does not mistake the data for a flag.
Bit stuffing and removal-in HDLC
Bit stuffing algorithm-in HDLC
KONTROLA GREŠKE Svaki okvir karakteriše markirani početak i kraj Pitanje: Kako je predajnik siguran da su svi okviri koji su predati mrežnom nivou na odredišnoj strani stigli i prihvaćeni u korektnom redosledu ? Problem se rešava na sledeći način: Protokolom je odredjeno da prijemnik pošalje predajniku pozitivnu ili negativnu potvrdu o pristiglim okvirima. Ako predajnik primi pozitivnu potvrdu o okviru on zna da je okvir primljen korektno, u suprotnom sledi negativna potvrda. Za slučaj da je potvrda negativna, predajnik ponovo šalje isti okvir prijemniku. Predajnik na početku predaje okvira aktivira svoj interni tajmer. U slučaju da se prijemnik nije odazvao za specificirani vremenski period, sa pozitivnom ili negativnom potvrdom, to znači da okvir nije stigao do prijemnika, pa predajnik ponovo šalje istu.
UPRAVLJANJE TOKOM PRENOSA Drugi važni projektanski zahtev koga treba imati u vidu je sledeći: Šta se dešava ako predajnik želi sistematski da predaje podatke brzinom koja je veća od one sa kojom prijemnik može da ih prihvati ? Standardno ovaj problem se rešava na sledeći način: Na nivou protokola su definisana pravila koja odredjuju kada predajnik može da preda novi okvir. Pravila definišu da se predajniku zabrani nova predaja sve dok prijemnik ne garantuje da je spreman da primi novi okvir.
Error Detection and Correction Note: Data can be corrupted during transmission. For reliable communication, errors must be detected and corrected.
Types of Error Single-Bit Error Burst Error
In a single-bit error, only one bit in the data unit has changed. Note: In a single-bit error, only one bit in the data unit has changed.
A burst error means that 2 or more bits in the data unit have changed. Note: A burst error means that 2 or more bits in the data unit have changed.
Detection Redundancy Parity Check Cyclic Redundancy Check (CRC) Checksum
Redundancy Note: Error detection uses the concept of redundancy, which means adding extra bits for detecting errors at the destination.
Detection methods
Even-parity concept Note: In parity check, a parity bit is added to every data unit so that the total number of 1s is even (or odd for odd-parity). Note:
Possibility of parity checking Note: Simple parity check can detect all single-bit errors. It can detect burst errors only if the total number of errors in each data unit is odd.
Two-dimensional parity
Property of two-dimensional parity check Note: In two-dimensional parity check, a block of bits is divided into rows and a redundant row of bits is added to the whole block.
CRC generator and checker
Binary division in a CRC generator
Binary division in a CRC checker
A polynomial Standard polynomials polynomial representing a divisor Name Polynomial Application CRC-8 x8 + x2 + x + 1 ATM header CRC-10 x10 + x9 + x5 + x4 + x 2 + 1 ATM AAL ITU-16 x16 + x12 + x5 + 1 HDLC ITU-32 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 LANs
Checksum
Data unit and checksum
Sender’s and receiver’s steps The sender follows these steps: The unit is divided into k sections, each of n bits. All sections are added using one’s complement to get the sum. The sum is complemented and becomes the checksum. The checksum is sent with the data. The receiver follows these steps: The unit is divided into k sections, each of n bits. All sections are added using one’s complement to get the sum. The sum is complemented. If the result is zero, the data are accepted: otherwise, rejected.
Correction can be achieved by: Retransmission Forward Error Correction Burst Error Correction
Data and redundancy bits Number of redundancy bits r Number of data bits m Number of redundancy bits r Total bits m + r 1 2 3 5 6 4 7 9 10 11
Positions of redundancy bits in Hamming code
Example of redundancy bit calculation
Error detection using Hamming code
Burst error correction example
Data Link Control and Protocols Note: Flow Control Flow control refers to a set of procedures used to restrict the amount of data that the sender can send before waiting for acknowledgment. Error Control Note: Error control in the data link layer is based on automatic repeat request, which is the retransmission of data.
Stop-and-Wait ARQ Operation Bidirectional Transmission
Normal operation
Stop-and-Wait ARQ, lost frame
Stop-and-Wait ARQ, lost ACK frame
Numbering frames Note: In Stop-and-Wait ARQ, numbering frames prevents the retaining of duplicate frames.
Stop-and-Wait ARQ, delayed ACK
Delayed acknowledgement Note: Numbered acknowledgments are needed if an acknowledgment is delayed and the next frame is lost.
Piggybacking
Go-Back-N ARQ Sequence Number Sender and Receiver Sliding Window Control Variables and Timers Acknowledgment Resending Frames Operation
Sender sliding window
Receiver sliding window
Control variables
Go-Back-N ARQ, normal operation
Go-Back-N ARQ, lost frame
Go-Back-N ARQ: sender window size
The size of the sender window Note: In Go-Back-N ARQ, the size of the sender window must be less than 2m; the size of the receiver window is always 1.
Selective-Repeat ARQ Sender and Receiver Windows Operation Sender Window Size Bidirectional Transmission Pipelining
Selective Repeat ARQ, sender and receiver windows
Selective Repeat ARQ, lost frame
The size of the sender and receiver window Note: In Selective Repeat ARQ, the size of the sender and receiver window must be at most one-half of 2m.
HDLC PROTOKOL HDLC je skraćenica od High-level Data Link Control Da bi zadovoljio potrebe različitih tipova aplikacija, HDLC definiše: tri tipa stanica dve link konfiguracije tri načina rada kod prenosa podataka
Tipovi stanica Primarna stanica - kontroliše rad veze (link-a). Okviri koji se izdaju od strane primarne stanice nazivaju se komande. Sekundarna stanica - radi pod kontrolom primarne. Okviri inicirani od strane sekundarne stanice nazivaju se odgovori. Primarna stanica održava posebnu logičku vezu (link) sa svakom sekundarnom stanicom na liniji. Kombinovana stanica - kombinuje osobine primarne i sekundarne stanice. Kombinovana stanica može inicirati kako komande tako i odgovore.
Link konfiguracije Nebalansirana konfiguracija - čini je jedna primarna i jedna ili više sekundarnih stanica, a podržava se prenos tipa polu-, i puni-dupleks. Balansirana konfiguracija - čine je dve kombinovane stanice, a podržava se prenos tipa polu-, ili puni-dupleks.
HDLC link cofigurations
Načini rada za prenos podataka NRM (Normal Response Mode) - koristi se kod nebalansirane konfiguracije. Primarna stanica može inicirati prenos podataka ka sekundarnoj, dok sekundarna može samo predavati podatke kao odziv na komande od strane primarne. ABM (Asynchronous Balanced Mode) - koristi se kod balansirane konfiguracije. Jedna od kombinovanih stanica može inicirati prenos bez da se primi dozvolu od strane druge kombinovane stanice. ARM (Asynchronous Response Mode) - koristi se kod nebalansirane konfiguracije. Sekundarna stanica može inicirati prenos bez eksplicitne dozvole primarne. Primarna je i dalje zadužena za održavanje veze, uključujući inicijalizaciju, otkrivanje greške, i logičko raskidanje veze.
NRM and ABM NRM (Normal Response Mode) ABM (Asynchronous Balanced Mode)
Struktura okvira kod HDLC-a HDLC koristi sinhroni prenos. Prenose se okviri. Struktura HDLC okvira : Zaglavlje čine: Flag, adresno i upravljačko polje Informaciono polje promenljive dužine čine ga podaci Rep čine: FCS i Flag polje
Flag polja Predstavljaju granice okvira sa prednje i zadnje strane. Flag ima jedinstveni bit oblik 01111110. Jedan flag se može istovremeno koristiti kao zatvarajući flag za tekući okvir, i kao početni za naredni. Na obe strane linije mrežni-interfejs (HDLC kontroleri) permanentno nadgledaju liniju i "hvataju" se za flag sekvencu kako bi sinhronizovali svoj rad u odnosu na početak okvira. Dok prima okvir, stanica kontinualno prati pojavu sekvence bitova 01111110, sa ciljem da odredi trenutak kada nailazi kraj okvira.
Adresno polje Identifikuje sekundarnu stanicu koja predaje ili prima okvir. Ovo polje se ne koristi kod veze tipa tačka-ka-tački, ali uvek egzistira iz razloga bezbednosti i uniformnosti prenosa. Adresno polje je obično obima 8 bitova, ali se može proširiti na dužinu multipl od po 7 bitova. LS bit svakog okteta može biti 1 ili 0 što zavisi od toga da li je taj oktet zadnji ili ne u adresnom polju. Ostalih sedam bitova svakog okteta formiraju deo adrese. Adresa 1111 1111 se interpretira kao broadcast
Upravljačko polje HDLC definiše tri tipa okvira: informacioni, supervizorski i nenabrojivi. Svaki od pomenutih okvira ima različit format: Informacioni okvir (I-frame) se koristi za prenos podataka korisniku. Supervizorski okvir (S-frame) koristi se za potvrdu prijema I-frame-ova i upravljanje razmenom informacije izmedju stanica koje učestvuju u prenosu. Nenabrojivi okvir (U-frame) obezbedjuje funkcije koje se koriste za upravljanje vezom (link-om).
I frame and S frame control field in HDLC
U-frame control field in HDLC
HDLC frame and frame types
Informaciono polje Postoji samo kod I-frame-ova i kod odredjenih tipova U-frame-ova. Ovo polje može da sadrži bilo kakvu sekvencu bitova, koji mora biti celobrojni umnožak okteta. Dužina informacionog polja, do odredjenog maksimuma, može biti promenljiva.
FCS (Frame Check Sequence) Predstavlja kôd za detekciju grešaka koje se mogu javiti u toku prenosa. Vrednost ovog polja se izračunava na osnovu bitova okvira kada se isključe flag-ovi. Standardno za izračunavanje FCS-a se koristi 16-bitni polinom, definisan od strane CCITT-a. Opciono se može koristiti i 32-bitni FCS polinom koji je sledećeg oblika:
Derivati HDLC-a -LLC Logical Link Control-LLC – karakterišu sledeće osobine: koristi balansni režim rada, aplicira se kod LAN i WAN računarskih mreža, podržava peer-to-peer multi-point link konekciju, servis- nepotvrdjen prijem poruke pri gubitku veze, šalju se nenabrojivi informacioni okviri (UI-frames) potvrda gubitka veze, u sklopu poruke postoje adresno i kontrolno polje (AC-frame) potvrdjeno uspostavljanje veze koristeći I-okvir
Derivati HDLC-a –LAP Link Access Procedure- LAP karakterišu sledeće osobine: koristi asinhroni režim rada kod odziva u nebalansiranoj konfiguraciji podržava rad X.25 mreže, proširena verzija predstavlja LAP-B, kod LAP-B razmenjuju se podaci izmedju DTE i mreža sa javnom komutacijom ili privatnih mreža, veze su tipa tačka-ka-tački (point-to-point), nudi se asinhroni balansirani režim rada
Formati upravljačkih okvira na nivou veze kod različitih tipova protokola
U-frame control command and response Command/response Meaning SNRM Set normal response mode SNRME Set normal response mode (extended) SABM Set asynchronous balanced mode SABME Set asynchronous balanced mode (extended) UP Unnumbered poll UI Unnumbered information UA Unnumbered acknowledgment RD Request disconnect DISC Disconnect DM Disconnect mode RIM Request information mode SIM Set initialization mode RSET Reset XID Exchange ID FRMR Frame reject
Example-1
Example-2
SDLC PROTOKOL Primer: