Sunteți pe pagina 1din 27

Protocoale pentru Internet

Virgil Dobrota

Universitatea Tehnica din Cluj-Napoca, Romania Virgil.Dobrota@com.utcluj.ro

Copyright Virgil Dobrota 2013, All rights reserved

Curs 6 - Cuprins 13. Incapsularea IP in IP Protocoale de strat transport 14. Structura antetului TCP

Copyright Virgil Dobrota 2013, All rights reserved

13. Incapsularea IP in IP

Copyright Virgil Dobrota 2013, All rights reserved

Incapsularea IP in IP (I)

se insereaz` un antet de ie[ire OH (Outer Header) \n fa]a datagramei, care identific` \nceputul [i sf=r[itul tunelului pe durata travers`rii tunelului: -> antetul de intrare IH (Inner Header) + Payload IP original nemodificate -> schimb`ri doar \n antetul OH

Copyright Virgil Dobrota 2013, All rights reserved

Incapsularea IP in IP (II)
Antet IP de ie[ire (I)
Versiunea: 0100 IHL: lungimea antetului IP de ie[ire TOS: se copiaz` din antetul de intrare Lungimea total`: lungimea total` a datagramei (antet de ie[ire, alte antete, antet de intrare, payload IP original) Identificare, MF, Offset fragment: se refer` la datagrama incapsulat` DF: se copiaz` din antetul de intrare TTL: \n func]ie de caracteristicile tunelului Protocol: 4, adic` protocol IP, conform http://www.iana.org/protocols Suma de control: se aplic` algoritmul doar asupra antetului de ie[ire
Copyright Virgil Dobrota 2013, All rights reserved

Incapsularea IP in IP (III)
Antet IP de ie[ire (II)
Adresa surs`: adresa \ncapsulatorului, ex: HA (intrarea \n tunel) Adresa destina]ie: adresa decapsulatorului, ex: CoA (ie[irea din tunel) Op]iuni: -> de regul` nu se copiaz` din antetul de intrare -> se pot ad`uga op]iuni noi, specifice caracteristicilor tunelului

Copyright Virgil Dobrota 2013, All rights reserved

Incapsularea IP in IP (IV)
Antete suplimentare
op]ionale exemplu: cerin]e de securitate -> protec]ia c=mpului Payload IP original pe durata travers`rii tunelului

Copyright Virgil Dobrota 2013, All rights reserved

Incapsularea IP in IP (V)
Antet de intrare (I) se ob]ine din antetul IP original, la intrarea \n tunel.
Toate c=mpurile (excep]ie: TTL [i Suma de control): cele din datagrama original`
LA INTRAREA |N TUNEL: TTL = TTL -1 se decrementeaz` TTL Dac` TTL 0: TTL se \nscrie \n antetul de intrare IH Se recalculeaz` suma de control Dac` TTL @ 0: Nu se mai execut` \ncapsularea IP \n IP Datagrama este eliminat` [i se trimite c`tre adresa surs` un mesaj ICMP de dep`[ire a timpului de via]` al pachetului
Copyright Virgil Dobrota 2013, All rights reserved

Incapsularea IP in IP (VI)
Antet de intrare (II)
LA IE{IREA DIN TUNEL: Dac` destina]ia final` este cap`tul tunelului: nu se mai decrementeaz` TTL decapsulare IP din IP

Copyright Virgil Dobrota 2013, All rights reserved

Incapsularea IP in IP (VII)
Antet de intrare (III)
LA IE{IREA DIN TUNEL: Dac` destina]ia final` nu este cap`tul tunelului: TTL = TTL -1 se decrementeaz` TTL Dac` TTL 0: decapsulare IP din IP TTL se \nscrie \n antetul original Se recalculeaz` suma de control Se face dirijarea datagramei originale Dac` TTL @ 0: Nu se mai execut` decapsularea IP din IP Datagrama este eliminat` [i se trimite c`tre adresa surs` un mesaj ICMP de dep`[ire a timpului de via]` al pachetului
Copyright Virgil Dobrota 2013, All rights reserved

10

Incapsularea IP in IP (VIII)
ALTE TIPURI DE |NCAPSUL~RI:

|ncapsulare minimal` (Minimal Encapsulation) -> \n datagrama \ncapsulat` antetul de intrare este simplificat (8-12 octe]i)

Sursa: [RFC 2004]

Copyright Virgil Dobrota 2013, All rights reserved

11

Incapsularea IP in IP (IX)
ALTE TIPURI DE |NCAPSUL~RI:

|ncapsulare GRE (Generic Routing Encapsulation) -> general`, dezvoltat` de Cisco [i adoptat` de IETF -> \ncapsuleaz` [i alte protocoale dec=t IP

Sursa: [RFC 2784]

Sursa: [RFC 2890]

Copyright Virgil Dobrota 2013, All rights reserved

12

14. Structura antetului TCP

Copyright Virgil Dobrota 2013, All rights reserved

13

Structura antetului TCP (I)


Caracteristicile protocolului TCP -> TCP = Transmission Control Protocol -> strat 4 (transport), orientat pe conexiune CO (ConnectionOriented), cu confirmare de primire -> protocol cap-la-cap (end-to-end) se asigur`:
controlul fluxului (flow control): un transmi]`tor mai rapid s` nu blocheze un receptor mai lent Solu]ia: fereastr` glisant` (sliding window) transmisia fiabil` (reliability): datele ajung sigur la destina]ie, \n caz de eroare se face retransmisia Solu]ia: numerotarea (sequencing) [i confirmarea (acknowledgement)
Copyright Virgil Dobrota 2013, All rights reserved

14

Structura antetului TCP (II)

Copyright Virgil Dobrota 2013, All rights reserved

15

Structura antetului TCP (III)


Port surs` (Source Port): punct de acces la serviciile stratului transport TSAP (Transport Service Access Point), 16 bi]i ,
socket surs` = adresa IP surs` + port surs` + descriptor de comunica]ie

Port destina]ie (Destination Port): punct de acces la serviciile stratului transport TSAP, 16 bi]i
socket destina]ie = adresa IP dest. + port dest. + descriptor de comunica]ie

Num`r secven]` (Sequence Number): num`rul secven]ei, pe 32 bi]i, al primului octet de date din segmentul TCP curent.
Excep]ie: Pentru segmentele SYN=1 reprezint` num`rul secven]ei ini]iale ISN (Initial Sequence Number), primul octet de date fiind ISN+1.

