Protocoale Peer to Peer
Transferul pachetelor între nivelele OSI Aplicaţia A
Date
Aplicaţie
Aplicaţie H
Date
Sesiune Transport
Sesiune Transport
H
Date T
Prezentare H
Date
Reţea
Fizic
H
Date
Prezentare
Date
Aplicaţia B
Date
Date biţi
Reţea
H H
Date Fizic
Comunicarea P2P apare când un nivel al unui sistem comunică cu nivelul corespunzător al altui sistem
Utilizarea serviciilor pe nivelele OSI Protocolul P2P implică interacţiunea a două entităţi prin schimbul de mesaje, numite PDU (Protocol Data Unit). Fiecare PDU conţine un antet (header), care cuprinde protocolul de control al informaţiei şi informaţiile utilizatorului în forma SDU (Service Data Unit). Comportarea entităţilor de pe un nivel oarecare n, este guvernată de un set de reguli sau convenţii, care reprezintă protocolul nivelelui n. Comunicarea între două procese pereche (peer to peer) este virtuală, în sensul că nu există o legătură directă între ele. Pentru ca această comunicare să aibă loc, entităţile de pe nivelul n+1 fac uz de serviciile furnizate pe nivelul n. Transmisia mesajelor PDU la nivelul n+1, (n+1 PDU) se realizează prin trecerea informaţiilor la nivelul n, printr-o poartă soft, numită SAP (Service Access Point). Acest bloc de informaţii constă dintr-un antet , cu informaţii de control şi informaţiile utilizatorului n-SDU. Entitatea n adaugă la rândul ei informaţia de control (H) şi formează pachetul n PDU. Pe baza informaţiei de control, se transmite informaţia utilă prin intermediul entităţii pereche n, la nivelul n+1, entităţii n+1.
Transferul informaţiilor în procesul P2P n+1 PDU
Entitatea n+1
Entitatea n+1
n-SDU
n-SDU
SAP 1
SAP 2
n-SDU
H
Entitatea n
Entitatea n H n-SDU
n-PDU
Serviciul efectuat de un nivel poate fi : orientat pe conexiune sau neorientat pe conexiune. Serviciul orientat pe conexiune are trei faze: •Stabilirea conexiunii între nivele (porţile SAP). Aceasta implică negocierea parametrilor (numărul secvenţelor, variabilele de control ale fluxului, alocările bufferului). •Transferul informaţiilor (n-SDU) folosind protocolul de nivel n. •Întreruperea conexiuni şi eliberarea resurselor implicate în conexiune. Serviciul neorientat pe conexiune nu stabileşte în prealabil nici o conexiune şi fiecare SDU este transmis direct din SAP în SAP. În acest caz informaţia de control care trece de la nivelul n+1 la nivelul n, trebuie să conţină toate adresele de informaţii cerute pentru transferul SDU.
Serviciile furnizate de un anumit nivel pot fi confirmate sau neconfirmate, în funcţie de necesitatea transmiţătorului de a fi sau nu informat de rezultat. De exemplu stabilirea conexiunii poate fi un serviciu confirmat. Un serviciu neorientat pe conexiune poate fi confirmat sau neconfirmat (dacă entitatea de transmisie cere confirmare). Dimensiunea blocurilor de informaţii schimbate între entităţi poate varia între câţiva bytes şi MB sau fluxuri continue de octeţi. Blocurile de informaţii care depăşesc o dimensiune maxim impusă de un anumit nivel (în LAN-urile Ethernet 1500 bytes), se divid în mai multe părţi, înainte de transferul către un nivel inferior. Dacă blocurile de informaţii SDU sunt prea mici şi utilizarea serviciilor nivelului inferior este ineficientă, se procedează la asamblarea acestora, urmând ca la transferarea către nivelul superior să se facă dezasamblarea lor.
Adaptarea dimensiunilor blocurilor SDU Nivelul n
n-SDU
Segmentare n-PDU
n-PDU
n-SDU
Reasamblare
n-PDU
n-PDU
n-PDU
n-PDU
Nivelul n-1
n-SDU
n-SDU
n-SDU
Nivelul n
Asamblare
n-SDU
n-SDU
n-SDU
Dezasamblare
n-PDU
n-PDU
Nivelul n-1
Din punct de vedere al transferului de informaţii, modelele de seviciu pot fi : •CBR (Constant Bit Rate) – fluxuri cu debit constant, de tip voce sau imagine fără compresie Serviciu Bandă necesară[ kbps ] Telefonie
64
Stereo Hi-Fi
1400
Fax (grup 3)
14,4
Fax (grup 4)
64
•VBR (Variable Bit Rate) – fluxuri cu debit variabil, de tip voce sau imagine cu compresie şi transfer de fişiere. VBR Codor
Buffer de netezire
CBR
Control de flux
Transformarea fluxurilor VBR în fluxuri CBR
IP
Protocoalele P2P survin în două cazuri: •La un salt în reţea •De-a lungul unei întregi reţele La un singur salt, nivelul de date ia pachetele din nivelul reţea, (capătul A),le încapsulează în cadre şi le transmite de-a lungul legăturii de date la celălalt capăt (B), unde sunt transmise nivelului reţea.
A
Reţea
Reţea
Pachete
Pachete
Date Fizic
Cadre
Date Fizic
B
A
F
B
Mediu fizic
D F
F
D
D
F
R
D
D F
T R
D
D
F
Sistem terminal 1
D F
R
T R
R D
F
C
Sistem terminal 2
F
Protocoale P2P operând la nivel de reţea
D F
Aplicaţii ale protocoalelor P2P File sharing - favorizează accesul la fişiere (muzică, video) într-o reţea vastă de utilizatori. SIP – protocolul de semnalizare pentru reţelele VoIP, într-o variantă extină de acces. Streaming media – se adresează fluxurilor video care sunt recepţionate în funcţie de descărcarea buffer-ului. Instant messaging – este o forma de comunicaţii în timp real desfăşurate între doi sau mai mulţi utilizatori.
Reţele P2P Clasificare 1.După modul de utilizare: •Transfer de fişiere •Telefonie •Fluxuri media(audio, video) •Forumuri de discuţie 2.După gradul de centralizare: •Terminale perechi, schimbând rolul de client sau server •Reţele fără server central •Reţele fără router central
3. După modul de interconectare al terminalelor În funcţie de modul în care sunt legate între ele terminalele, reţelele P2P se clasifică în structurate şi nestructurate. -Reţelele nestructurate sunt formate din legături stabilite arbitrar. Aceste reţele pot fi construite uşor de către orice participant, care poate copia legăturile existente ale unui alt nod (participant), formându-şi astfel legăturile proprii. Marele dezavantaj al acestor reţele este că nu totdeauna pot fi rezolvate toate cererile. -Reţelele structurate folosesc un protocol global care asigură rutarea eficientă astfel încât o cerere poate fi rezolvată, chiar dacă ea reprezintă o informaţie foarte rară. Această garanţie necesită un model foarte bine alcătuit. Un tip uzual de reţea structurată P2P este DHT (Distributed Hash Table)
Protocoale ARQ Fişier Pachet H
Pachet H
Pachet H
Sistemele care cer automat retransmisia pachetelor care lipsesc sau pachetelor cu erori se numesc sisteme ARQ. PachetH
E
PachetH ACK
PachetH
R
Protocoalele ARQ se folosesc pentru asigurarea recepţionării corecte a fluxurilor de date. Ele stau la baza protocoalelor P2P şi răspund de transferul fiabil al informaţiei. Pachet date
Pachet date
Cadru de informaţii CRC
Pachet date
H
Transmiţător
Receptor H
CRC
Cadru de control
Elementele de bază ale protocolului ARQ Există trei scheme •Stop & Wait •Go Back N •Selective Repeat
Schema Stop & Wait E R
P1
P2 C1
P3 C2
Time-out
P3 C3
Dacă emiţătorul nu primeşte confirmarea (C3) a primirii pachetului P3, după exoirarea timpului “Time-out”, transmite încă o dată pachetul P3. Deci lipsa unei confirmări duce la transmiterea dublă a unui pachet. Acest neajuns se poate elimina prin introducerea unei secvenţe de numerotare în antetul (header-ul) fiecărui cadru. Astfel receptorul va recunoaşte duplicatul P3, îl va elimina şi va transmite confirmarea C3. Schema Stop & Wait nu asigură eficienţa comunicaţiei când durata întârzierii este mai mare decât durata transmisiei unui pachet.
Eficienţa protocolului ARQ-Stop & Wait DT E
Pachet
Pachet
R
ACK
DTP
DI
DTC
DTP' Durata transmisiei unui pachet DI
Durata întârzierii
DTC Durata transmisiei confirmării DT
Durata totală (transmisie pachet şi recepţie confirmare)
DI
DTP DTP E= = DT DTP + 2 DI + DTC
Schema Go Back N Se bazează pe transmiterea unei serii de pachete şi apoi aşteaptă confirmarea. Confirmarea unui pachet, validează toate pachetele dinaintea acestuia. Dacă nu se primeşte confirmarea unui pachet, în Time-out, toate cadrele survenite după acesta vor fi retransmise.
E R
“Go back 4” P1 P2 P3 P4 P5 P6 P7 P 4 P 5 P 6 P 7 P 8 P 9 P10 P11
C1 C2 C3
Pachete nerecepţionate
C1 C2 C3 C1 C2
E trimite o serie de 4 pachete şi aşteaptă pentru confirmare. După C1, E trimite P5. După C2 şi C3, E trimite P6 şi P7. Pachetul 4 este pierdut şi nu se dă confirmare. R anulează P5, P6 şi P7. E retransmite pachetele P4, P5, P6, P7 ( go back to 4)
Eficienţa protocolului ARQ-Go Back N
N ∗ DTP DT E
Pachet
Pachet
R
Pachet
Pachet
ACK
DTP
DI
DTC
DI
Pentru a asigura transmisia continuă pe durata aşteptării primei confirmări trebuie ca D
N>
T
DTP
DT = DTP + 2 DI + DTC
Eficienţa protocolului ARQ-Go Back N este E = min{1, N
DTP } DT
Schema SRP (Selective Repeat Protocol) Protocolul SRP procedează numai la retransmisia pachetelor pierdute. Receptorul acceptă şi pachetele care nu respectă ordinea de la transmisie. Pachetele trebuie transmise în ordine de către receptor la un nivel superior, astfel încât acesta le reţine într-un buffer. Cererile de retransmisie pot fi: • implicite, pentru care receptorul confirmă fiecare pachet bun, iar pachetele care nu sunt confirmate înainte de “Time-out” sunt considerate pierdute sau eronate. • explicite, pentru care un mesaj NAK (Negative Acknowledgment Frame) poate cere retransmisia doar a unui pachet. În practică se utilizează una sau ambele tipuri de cereri de retransmisie.
Modul de lucru al protocolului SRP Transmiterea de pachete este făcută în serii, ca la protocolul “Go Back N” Pachetele sunt numerotate O serie de pachete este retransmisă după un mesaj NAK, sau după un “Time-out”, în cazul în care nu s-a primit confirmarea (ACK). Receptorul trimite confirmarea după toate pachetele recepţionate corect şi stochează aceste pachete până când le transmite în ordine nivelului superior. Eficienţa protocolului SRP nu depinde de debitul de informaţie şi de durata de propagare. Protocolul SRP asigură cel mai bun randament al legăturii, dar necesită un volum mare de memorie la ambele terminale.
Controlul legăturilor de date La nivelul legăturilor de date acţionează o serie de funcţii având rolul de a furniza servicii de comunicaţii la nivelul reţea. Entităţile de la nivelul reţea sunt implicate în schimbul de pachete cu entităţile de la acelaşi nivel situate într-un nod adiacent. Nivelul reţea trimite pachetele PDU(Protocol Data Unit), sub forma SDU(Service Data Unit), la nivelul legăturii de date. Acest nivel adaugă antetul (header-ul) şi CRC, construind astfel cadrul care va fi transmis prin intermediul nivelului fizic. Nivelul legăturii de date poate furniza mai multe servicii nivelului reţea: •Servicii orientate pe conexiune •Sevicii neorientate pe conexiune - cu confirmare (acknowledged) - fără confirmare (unacknoledged)
Transmisia datelor la nivelul legăturii de date PDU
Reţea
Reţea
Pachet
SDU
SDU SAP
SAP CRC SDU
Date
Fizic
Cadru
H
Date
Fizic
Configuraţii ale HDLC (High-level Data Link Control) 1. NRM (Normal Response Mode) defineşte un set de proceduri care sunt folosite în legături neechilibrate Comandă Staţia Primară
Staţia Secundară Răspuns
Legătură neechilibrată punct la punct Staţia Primară
Comandă Raspuns Staţia Secundară
Staţia Secundară
Legătură neechilibrată multipunct
Staţia Secundară
2. ARM (Asynchronous Response Mode), utilizat de asemenea în configuraţiile neechilibrate, de obicei punct-la-punct, în care o staţie secundară poate iniţia transmisiunea fară a primi o invitaţie de la staţia primară, astfel că ea transmite cadre în mod asincron în raport cu cea primară. 3. ABM (Asynchronous Balanced Mode) Comenzi
Răspunsuri
Staţie primară Staţie Secundară
Răspunsuri
Staţie Secundară Staţie Primară
Comenzi
În acest mod de operare fiecare statie are acelasi statut, realizând atât funcţiuni de staţie primară, cât şi funcţiuni de statie secundară. Această procedură, cunoscută şi sub denumirea de procedura de acces a legăturii echilibrate (LAPB - Link Access Procedure Balanced), este folosită în reţelele publice de date cu comutaţie de pachete,
Protocolul SIP Funcţiile protocolului SIP: •Identificarea utilizatorului (localizarea geografică şi tipul sistemului care va fi folosit în sesiune). •Disponibilitatea utilizatorului (dacă este liber sau ocupat). •Stabilirea sesiunii (conectarea legăturii la terminale). •Managementul sesiunii (posibilitatea utilizatorului de a termina convorbirea, transferul convorbirii, etc.) Rolul SIP: să creeze, să urmărescă şi să termine sesiuni între doi sau mai mulţi participanţi. SIP este un protocol la nivel de aplicaţie şi lucrează în paralel cu alte protocoale multimedia : RTSP (Real Time Streaming Protocol), RTTP (Real Time Transport Protocol)
Session Initiation Protocol este un protocol pentru stabilirea sesiunilor în reţelele IP. O sesiune poate fi o simplă convorbire telefonice sau o conferinţă multimedia. SIP este un protocol orientat pe cerere-răspuns, asemănător altor protocoale IP (HTTP, SMTP).
SIP are două componente de bază: •User agent, reprezintă componenta extremă (de margine) a apelului; •Network server, reprezintă componenta reţelei care prelucrează semnalizările asociate apelurilor. User agent iniţiază apelurile, iar network server răspunde la apeluri.
Procedura stabilirii unei legături: •Pentru iniţierea unei sesiuni apelantul (user agent) transmite o cerere către apelat. Dacă adresa IP este cunoscută, cererea junge direct la apelat. Dacă nu ea este transmisă la network server. •Serverul (Proxy) trimite o cerere către locaţia apelatului (prin DNS sau accesând o bază de date) sau se adresează unui alt server. După identificarea locaţiei apelatului, serverul informează apelantul pentru deschiderea unei sesiuni directe. •Dacă apelatul acceptă invitaţia, se pot negocia o serie de funcţii pentru telefonie clasică, teleconferinţă, videoconferinţă. •Dacă apelatul nu acceptă invitaţia, sesiunea se încheie sau se redeschide pentru voice mail.
Comenzile pe care le foloseşte SIP sunt numite metode.
Metoda SIP
Descriere
Invitaţia
Invită un utilizator la un apel
Confirmarea
Folosită pentru schimbul sigur de invitaţii
BYE
Dezactivarea conexiunii
Renunţarea
Terminarea unei cereri a utilizatorului, înainte de finalizare
Opţiuni
Solicitarea de informaţii asupra capabilităţilor serverului
Înregistrarea
Înregistrarea locaţiei utilizatorului
Informaţii
Utilizată pentru semnalizare
Relaţiile SIP cu alte protocoale SDP
RTSP
SIP
TCP
RTTP
UDP
IP
Mediu fizic Ethernet
Multiplexarea statistică D statistică se transmit numai datele de la terminalele active În multiplexarea din reţea. Dacă un terminal nu este activ, în fluxul de date multiplexat nu îi este acordat nici un spaţiu. max
Un multiplexor statistic: •acceptă doar datele de intrare •cadrele transmise sunt formate numai din datele acceptate a fi transmise Multiplexarea statistică a apărut din necesitatea respectării relaţiei: n
∑D ≤ D i =1
i
max
Di
Debitul de vârf al sursei de semnal
Dmax
Debitul maxim al canalului (resursei)
În multiplexarea statistică canalul de comunicaţie este împărţit într-un număr arbitrar de canale digitale sau fluxuri de informaţie, având debite variabile. Partajarea legăturii este adaptată cererilor de trafic ale fluxurilor de date care se transmit pe fiecare canal. Multiplexarea statistică este facilitată de comunicaţiile orientate pe pachete. Fiecare flux este împărţit în pachete care sunt transmise asincron, în modul FCFS (First-Come First-Serve) sau diferenţiat în funcţie de garantarea QoS. Pentru un canal analog, de exemplu un canal wireless, se folosesc modalităţile de acces: - Random frequency hopping orthogonal frequency division multiple access (RFH-OFDMA) - Code division multiple access (CDMA)
Multiplexorul statistic Un multiplexor statistic este un dispozitiv care permite furnizorilor de servicii video accesul la o bandă fixă, care poate fi împărţită în funcţie de necesităţile de debit binar ale fiecăruia. De exemplu un canal de ştiri necesită o lărgime de bandă mai mică decât un canal pe care se transmit întreceri spotive. Calitatea transmisiei poate fi asigurată prin alocarea a 500 kbps pentru primul canal şi 3,5 Mbps pentru al doilea. Alocarea lărgimii de bandă în funcţie de trafic este un procedeu cunoscut sub numele de Dynamic Bandwidth Allocation (DBA). Exemplu ITU-G.983. Avantajele DBA: •Nu toţi utilizatorii sunt conectaţi la reţea în acelaşi timp •Chiar dacă sunt conectaţi nu transmit date continuu •Majoritatea traficului survine în rafale (bursty) şi există perioade libere între pachete, unde poate fi introdus traficul altor utilizatori.
Transmisia în multiplexarea statistică
A A BB
A Mux
Mux
B
... B E B E
C
C
D
D
Linia de transmisie
E
...
Date Adresa B B
Date Adresa E E
E
Abrevieri ABM
Asynchronous Balanced Mode
ARM
Asynchronous Response Mode
Orthogonal Frequency Division OFDMA Multiple Access
ARQ
Automatic Repeat Request
OSI
Open Systems Interconnection
CBR
Constant Bit Rate
PDU
Protocol Data Unit
CDMA
Code Division Multiple Access
RTSP
Real Time Streaming Protocol
CRC
Cyclic Redundancy Check
RTTP
Real Time Transport Protocol
DHT
Distributed Hash Table
SDP
Session Definition Protocol
HDLC
High-level Data Link Control
SDU
Service Data Unit
HTTP
HyperText Transport Protocol
SDU
Service Data Unit
SIP
Session Initiation Protocol
LAPB
Link Access Procedure Balanced
SMTP
Simple Mail Transport Protocol
TCP
Transmission Control Protocol
NAK
Negative Acknowledgement frame
UDP
User Datagram Protocol
NRM
Normal Response Mode
VBR
Variable Bit Rate
Peer to Peer Cerere 6-7 nivele în funcţie de Time to Live (TOL)
Răspuns 8000-10000 computere