Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Rețele de Calculatoare
CR. Anul 3. Semestrul 2.
Încapsulare și decapsulare. Antete.
Segment. Pachet. Cadru.
Antetul TCP. Antetul UDP. Antetul IP. Antetul MAC.
Modelul ISO-OSI vs. Modelul TCP/IP
2
Modelul ISO-OSI
3
Datagramă
Încapsulare. Decapsulare.
4
Încapsulare
5
ÎncapsulareProcesul de transformare pe care îl
suferă datele în drumul de la
emițător și până în punctul în care
sunt gata să fie trimise prin cablu
spre destinatar. Încapsularea implică
atașarea de antete și de sufixuri.
DecapsulareProcesul invers încapsulării, de
dezlipire a antetelor/sufixurilor
atașate în timpul încapsulării cu
scopul de a reda datele la
destinatar așa cum au fost inițiate
la nivelul emițătorului.
Modelul ISO-OSI
Bit
Cadru
Pachet
Segment
Data
Data
Data
Fizic
Legătură de date
Rețea
Transport
Sesiune
Prezentare
AplicațieH
ost
Med
iuFormat Nivel
TCP
IP
DHCP
HTTP
FTP
SNMP
ARP
ICMP
EthernetMAC
DNS
SMTP
POP3
IMAP
UDP
Protocoale
6
Nivelul Transport
7
Antet TCP + Date = Segment
Nivelul Rețea
8
Antet IP + Antet TCP + Date = Pachet
Nivelul Data Link
9
Antet MAC +
Antet IP + Antet TCP + Date +
Sufix FCS =
Cadru
FCS = Frame Check Sum (Sumă de verificare)
Nivelul Transport
10
Antet TCP + Date = Segment
Protocolul TCP – Transmission Control Protocol
▪ Asigură transferul sigur de date de la o sursă catre o destinație, astfel încât datele să ajungă corect la
destinație, fără erori.
▪ Elimină eventuale erori, bazându-se pe transmiterea de confirmări; acest mecanism este cunoscut sub
denumirea de Hand-Shaking.
▪ TCP definește modul în care se crează canalul de comunicație în rețea, astfel TCP este un protocol de nivel
Transport în modelul ISO-OSI.
▪ TCP definește modul în care datele sunt asamblate în pachete înainte de transmiterea în rețea, precum și
modul în care acestea sunt “despachetate” la destinație.
▪ Împreună cu protocolul IP formează suita TCP/IP.
▪ Tutorial TCP: http://cs.ucv.ro/staff/dmancas/nm-en/tutorials/NetworkingBasics/Cap4/4.1/index.html11
Fizic
Legătură de date
Rețea
Transport
Sesiune
Prezentare
AplicațieH
ost
Med
iuNivel Protocoale
Protocolul TCP – Transmission Control Protocol
12
Protocolul TCP – Transmission Control Protocol
▪ TCP definește modul în care se crează canalul de comunicație în rețea, astfel TCP este un protocol de nivel
Transport în modelul ISO-OSI.
▪ Elimină eventuale erori, bazându-se pe transmiterea de confirmări; acest mecanism este cunoscut sub
denumirea de Hand-Shaking.
▪ Tutorial TCP: http://cs.ucv.ro/staff/dmancas/nm-en/tutorials/NetworkingBasics/Cap4/4.1/index.html
13
Protocolul TCP – Transmission Control Protocol
14
▪ 3-way Hand Shaking – stabilirea sesiunii TCP
▪ Numerotarea secvențelor – transmiterea pachetelor
▪ Principiul “ TCP Windowing” – transmiterea pachetelor
Protocolul TCP – Transmission Control Protocol
15
▪ 3-way Hand Shaking
1. O secvență SYN (de sincronizare)
este trimisă
SYN1
SYN1
Protocolul TCP – Transmission Control Protocol
16
SYN1
SYN1
ACK - SYN
2
ACK - SYN
2
▪ 3-way Hand Shaking
1. O secvență SYN (de sincronizare)
este trimisă
2. O confirmare ACK - SYN este
trimisă înapoi
Protocolul TCP – Transmission Control Protocol
17
SYN1
SYN1
ACK - SYN
2
ACK - SYN
2
ACK
3
ACK
3
▪ 3-way Hand Shaking
1. O secvență SYN (de sincronizare)
este trimisă
2. O confirmare ACK - SYN este
trimisă înapoi
3. O confirmare ACK la confirmarea
ACK – SYN este trimisă
Protocolul TCP – Transmission Control Protocol
18
SYN1
SYN1
ACK - SYN
2
ACK - SYN
2
ACK
3
ACK
3
▪ 3-way Hand Shaking
Odată realizată sincronizarea (conexiunea)
între cele două dispozitive, poate începe
transmisia datelor.
Astfel s-a stabilit o sesiune TCP.
Protocolul TCP – Transmission Control Protocol
19
SEQ100 / ACK300
SEQ300 / ACK101
▪ Numerotarea secvențelor
Transmiterea datelor (pachetelor) presupune
numerotarea acestora.
Numerotarea are rolul de a asigura o ordine
a pachetelor și de a verifica dacă vreun
pachet a fost pierdut.
Numerotarea unui pachet implică atât
numărul secvenței trimise (pachetului trimis)
cât și o confirmare (ACK) ce conține numărul
secvenței pe care unul dintre dispozitive
așteaptă să o primească.
SEQ101 / ACK301
SEQ301 / ACK102
...
...
Protocolul TCP – Transmission Control Protocol
20
▪ Principiul “TCP Windowing”
Sau principiul “Sliding Window”
Urmărește transmiterea cât mai rapidă și a
cât mai multor pachete, păstrând principiul
numerotării secvențiale, cu scopul de a
obține cea mai bună performanță.
TCP mărește și scade automate dimensiunea
ferestrei de pachete trimise la un moment
dat.
...
S1
A2
S2S3
A4
S4S5S6
A6
S6S7
A8
▪ TCP permite controlul livrării pachetelor IT în două moduri. În primul rând, TCP numerotează fiecare
pachet, astfel încât la destinație pachetele să fie redate în ordinea corectă. În al doilea rând, TCP include
mecanisme pentru a se asigura că destinația primește fiecare pachet de date.
▪ După primirea unui pachet, dispozitivul destinatar trimite un mesaj înapoi expeditorului prin care
confirmă livrarea. Dacă expeditorul nu primește un răspuns din partea destinatarului, expeditorul
retransmite pachetul până când terminalul îl primește cu succes sau anulează comunicările, ca în cazul
unui interval de timp. TCP include, de asemenea, mecanisme de verificare a erorilor pentru a se asigura că
nu sunt corupte datele.
▪ Din păcate, toată această fiabilitate aduce un dezavantaj semnificativ ce constă în: un număr mai mare de
transmisii, cerere mai mare pentru lățimea de bandă a rețelei și procesare generală mai lentă.
▪ UDP tratează aceste probleme eliminând verificările TCP, concentrându-se în schimb doar pe transmiterea
datelor. Nu există numerotarea pachetelor, verificarea erorilor sau confirmarea livrării pachetelor. Dacă
pachetele se pierd în transmisie, ele rămân pierdute.
Protocolul UDP – User Datagram Protocol
21
Protocolul UDP – User Datagram Protocol
▪ Protocolul TCP se folosește atunci când trebuie asigurat transferul corect de la sursă la destinație.
▪ Exemplu: transfer de fișiere.
▪ Asigurarea transferului corect se face pe baza unui algoritm, prin verificarea unei sume de control.
▪ Protocolul utilizat atunci când nu este absolut necesară asigurarea unui transfer corect este UDP.
▪ Exemplu: comunicație live.
▪ În cazul comunicației live nu se poate aștepta după confirmări.
▪ Pierderea unor biți rezultă în blocarea temporară a imaginii (în cazul streaming-ului video) sau a
sunetului (în cazul streaming-ului audio).
22
Protocolul UDP – User Datagram Protocol
23
▪ Similar principiului poștei
▪ Fără confirmări de primire
▪ Best effort
▪ Nu există garanție că pachetul va ajunge la destinație
Fizic
Legătură de date
Rețea
Transport
Sesiune
Prezentare
AplicațieH
ost
Med
iuISO - OSI TCP/IP
Modelul ISO-OSI. Modelul TCP/IP. Protocoale.
Transport
Aplicație
Internet
Fizic
Protocoale
TCP
IP
24
Nivelul Transport
25
Antet UDP + Date = Segment
Antetul UDP
26
Port Sursă Port Destinație
Lungime Sumă de Verificare
▪ Port sursă/destinație: 16 biți
▪ Dacă adresa IP specifică dispozitivul de pe care/pe care
se trimite informația, portul sursă specifică pe
unde/unde din/pe acel dispozitiv sursă pleacă/ajunge
informația.
▪ Dacă dispozitivul sursă este, de exemplu un server care
trimite un răspuns, portul folosit poate varia între 0 și
1023 (așa cum este definit de IANA). Aceeași aplicație
va folosi întotdeauna același port. De exemplu, SMTP
(protocolul folosit pentru dirijarea e-mail-urilor între
server-ele e-mail) va folosi întotdeauna portul 25. Dacă
dispozitivul sursă este un client, care trimite o cerere,
atunci portul sursă va avea un număr efemer, alocat
aleatoriu și mai mare de 1023.
▪ Lungime: 16 biți
▪ Specifică lungimea totală a datagramei:
antet + date.
▪ Sumă de verificare: 16 biți
▪ Înainte ca un pachet să fie trimis pe baza unui
algoritm se calculează o sumă de verificare.
Această sumă trebuie să fie aceeași atât la
sursă, cât și la destinație, pentru a asigura
transmiterea corectă a datelor.
▪ Acest câmp poate lipsi în cazul UDP, însă este
întotdeaună prezent în cazul TCP.
Antetul TCP
27
Port Sursă Port Destinație
Numărul Secvenței (SEQ)
Numărul Confirmării (ACK)
HLEN Rezervat
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Dimensiunea Ferestrei
Sumă de Verificare Urgent Pointer
Options + Padding
▪ Port Sursă/Destinație: 16 biți
▪ Numărul Secvenței: 32 biți
▪ Numărul Confirmării: 32 biți
▪ HLEN (Header Length): 4 biți – lungimea antetului TCP
Lungimea antetului poate să varieze între 20 bytes și 60 bytes.
Lungimea antetului este exprimată în câmpul HLEN prin numărul de grupări de
4 bytes din antet. În cazul unui antet de 20 bytes, câmpul HLEN va conține 5.
Antetul TCP
28
Port Sursă Port Destinație
Numărul Secvenței (SEQ)
Numărul Confirmării (ACK)
HLEN Rezervat
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Dimensiunea Ferestrei
Sumă de Verificare Urgent Pointer
Options + Padding
▪ Rezervat: 6 biți
▪ Flags: 1 bit fiecare – setat 1 sau 0
URG = 1 -> Câmpul Urgent Pointer trebuie verificat
ACK = 1 -> Câmpul Numărul Confirmării trebuie verificat
PSH = 1 -> Data trebuie livrată imediat ce a fost primită
RST = 1 -> Conexiunea este refuzată sau întreruptă forțat
SYN = 1 -> Atunci când se dorește să se stabilească un canal
de comunicație. SYN = 1 și Numărul Secvenței conține un
Initial Sequence Number (aleatoriu). Restul flag-urilor sunt 0
atunci când SYN este 1.
FIN = 1 -> Atunci când se încheie un canal de comunicație.
Antetul TCP
29
Port Sursă Port Destinație
Numărul Secvenței (SEQ)
Numărul Confirmării (ACK)
HLEN Rezervat
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Dimensiunea Ferestrei
Sumă de Verificare Urgent Pointer
Options + Padding
▪ Dimensiunea Ferestrei: 16 biți
Definește cantitatea de informație (exprimată în bytes) pe care Gazda A
o poate trimite înainte să primească o confirmare din partea Gazdei B.
▪ Suma de verificare: 16 biți
▪ Options & Padding: numărul de biți este variabil
Ex: Max segment size, Window scale factor, Timestamp & selective ack.
▪ Urgent Pointer: 16 biți
Nu semnalizează prioritate, ci “tratament special”
la destinație al anumitor bytes plasați într-un
segment Urgent Data. Segmentul Urgent Data este
plasat înaintea segmentului Normal Data, iar
câmpul Urgent Pointer semnalează sfârșitul
segmentului Urgent Data.
Nivelul Rețea
30
Antet IP + Antet TCP + Date = Pachet
Antetul IP
31
▪ VER (Versiune): 4 biți
▪ HLEN (Header Length): 4 biți
Lungimea antetului este exprimată în câmpul HLEN prin numărul de
grupări de 4 bytes din antet. În cazul în care nu există opțiuni, HLEN
este de 20 bytes, iar câmpul HLEN va conține 5.
▪ TOS (Type of Service): 8 biți
Conceput pentru a specifica tipul tratamentului
aplicat datagramei; noțiune de QoS (Quality of
Service)
▪ Lungime Totală: 16 biți
Lungimea totală a datagramei IP: antet + date
VER HLEN TOS Lungime Totală
Identificare Flags Offset de Fragmentare
TTL Protocol Sumă de Verificare
Adresă IP Sursă
Adresă IP Destinație
Options & Padding
Antetul IP
32
VER HLEN TOS Lungime Totală
Identificare Flags Offset de Fragmentare
TTL Protocol Sumă de Verificare
Adresă IP Sursă
Adresă IP Destinație
Options & Padding
▪ Flags: 3 biți
Bitul 0: Rezervat
Bitul 1 =1 -> Datagrama nu poate fi fragmentată
Bitul 2 = 1 -> Datagrama este fragmentată și
urmează fragmente.
▪ Identificare: 16 biți
Utilizat în situația în care datagrama este fragmentată.
Fiecare fragment va conține un număr unic de identificare
astfel încât la destinație datagrama să poată fi corect
reasamblată.
Antetul IP
33
VER HLEN TOS Lungime Totală
Identificare Flags Offset de Fragmentare
TTL Protocol Sumă de Verificare
Adresă IP Sursă
Adresă IP Destinație
Options & Padding
▪ Offset de Fragmentare: 13 biți
Utilizat în situația în care datagrama este fragmentată.
Exprimat în unități de 8 bytes.
Specifică poziția relativă a fiecărui fragment.
De exemplu:
O datagramă de 3200 bytes este împărțită în 3 fragmente:
Fragmentul 1: conține 1400 bytes. Offset-ul va fi 0.
Fragmentul 2: conține 1400 bytes. Offset-ul va fi 175.
175 = 1400 bytes / 8 bytes
Fragmentul 3: conține 400 bytes. Offset-ul va fi 225.
225 = 175 + (400/8)
https://electronicspost.com/ip-datagram-fragmentation-with-example/
Antetul IP
34
VER HLEN TOS Lungime Totală
Identificare Flags Offset de Fragmentare
TTL Protocol Sumă de Verificare
Adresă IP Sursă
Adresă IP Destinație
Options & Padding
▪ Protocol: 8 biți
Upper Layer Protocol
Ex.: TCP: 6; UDP: 17; ICMP: 1; etc.
▪ Sumă de verificare: 16 biți
▪ Adresă IP Sursă/Destinație: 32 biți
▪ Options & Padding: 32 biți
▪ TTL (Time to Live): 8 biți
Previne formarea de bucle în rutare.
Router-ul decrementează acest câmp cu 1 de fiecare dată când
primește pachetul. Atunci când valoarea TTL ajunge la 0, router-ul
trimite răspuns ICMP și aruncă pachetul.
Valoarea maximă: 255
https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers
Nivelul Data Link
35
Antet MAC +
Antet IP + Antet TCP + Date +
Sufix FCS =
Cadru
FCS = Frame Check Sum (Sumă de verificare)
Antetul MAC
36
Adresă MAC Destinație Adresă MAC Sursă Ethertype Payload Sumă de verificare
Cadrul Ethernet
Antetul MAC
37
▪ Ethertype:
Specifică protocolul de nivel rețea:
IPv4: 0x0800
IPv6: 0x86DD
ARP: 0x0806
▪ Payload:
Header IP + Header TCP + Date
▪ Sufix:
Sumă de verificare
▪ Adrese MAC:
Destinație
Sursă
▪ Antet MAC
Link-uri
Cum funcționează TCP și UDP.
Despre antete. UDP. TCP. IP. MAC.
Modelul ISO-OSI.
Modelele ISO-OSI și TCP/IP.
Fragmentarea datagramelor (exemplu).
Valori ale câmpului Protocol din Antetul IP.
38