Upload
ciobanu-bogdan
View
228
Download
0
Embed Size (px)
Citation preview
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 1/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 1
Nivelul legătură de date
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 2/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 2
Funcţiile nivelului legăturii de date
• Încadrarea.
• Transmisia transparentă.• Controlul erorilor.• Controlul fluxului.• Gestiunea legăturii.
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 3/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 3
Încadrarea
• Adăugarea de informaţie de control pentru a încadra datele:
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 4/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 4
Metode de încadrare
• Caractere de control (BSC – Binary Synchronous Communication) – Exemplu:
SYN SYN SOH header STX text ETX CRC
SOH - start of heading STX - start of textETX - end of text ETB - end of transmission blockEOT - end of transmission ENQ - enquiry
ACK - acknowledge NAK - not acknowledgeSYN - synchronous idle DLE - data link escapeCRC - cyclic redundancy check
• Numărarea caracterelor (DDCMP – Digital Data CommunicationsMessage Protocol) – Exemplu (CRC Cyclical Redundancy Check):SYN SYN SOH count flag resp seq address CRC data CRC
• Indicatori de încadrare (HDLC – High Level Data Link Control) – Exemplu (FCS = Frame Check Sequence):
flag address command data FCS flag
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 5/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 5
Transmisia transparentă (1)
• În zona de date pot apărea secvenţe de control: – Text alfanumeric (Ok): STX Text ETX – Text binar (Nok, apare un fals ETX): STX Text…ETX…Text ETX
• Rezolvare prin umplere cu caractere: – Se prefixează la emisie caracterele de control cu caracterul DLE. – Se definesc combinaţiile permise:
• DLE STX pentru început text transparent.• DLE ETX pentru sfârşit text transparent.
– Dublează DLE la emisie şi elimină la recepţie. – Exemplu:DLE STX Text...ETX...Text...DLE DLE...DLE ETX CRC
– Se consideră eroare recepţia caracterului DLE urmat de altcevadecât STX, ETX, DLE.
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 6/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 6
Transmisia transparentă (2)
• Datele de trimis conţin un flag fals de terminare cadru:01111110 011011111101111111111010 01111110Flag Flag fals Flag
• Rezolvare prin umplere cu biţi: – Emisie: inserare bit 0 după 5 biţi consecutivi 1 în interiorul cadrului,
indiferent ce urmează după cei 5 biţi 1.
– Recepţie: eliminare bit 0 care urmează după 5 biţi consecutivi 1. – Exemplu:01111110 ... 0111110 {0 sau 1} ... 01111110
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 7/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 7
Alte funcţii
• Controlul erorilor :
– Secvenţa (suma) de control a cadrului (FCS). – Mesaje de confirmare. – Ceasuri. – Numere de secvenţă.
• Controlul fluxului: – Utilizarea mesajelor de permisiune pentru transmiţător.
• Gestiunea legăturii: – Stabilirea şi desfiinţarea legăturii. – Re-iniţializare după erori. – Configurarea legăturii (staţii primare şi secundare, legături
multipunct, etc.).
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 8/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 8
Detecţia şi corecţia erorilor
• Coduri corectoare de erori
– Fie A = {0, 1} alfabet binar – Fie Wn mulţimea cuvintelor w de lungime n peste A
w[0] w[1] ... w[n-1] , cu w[i] A. – Ponderea Hamming a lui w – Distanţa Hamming‚ d(u,v) dintre u şi v
– Wn = Sn U Fn – Pentru u, v Sn şi r erori:
d(u,v) >= r+1 detecţie d(u,v) >= 2r+1 corecţie
– Exemplu:
Fie S10 = {0000000000, 0000011111, 1111100000, 111111111}
D(u,v) = 5 => putem corecta erori duble0000000111 Se corectează la 00000111110000000111 Poate proveni din 0000000000
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 9/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 9
Metoda Hamming
• Biţi numerotaţi de la 1 (stânga) la n (dreapta) .• Codificare:
– Biţii 1, 2, 4, 8, ... (puteri ale lui 2) sunt de control. – Control paritate (pară sau impară). – Bitul k este controlat de biţii ale căror poziţii însumate dau k; reciproc:
• Bitul 1 controlează biţii 1, 3, 5, 7, 9, 11.
• Bitul 2 controlează biţii 2, 3, 6, 7, 10, 11.• Bitul 4 controlează biţii 4, 5, 6, 7.• Bitul 8 controlează biţii 8, 9, 10, 11.
• Exemplu ‘W’, 0x57, cu paritate pară:
1 2 3 4 5 6 7 8 9 10 111110101 => 0 1 1 0 1 1 0 0 1 0 1Se primeşte eronat 0 1 1 0 1 1 0 0 1 1 1
Biţii de control eronaţi sunt 2, 88 + 2 = 10
=> bitul din poziţia 10 a fost inversat.
Pentru paritate pară:
dacă există număr par de biți 1 între biții 3, 5, 7, 9 și 11, atuncibitul 1 va fi 0.
dacă există număr impar de biți 1 între biții 3, 5, 7, 9 și 11, atuncibitul 1 va fi 1.
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 10/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 10
Coduri corectoare de erori
• Codul Hamming corectează erorile de 1 bit!
• Utilizarea unui cod Hamming pentru corecţia erorilor î n rafală: – Matricea de biţ i este transmisă coloană cu coloană. – Poate corecta erori în rafală dintr-o coloană.
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 11/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 11
Coduri detectoare de erori (1)
• Coduri polinomiale:
– k biţi de informaţie (date), i(X) polinomul corespunzător . – n-k biţi de control, r(X). – n biţi în total, w(X) = Xn-k.i(X) + r(X).
• r(X) se alege astfel ca w(X) să fie multiplu de g(X): w(X) = g(X).q(X) Xn-k.i(X) + r(X) = g(X).q(X) Xn-k.i(X) = g(X).q(X) + r(X)
r(X) = rest împărţire Xn-k
.i(X) la g(X)
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 12/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 12
Coduri detectoare de erori (2)
• Calculul sumei de control
pentru un cod polinomial: – 10 biţ i informaţ ie. – 4 biţ i control.
• Împarte 11010110110000 la 10011.
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 13/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 13
Ce erori pot fi detectate?
• Probabilitatea de detecţ ie depinde de lungimea codului de
control.• CRC – sume de control pe: – 8 biţi detectează 99.6094% din erori. – 16 biţi detectează 99.9985% din erori. – 32 biţi detectează 99.9999% din erori.
• În plus, CRC detectează 100% erori de – 1 bit. – 2 biţ i. – Un număr impar de biţ i. – Erori în rafală de lungimea codului CRC.
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 14/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 14
Protocoale elementare pentru legătura de date
• Protocoale start-stop:
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 15/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 15
Protocoale elementare pentru legătura de date
• Protocoale cu ferestre glisante:
U i it t P lit h i B ti F lt t d A t ti ă i C l l t
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 16/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 16
Protocol start-stop
Staţia 1
Staţia
2
PDU1
Ack1
PDU2
Timp
U i it t P lit h i B ti F lt t d A t ti ă i C l l t
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 17/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 17
Protocol start-stop
Staţia 1
Staţia
2
Timp
PDU1
PDU1 Ack1
Ack1 PDU2
PDU2
U i it t P lit h i B ti F lt t d A t ti ă i C l l t
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 18/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 18
Timeout
Protocol cu fereastră glisantă şi retrimitereneselectivă
Staţia 1
Staţia
2
Timp
PDU1 PDU2 PDU3
Err 3
PDU4 PDU5 PDU6
Ack1 Ack2 Del4 Del5
PDU3
Del6
PDU4
Ack3
PDU5
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 19/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 19
Timeout
Protocol cu fereastră glisantă şi retrimitereneselectivă
Staţia 1
Staţia
2
Timp
PDU1 PDU2 PDU3
Err 3
PDU4 PDU5 PDU6
Ack1 Ack2 Del4 Del5
PDU3
Del6
PDU4
Ack3
PDU5
Cadre recepţionatecorect, însă trimise
inutil pentru căprotocolul le ignoră
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 20/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Buf 4 Buf 5
Protocoale de comunicaţie – Curs 2 20
Protocol cu fereastră glisantă şi retrimitereselectivă
Staţia 1
Staţia
2
Timp
PDU1 PDU2 PDU3
Err 3
PDU6
Ack1 Ack2
PDU3
Buf 6
PDU7
Ack6
PDU4 PDU5
Nak3 Ack2 Ack2
PDU8
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 21/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 21
Protocol cu fereastră glisantă şi retrimitereselectivă
Staţia 1
Staţia
2
Timp
PDU1 PDU2 PDU3
Err 3
PDU6
Ack1 Ack2
PDU3
Buf 6
PDU7
Ack6
PDU4 PDU5
Buf 4 Buf 5
PDU8
Cadre recepţionatecorect, memorate deprotocol până devin
utile
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 22/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 22
Protocoalele legăturii de date
• Configuraţia entităţilor de protocol:
Utilizator A Utilizator B
Entitate A Entitate B
Nivelul reţea
Nivelul legăturăde date
Nivelul fizic
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 23/53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 23
Datele
• Datele:
typedef struct {void far* adresa; word lungime;} pachet;
enum FelCadru {data, ack, nak};typedef unsigned char byte;typedef unsigned int word;typedef byte NrSecv;
typedef struct {FelCadru fel; NrSecv secv, conf; pachet info;
} cadru;
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 24/53
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 24
Primitivele de serviciu
• Primitive de serviciu:
– preluarea unui pachet de la retea pentru transmitere pe canal pachet DeLaRetea();
– livrarea cãtre retea a unui pachetvoid LaRetea (pachet); – trecerea unui cadru nivelului fizic pentru transmisie
void LaFizic (cadru); – preluarea unui cadru de la nivelul fiziccadru DeLaFizic();
• Altele: – Lista evenimente:enum TipEven{SosireCadru,EroareControl,TimeOut,ReteaPregatita};
– Aşteptare producere eveniment: TipEven wait();
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 25/53
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 25
Protocoale start-stop
• Protocol simplex fără restricţii (caz ideal):
– utilizatorul A vrea să transmită date utilizatorului B folosind olegătură sigură, simplex. – A reprezintă o sursă inepuizabilă de date. – B reprezintă un consumator ideal. – canalul fizic de comunicaţie este fără erori.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 26/53
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare
Protocoale de comunicaţie – Curs 2 26
Protocol simplex fără restricţii
# define forever while(1) // entitatea din sistemul transmitatoruluivoid transmit1()
{cadru s;do{s.info=DeLaRetea(); //preia pachetLaFizic(s); //transmite cadru
}forever;}
// entitatea din sistemul receptoruluivoid recept1()
{cadru r;
TipEven even;do{even=wait(); //aşteaptă cadru r=DeLaFizic(); //primeşte cadruLaRetea(r.info); //predă pachet
}forever;
}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 27/53
ş ş
Protocoale de comunicaţie – Curs 2 27
Protocol simplex start-stop (1)
• Canalul este fără erori.
• Utilizatorul B nu poate accepta date în orice ritm.
Utilizator A Utilizator B
Entitate A(emiţător)
Entitate B(receptor)
Nivelul reţea
Nivelul legăturăde date
Nivelul fizicDate
Confirmări(reacţie)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 28/53
ş ş
Protocoale de comunicaţie – Curs 2 28
Protocol simplex start-stop (2)
void transmit2(){cadru s;TipEven even;do{s.info=DeLaRetea();LaFizic(s);even=wait(); //aşteaptă confirmarea} forever;
}
void recept2(){cadru s,r;TipEven even;do{even=wait(); //poate fi doar SosireCadru
r=DeLaFizic();LaRetea(r.info);LaFizic(s); //transmite confirmarea} forever;
}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 29/53
ş ş
Protocoale de comunicaţie – Curs 2 29
Protocol simplex pentru un canal cu erori (1)
• Canalul este cu erori (ca în situațiile din practică).
• Primitive pentru controlul ceasului: – void StartCeas(NrSecv); – void StopCeas (NrSecv);
• Justificare numere de secvenţă: – cadrele succesive m, m+1, m+2 cu numerele de secvenţă respectiv
0, 1 şi 0 (protocol cu bit alternat).• Alte primitive:
– void inc (NrSecv&); – #define MaxSecv 1 – void inc(NrSecv& k) {k==MaxSecv ? k=0 : k++;}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 30/53
Protocoale de comunicaţie – Curs 2 30
Protocol simplex pentru un canal cu erori (2)
void transmit3(){ NrSecv CadruUrmator=0;cadru s;TipEven even;
s.info=DeLaRetea();
do{s.secv=CadruUrmator;LaFizic(s);StartCeas(s.secv);even=wait(); // poate fi SosireCadru ,
// TimeOut sau EroareControl
if(even==SosireCadru){ // confirmare intactaStopCeas(s.secv);
s.info=DeLaRetea();inc(CadruUrmator);}
}forever;}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 31/53
Protocoale de comunicaţie – Curs 2 31
Protocol simplex pentru un canal cu erori (3)
void recept3(){ NrSecv CadruAsteptat=0;cadru r,s;TipEven even;
do{even=wait(); //SosireCadru sau EroareControl
if(even==SosireCadru){r=DeLaFizic();if(r.secv==CadruAsteptat){LaRetea(r.info); //cadru în secventainc(CadruAsteptat);}
LaFizic(s); //transmite oricum confirmarea}
}forever;}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 32/53
Protocoale de comunicaţie – Curs 2 32
Protocoale cu fereastră glisantă (1)
• Protocol cu fereastră de dimensiune unu.
• Configuraţia:
Utilizator A Utilizator B
Entitate A(emiţător şi receptor)
Entitate B(emiţător şi receptor)
Nivelul reţea
Nivelul legăturăde date
Nivelul fizicdate şi confirmări
date şi confirmări
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 33/53
Protocoale de comunicaţie – Curs 2 33
Protocoale cu fereastră glisantă (2)
• O fereastră de dimensiune 1, cu număr de secvenţă de 3 biţi:
– (a) Iniţial. – (b) După transmiterea primului cadru. – (c) După recepţia primului cadru. – (d) După recepţia primei confirmări.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 34/53
Protocoale de comunicaţie – Curs 2 34
Protocoale cu fereastră glisantă (3)
• Fiecare staţie realizează ciclic următoarele operaţii:
– Recepţia unui cadru. – Prelucrarea şirului de cadre recepţionate. – Prelucrarea şirului de cadre transmise. – Transmiterea sau retransmiterea unui cadru împreună cu
confirmarea cadrului recepţionat corect.
void protocol4(){ NrSecv CadruUrmator=0; NrSecv CadruAsteptat=0;cadru r,s;
TipEven even; //SosireCadru
,TimeOut
,EroareControl
s.info=DeLaRetea();s.secv=CadruUrmator;s.conf=1-CadruAsteptat;LaFizic(s);StartCeas(s.secv);
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 35/53
Protocoale de comunicaţie – Curs 2 35
Protocoale cu fereastră glisantă (4)
do{
even=wait();if(even==SosireCadru){r=DeLaFizic();
if(r.secv==CadruAsteptat){ // prel. cadre receptionateLaRetea(r.info);inc(CadruAsteptat);
}if(r.conf==CadruUrmator){ // prel. cadre transmisieStopCeas(r.conf);s.info=DeLaRetea();inc(CadruUrmator);}
}
s.secv=CadruUrmator;s.conf=1-CadruAsteptat;LaFizic(s);StartCeas(s.secv);
}forever;}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 36/53
Protocoale de comunicaţie – Curs 2 36
Un protocol cu fereastră de un bit
• Două scenarii pentru protocolul 4:
– (a) Cazul normal. – (b) Caz anormal.
• Notaţia este (seq, ack, packet number).• Un asterisk (*) arată că nivelul reţea acceptă pachetul.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 37/53
Protocoale de comunicaţie – Curs 2 37
Un protocol “Go Back N”
• Banda de asamblare şi refacerea erorilor.
• Efectul erorii când: – (a) Fereastra receptorului este 1.
– (b) Fereastra receptorului este mai mare ca 1.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 38/53
Protocoale de comunicaţie – Curs 2 38
Protocoale cu fereastră supraunitară detransmisie (1)
• Protocol cu retransmitere neselectivă.
• Fereastra maximă a transmiţătorului poate fi de MaxSecv cadre.• Scenariu pentru MaxSecv = 7:
– 1. Transmiţătorul trimite cadrele 0..7. – 2. Toate cadrele sunt recepţionate şi confirmate. – 3. Toate confirmările sunt pierdute.
– 4. Transmiţătorul retrimite la time-out toate cadrele. – 5. Receptorul acceptă duplicatele.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 39/53
Protocoale de comunicaţie – Curs 2 39
Protocoale cu fereastră supraunitară detransmisie (2)
#define MaxSecv 7
void ActivRetea();void DezactivRetea();
NrSecv CadruUrmator, // urmatorul cadru de transmisCadruAsteptat, // urmatorul cadru asteptatConfAsteptata; // c.m. vechi cadru neconfirmat
cadru r,s;
pachet tampon[MaxSecv+1]; NrSecv ntampon,i;TipEven even;
short intre(NrSecv a, NrSecv b, NrSecv c){//intoarce 1 daca a<=b<c circular
return a<=b && b<c || c<a && a<=b || b<c && c<a;}
void transmite(NrSecv nrcadru){//construieste si transmite un cadru de dates.info=tampon[nrcadru];s.secv=nrcadru;s.conf=(CadruAsteptat+MaxSecv)%(MaxSecv+1);LaFizic(s);StartCeas(nrcadru);
}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 40/53
Protocoale de comunicaţie – Curs 2 40
Protocoale cu fereastră supraunitară detransmisie (3)
void protocol5(){
ActivRetea();
CadruUrmator=0;CadruAsteptat=0;ConfAsteptata=0;ntampon=0;
do{even=wait();
switch(even){
case ReteaPregatita:
tampon[CadruUrmator]=DeLaRetea();ntampon++;transmite(CadruUrmator);inc(CadruUrmator);
break;
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 41/53
Protocoale de comunicaţie – Curs 2 41
Protocoale cu fereastră supraunitară detransmisie (4)
case SosireCadru:r=DeLaFizic();if(r.secv==CadruAsteptat){
LaRetea(r.info);inc(CadruAsteptat);
} while(intre(ConfAsteptata,r.conf, CadruUrmator)){
ntampon--;StopCeas(ConfAsteptata);inc(ConfAsteptata);
} break;
case EroareControl: break;
case TimeOut:CadruUrmator=ConfAsteptata;for(i=1;i<=ntampon;i++){
transmite(CadruUrmator);
inc(CadruUrmator);}} // switch
if(ntampon<MaxSecv) ActivRetea();else DezactivRetea();
}forever;
}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 42/53
Protocoale de comunicaţie – Curs 2 42
Protocol cu retransmitere selectivă (1)
• Fereastra receptorului nu poate fi egală cu cea a
transmiţătorului: – 1. Transmiţătorul trimite cadrele 0..6. – 2. Cadrele sunt recepţionate şi confirmate. Fereastra receptorului
devine 7, 0, 1, 2, 3, 4, 5. – 3. Toate confirmările sunt pierdute (se strică sincronizarea între
transmiţător şi receptor). – 4. Transmiţătorul retrimite cadrul 0 la time-out. – 5. Receptorul acceptă cadrul 0 aflat în fereastr ă drept cadru nou şi
cere cadrul 7 de dinaintea lui 0 (și care lipsește). – 6. Transmiţătorul interpretează că a trimis corect cadrele 0..6 şi
trimite 7, 0, 1, 2, 3, 4, 5.
– 7. Receptorul acceptă cadrele, cu excepţia lui 0, pentru care aredeja un cadru recepţionat. Ca urmare, ignoră acest cadru, luând înlocul lui duplicatul cadrului 0 anterior.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 43/53
Protocoale de comunicaţie – Curs 2 43
Protocol cu retransmitere selectivă (2) void protocol6(){
initializari_contoare;
do{ even=wait();switch (even)
case ReteaPregatita:accepta_salveaza_si_transmite_un_cadru; break;
case SosireCadru:r=DeLaFizic();if (r.fel == data){
transm_nak_daca_r_dif_de_cadru_asteptat;accepta_cadru_daca_in_fereastra_receptie;livreaza_pachetele_sosite;actualizeaza_fereastra_receptie;
}if (r.fel == nak) retransmite_cadru_cerut;trateaza_confirmare_cadre_eliberind_buffere;
break;
case EroareControl: transmite_nak; break;
case TimeOut: retransmite_cadrul_corespunzator; break;
case ReteaLibera: transmite_confirmare_ack;}activeaza_sau_dezactiveaza_nivel_retea;
}forever;}
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 44/53
Protocoale de comunicaţie – Curs 2 44
Exemple de protocoale
• HDLC – High-Level Data Link Control.
• Folosite pentru legătura de date în Internet: – SLIP. – PPP.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 45/53
Protocoale de comunicaţie – Curs 2 45
HDLC procedura LAPB
• HDLC este o familie de protocoale.
• Tipuri de staţii – Primară, generează comenzi. – Secundară, generează răspunsuri. – Combinată, generează atât comenzi cât şi răspunsuri.
• Tipuri de legatură:
– Echilibr ată, cu două staţii combinate. – Neechilibrată, o staţie primară, una sau mai multe secundare.
• Moduri de transfer: – NRM, Normal Response Mode (legatură neechilibrată). – ABM, Asynchronous Balanced Mode.
– ARM, Asynchronous Response Mode.• Procedura LAPB (Link Access Protocol Balanced) corespunde
une legături echilibrate cu staţii combinate.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 46/53
Protocoale de comunicaţie – Curs 2 46
High-Level Data Link Control
• Format cadru:
• Câmp de control pentru: – (a) Cadru de informaţie. – (b) Cadru supervizor. – (c) Cadru nenumerotat.
• Semnificaţie: – Seq: număr de secvenţă cadru transmis (mod 8 sau 128). – Next: număr de secvenţă pentru urmatorul cadru aşteptat. – P/F (poll/final): invitaţ ie la transmisie sau sfâr şit de transmisie.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 47/53
Protocoale de comunicaţie – Curs 2 47
Comenzi şi răspunsuri
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 48/53
Protocoale de comunicaţie – Curs 2 48
Legătura de date în Internet
• Un calculator casnic acţionând drept gazdă Internet:
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 49/53
Protocoale de comunicaţie – Curs 2 49
SLIP – Serial Line Internet Protocol
• Nu este standard Internet.
• Protocol de încadrare a pachetelor.• Folosit pentru conexiuni seriale punct la punct peste care
rulează TCP/IP între gazde şi rutere.• Reguli de protocol:
– defineşte două caractere speciale: END (0300) şi ESC (0333).
– o gazdă SLIP trimite date în pachet. – END în pachet (zona date) e înlocuit cu ESC şi ESC_END (0334). – ESC în packet (zona date) e înlocuit cu ESC şi ESC_ESC (0335). – după ultimul octet din pachet se transmite END.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 50/53
Protocoale de comunicaţie – Curs 2 50
PPP – Point to Point Protocol (1)
• Oferă:
– Încadrare. – Link Control Protocol, LCP. – Network Control Protocol, NCP.
• Format de cadru PPP pentru modul nenumerotat: – Adresa 11111111, toate staţiile acceptă cadrul.
– Control 00000011, nenumerotat. – Protocol, selectează dintre:
• LCP, NCP.• IP, IPX, OSI CLNP, XNS.
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 51/53
Protocoale de comunicaţie – Curs 2 51
PPP – Point to Point Protocol (2)
• Diagrama simplificată pentru activare/dezactivare linie: Configure-request Code-reject
Configure-ack Protocol-rejectConfigure-nakConfigure-reject
Terminate-requestTerminate-ack
protocolul de retea esteconfigurat folosind NCP(de exemplu pentru IP seface alocare adresa IP)
PPP transporta pachete(de exemplu IP)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 52/53
• Tipuri de cadre LCP (I Initiator, R Responder):
Protocoale de comunicaţie – Curs 2 52
PPP – Point to Point Protocol (3)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
7/22/2019 03 Nivel Legatura Date
http://slidepdf.com/reader/full/03-nivel-legatura-date 53/53
Sumar
• Funcţiile legăturii de date>
– Încadrare. – Transmisie transparentă. – Control erori. – Control flux. – Gestiune legături.
• Mecanisme folosite (numere de secvenţă, confirmări, ceasuri,sume de control).• Coduri detectoare / corectoare de erori (CRC / Hamming).• Protocoale elementare (date, funcţii, entităţi).• Protocoale start-stop şi cu fereastră glisantă.
• Exemple de protocoale – HDLC (High-Level Data Link Control). – Folosite în Internet:
• SLIP (Serial Line Internet Protocol).• PPP (Point to Point Protocol).