Num`r ACK (Acknowledgement Number): confirmare de tip piggybacking care indic` num`rul de secven]` al urm`torului octet de date ce se a[teapt` a fi recep]ionat. 16
Copyright Virgil Dobrota 2013, All rights reserved

Structura antetului TCP (IV)


OBSERVA}II: 1. Num`rul secven]ei [i num`rul ACK se refer` la octe]i [i nu la segmente \ntregi 2. TCP este orientat pe fluxuri mari ([iroaie) de date (streamoriented) -> accept` un flux mare de octe]i de la utilizator
-> \l grupeaz` \n segmente de dimensiuni potrivite -> numeroteaz` fiecare octet.

Copyright Virgil Dobrota 2013, All rights reserved

17

Structura antetului TCP (V)


PROBLEMA 1:
S` presupunem c` un segment TCP con]ine num`rul de secven]` 1501 [i c` include 1000 octe]i de date. La cine se refer` acest num`r de secven]` [i care va fi num`rul de secven]` pentru urm`torul segment TCP, \n ordine logic`?

Copyright Virgil Dobrota 2013, All rights reserved

18

Structura antetului TCP (VI)


REZOLVARE PROBLEMA 1:
Num`rul 1501 se refer` la primul octet din cei 1000 octe]i de date. Urm`torul segment, \n ordine logic`, va avea num`rul de secven]` 2501.

Copyright Virgil Dobrota 2013, All rights reserved

19

Structura antetului TCP (VII)


Lungime antet TCP (TCP Header Length): 4 bi]i, antet = k x32 bi]i. Minim k=5 => 5x4=20 octe]i, maxim k=15 -> 15x4=60 octe]i Bi]i de control (Flags):
NS =1: se utilizeaz` op]ional \n plus fa]` de c=mpul ECN din TOS (antet IPv4) sau din Clas` trafic (antet IPv6). El protejeaz` \mpotriva ascunderii accidentale sau r`u-inten]ionate a pachetelor marcate de emi]`torul TCP. Controlul congestiei devine mai robust \ntruc=t receptorul nu mai poate exploata ECN pentru a c=[tiga pe nemerit o rat` de transfer mai mare. Printr-o tehnic` tipic` \n criptografie trimite un ECN-nonce, adic` o combina]ie folosit` doar o singur` dat` \n antetul IP [i care cere setarea bitului NS \n antetul TCP [RFC3540]. CWR=1: se utilizeaz` de c`tre emi]`torul TCP ca r`spuns la un segment TCP primit de la receptor cu ECE=1, prin care se reduce fereastra de congestie (Congestion Window Reduced) [RFC3168].

Copyright Virgil Dobrota 2013, All rights reserved

20

Structura antetului TCP (VIII)


ECE=1: bitul de ecou ECN (ECN-Echo) indic`: a) dac` SYN=1: entitatea pereche TCP este capabil` de ECN; b) dac` SYN=0: un pachet IP cu bitul CE (Congestion Experience)=1 \n antetul IP s-a recep]ionat \n timpul unei transmisii normale [RFC3168]. URG =1: se utilizeaz` pointerul urgent (Urgent Pointer) care indic` un offset (pe octe]i) fa]` de num`rul secven]ei curente, unde se g`sesc date urgente. De regul` se folose[te de c`tre surs`, pentru a indica evenimente urgente (\ntreruperi), f`r` a implica protocolul TCP \nsu[i. ACK =1: Num`r ACK este un c=mp valid; ACK=0: Num`r ACK se va ignora. PSH =1: date \mpinse (Pushed Data). Receptorul este rugat s` trimit` datele recep]ionate direct aplica]iei, f`r` s` le stocheze p=n` c=nd un buffer este umplut. RST=1: reseteaz` o conexiune care a devenit confuz` datorit` defect`rii ma[inii gazd`, sau din alte motive. Se folose[te de asemenea pentru a rejecta un segment invalid, sau pentru a refuza o \ncercare de a deschide o conexiune.
Copyright Virgil Dobrota 2013, All rights reserved

21

Structura antetului TCP (IX)


SYN =1: se folose[te pentru a stabili o conexiune. CONNECTION REQUEST: CONNECTION ACCEPTED: SYN=1, ACK=0 SYN =1, ACK =1

FIN =1: pentru a elibera o conexiune (emi]`torul nu mai are date de transmis) Totu[i, dup` \nchiderea unei conexiuni, un proces poate continua s` recep]ioneze date un timp indefinit. Deoarece segmentele SYN [i FIN au num`r de secven]`, la recep]ie este garantat` reordonarea segmentelor.

Dimensiune fereastr` (Window Size): 16 bi]i, recomandabil s` fie tratat ca un num`r f`r` semn pe 32 bi]i, folosit pentru protocolul cu fereastr` glisant`. El reprezint` num`rul de octe]i care se a[teapt` a fi recep]iona]i la destina]ie, \ncep=nd cu octetul indicat \n c=mpul Num`r ACK.
Copyright Virgil Dobrota 2013, All rights reserved

22

Structura antetului TCP (X)


PROBLEMA 2:
Ce semnific` o dimensiune a ferestrei egal` cu 0 \n antetul TCP?

Copyright Virgil Dobrota 2013, All rights reserved

23

Structura antetului TCP (XI)


REZOLVARE PROBLEMA 2:
Dac` dimensiunea ferestrei este 0, rezult` c` to]i octe]ii au fost recep]iona]i corect (incluz\ndu-l [i pe cel care are secven]a ACK-1), dar c` receptorul nu mai accept` al]i octe]i pentru moment. Reluarea transmisiei de c`tre emi]`tor se poate face numai dup` ce acesta recep]ioneaz` un nou segment TCP de la receptor, av=nd num`rul ACK, dar c=mpul Dimensiune fereastr` nenul.

Copyright Virgil Dobrota 2013, All rights reserved

24

Structura antetului TCP (XII)

Suma de control (Checksum): se aplic` asupra antetului, datelor [i a pseudoantetului din figur`, conform algoritmului urm`tor:
1. 2. 3. 4. C=mpul suma de control este adus la 0. Dac` lungimea c=mpului de date este impar`, se adaug` un octet de 0. Se adun` cuvintele de 16 bi]i \n complement fa]` de 1. Se ia complementul fa]` de 1 al sumei
Copyright Virgil Dobrota 2013, All rights reserved

25

Structura antetului TCP (XIII)


Op]iuni (Options): 040 octe]i utiliza]i pentru a ad`uga facilit`]i neincluse \n antet. Trebuie s` fie k x 32 bi]i (se dopeaz` cu 0 dac` e cazul). Exemple: lungimea maxim` a unui segment MSS (Maximum Segment Size), negociat` la stabilirea conexiunii (valoare implicit`: 536 octe]i + 20 octe]i antet TCP + 20 octe]i antet IPv4 = 576 octe]i) negocierea unor ferestre mai mari de 64 KB [RFC 1323] alte protocoale de confirmare \n locul go-back-n [RFC 1106]

Copyright Virgil Dobrota 2013, All rights reserved

26

Structura antetului TCP (XIV)


OBSERVA}II: 1. Un exemplu de list` (cvasi-complet`) de porturi TCP (poate s` difere \n func]ie de sta]ie/ router) este de exemplu http://www.networksorcery.com/enp/default1101.htm 2. Despre versiuni de implement`ri TCP se va discuta \n cursul 13 (subiect op]ional). De notat c` versiunea \n limba spaniol` a acestui subiect pe wikipedia con]ine ca referin]` bibliografic` o lucrare realizat` de UC Labs http://es.wikipedia.org/wiki/Implementaciones_de_TCP
B.Moraru, F.Copaciu, G.Lazar & V.Dobrota, Practical Analysis of TCP Implementations: Tahoe, Reno, NewReno, 2nd RoEduNet International Conference Networking in Education and Research, Iasi, June 5-6, 2003, pp. 125-130, ISBN 973-85791-9-8,

http://el.el.obs.utcluj.ro/pi/pdf/Practical_Analysis_of_TCP_Impl.pdf 3. Alte detalii despre TCP: http://en.wikipedia.org/wiki/Transmission_Control_Protocol


Copyright Virgil Dobrota 2013, All rights reserved

27

S-ar putea să vă placă și