Sunteți pe pagina 1din 10

Stiva de protocoale TCP/IP

Protocolul IP ofer 2 servicii de baz :


-

adresarea ( dirijarea)
segmentarea i asamblarea pachete IP trecnd de la o reea la alta se poate ntmpla ca
dimensiunea de cadru s fie mai mic dect lungimea unui pachet IP. Deci este necesar o
procedur de fragmentare a pachetelor lungi i de reasamblarea lor la staia receptoare.

Adresarea IP
O adres IP este un ir de 32 de bii ce identific dou lucruri: o reea i o staie n cadrul acelei
reele. Forma n care sunt folosite totui adresele IP nu este cea binar, astfel nct cnd spunem
adres IP aveam mai degrab n minte reprezentarea decimal a patru octei, separai prin trei
puncte.
Astfel pentru o adres IP dat: 10110001000001000001011000001000, vom separa mai nti biii
n grupuri de cte 8 bii: 10110001.00000100.00010110.00001000 i n final vom converti fiecare
grup n decimal: 177.4.22.8.

Clasele de adrese IP
n tabelul de mai jos sunt prezentate cele 5 clase definite pentru spaiul de adrese IP.
Clasa Primii bii Nr bii reea Nr de reele Nr bii staie Nr staii

Domeniul de
valori

0...

27

24

224-2

1.0.0.0126.255.255.255

10...

16

214

16

216-2

128.0.0.0191.255.255.255

110...

24

221

28-2

192.0.0.0223.255.255.255

1110...

Adrese multicast

11110...

Rezervat

Distribuia adreselor pe clase este asemntoare cu un arbore Huffmann, spaiile de adrese astfel
obinute fiind inegale. Clasele A, spre exemplu, sunt definite de valoarea zero a primului bit din
adresa IP, ajungndu-se la situaia cnd mai puin de 130 de reele s consume jumtate din spaiul
de adrese IP, rmnnd pentru restul de peste 2 milioane de reele mai puin de jumtate din acest
spaiu de adrese.
Clasa A a fost proiectat pentru a satisface cerinele ridicate de reele de mari dimensiuni. Astfel
pentru definirea reelei va fi folosit doar primul octet, rmnnd pentru identificarea staiei 24 de
bii, adic mai mult de 16,7 milioane de posibiliti. Din tabelul de mai sus se poate observa c
1

domeniul de valori pentru clasa A nu include reelele 0.0.0.0 i 127.0.0.0, acestea fiind rezervate.
Clasa de adrese 0.0.0.0 nu este folosit datorit posibilelor confuzii cu rutele implicite, n vreme
ce clasa 127.0.0.0 este rezervat pentru adrese de lookback, n scopul monitorizrii i testrii.
Tot din studiul numrului de staii din tabelului de mai sus se observ eliminarea a cte dou
adrese dintre cele ce pot fi alocate staiilor, pentru fiecare dintre clasele rutabile. Cele dou adrese
sunt: adresa de reea i adresa de difuzare.
O adres IP de reea este o adres pentru care toi biii de staie sunt 0. O astfel de adres este
folosit pentru identificarea ntregii reele, aceast fiind n fapt forma relevant a oricrei adrese
ce cltorete peste Internet.
O adres IP de boadcast sau de difuzare este o adres pentru care toi biii de staie sunt 1. Un
pachet destinat unei astfel de adrese va ajunge la toate staiile din aceeai reea.
O clas de adrese B este definit de valorile primilor doi bii din adresa IP, aceti primi doi bii
fiind 10. Respectnd aceast constrngere rezult c toate adresele IP ale cror prim octet se afl
ntre 10000000 i 10111111, adic ntre 128 i 191, aparin unei clase B. Cmpul de reea pentru o
clas B va cuprinde primii doi octei, dar cum primii doi bii ai primului octet sunt fixai, ne
rmn doar 14 bii pentru a crea clase B. Pentru definirea staiilor vom avea la dispoziie ultimii
doi octei, adic 16 bii. Astfel vom obine 16.384 reele, fiecare avnd un numr maxim de staii
de 65.533.
Clasele A i B la un loc reprezint 75% din spaiul de adrese disponibile, aceste clase fiind
epuizate n primii ani de expansiune a Internetului (`92 -`94). Dac mai dm la o parte clasele D i
E, clase ce nu pot fi folosite pentru rutare, rezult c aproape ntreaga expansiune a Internetului
din ultimul deceniu s-a fcut folosindu-se doar 12,5% din spaiul de adresare IP, i anume clasele
C.
Clasele C se definesc prin alocarea primilor 3 octei pentru definirea reelei i doar a ultimilor 8
bii pentru distingerea ntre staiile aceleiai reele. Primii trei bii din primul octet trebuie s fie
110, adic valoarea acestui prim octet trebuie s se afle ntre 192 i 223 pentru ca o adres s
aparin unei clase C. Dei numrul claselor C depete 2 milioane, numrul de staii pentru
fiecare dintre aceste reele este de doar 254.
Clasa de adrese D este folosit pentru reele multicast.
Pentru adresa multicast spaiul de adrese este plat, toi cei 4 octei fiind folosii pentru definirea
adresei de staie. Deoarece primii 4 bii ai primului octet sunt fixai, i anume 1110, numrul
adreselor de multicast este de 268 milioane.
Clasa de adrese E este rezervat i nu poate fi folosit n reelele publice, sau n soluii de
multicast.

Figura: Adresarea IP
Odat cu subreelele a aprut distincia ntre adresarea ce ine cont doar de cele trei clase: A, B i
C, aceasta fiind numit adresare classful, i noul tip de adresare, ce ofer suport pentru cmpul de
subreea, aceasta din urm fiind numit adresare classless.
Problema crizei adreselor IP (n anul 1992), a fcut ca adresarea classless s ocupe un loc central
n noua arhitectur a Internetului, prin dezvoltarea mecanismelor de rutare pentru astfel de adrese.
Soluia s-a numit CIDR (Classless InterDomain Routing) i a rspuns att la problema epuizrii
rapide a spaiului de adrese IP, ct i la problema creterii n dimensiune a tabelelor de rutare.

Masca de reea
Masca de reea este un ir de 32 de bii care, n conjuncie logic cu o adres IP, va separa adresa
de reea, anulnd biii de staie.
Fiecare bit din masca de reea ce corespunde (se afl pe aceai poziie) cu un bit din cmpul de
reea va avea valoare 1, n vreme ce toi biii corespunztori cmpului de staie vor avea valoarea
zero.
Mtile de reea sunt inutile ntr-un mediu ce ofer adresare classful, deoarece simpla testare a
valorii primului octet fa de 128 i 192 ne-ar oferi toate informaiile necesare despre numrul
biilor ce aparin cmpului reea dintr-o adres IP dat. n schimb, odat cu apariia adresrii
classless, masca de reea a devenit piatra de temelie n deciziile de rutare. Reprezentarea mtilor
de reea folosit cel mai des este cea decimal, datorit similitudinii cu forma de exprimare a
adreselor IP.
O a doua form de reprezentare a mtilor de reea este sub forma unui numr ce reprezint
numrul de bii de 1 din masca de reea, aceast form de reprezentare fiind referit ca prefix de
reea.
3

Figura: Mtile de reea pentru clasele rutate


n adresarea classful exist trei dimensiuni de reele, ducnd la o utilizare extrem de ineficient a
spaiului de adrese. De exemplu: pentru 300 de staii ce trebuie s fie n acelai domeniu de
broadcast (n aceeai reea) administratorul de reea ar trebui s solicite o clas B, urmnd s
foloseasc sub 0,5% din adresele disponibile.
ntrebarea este dac n loc de o ntreag clas B nu am fi putut aloca doar jumtate de clas B,
dublnd astfel eficiena alocrii de adrese? Sau, reformulnd, dac avem clasa B 130.170.0.0, care
este jumtatea acesteia?
Pentru a njumti un spaiu de adrese, va trebui n fapt s njumtim numrul de staii, adic s
reducem cu unu numrul de bii de staie. Bitul astfel obinut va intra n componena unui nou
cmp, pe care l vom numi cmp de subreea.
Masca de reea va avea valoarea 1 att n cmpurile corespunztoare biilor de reea, ct i n
cmpurile corespunztoare biilor de subreea.
n concluzie, pentru a njumti un spaiu de adrese, trebuie s extindem masca de reea cu un bit
(cel corespunztor cmpului de subreea), iar cele dou jumti vor fi obinute fcnd acest bit o
dat 0, o dat 1.
Avnd de njumtit o clas B, cele dou jumti vor avea masca de reea /17, bitul de subreea
fiind chiar al 17-lea bit din adresa IP.
Rezultatul operaiei de njumtire este prezentat n figur :

Figura: njumtirea unei clase B


Dei modul de utilizare a unei mti de reea reiese direct din definiia acesteia, vom exemplifica
pe dou adrese ce se aflau n spaiul iniial de adrese, dar dup njumtire au ajuns n reele
diferite. Fie 130.170.32.0 i 130.170.132.0 aceste adrese:

130.

170

Prima adres

132.

10000010 10101010 10000100 00000000 AND

Masca de reea

11111111 11111111 10000000 00000000


10000010 10101010 10000000 00000000
130.

170.

128.

130.

170

32.

/17

A doua jumtate
Prima adres

10000010 10101010 00100000 00000000 AND

Masca de reea

11111111 11111111 10000000 00000000


10000010 10101010 00000000 00000000
130.

170.

0.

/17

Prima jumtate

Putem acum aloca acum pentru reeaua de 300 de staii doar jumtate de clas B, adic 32 de mii
de adrese. Dar nimic nu ne mpiedic s njumtim nc odat unul dintre spaiile de adrese
obinut, avnd astfel la dispoziie dou spaii de cte 16 mii de adrese. i, de ce nu, s mergem
mai departe cu procesul de creare de subreele pentru a obine spaii de 512 adrese.
Pentru a reprezenta 512 variante avem nevoie de 9 bii n cmpul staie. Din cei 16 bii iniiali
vom trece direct 7 bii n cmpul de subreea. Masca de reea trebuie extins cu 7 bii devenind 23,
rezultatul operaiei fiind definirea unui spaiu de adrese ce ocup doar 1/64 din spaiul iniial.

Figura: Obinerea primelor dou subreele de 512 adrese dintr-o clas B


n concluzie, subreelele au aprut n scopul eficientizrii modului de alocare a adreselor IP.
Pentru a mpri n subreele un spaiu de adrese dat, o parte din biii de staie sunt trecui ntr-un
nou cmp, cel de subreea, acesta avnd rolul de a oferi un al treilea nivel de ierarhizare a
adreselor IP.
n realitate definirea unui cmp de subreea este fcut pentru a nlesni nelegerea procesului,
neavnd o reflectare n modul de funcionare a ruterelor. Din punctul de vedere al unui ruter orice
adres IP are doar dou niveluri de ierarhizare, i anume reea i staie. Astfel procesul de creare
de subreele se traduce n transferarea unui numr de bii din cmpul staie n reea, extinderea
mtii de reea cu un numr egal cu numrul de bii transferai.
Observaii n legtura cu folosirea termenilor de reea i subreea.
5

n primul rnd, termenul de subreea pare a implica o relaie de subordonare fa de reele,


definite ca aparinnd claselelor de adrese IP. ntr-un mediu classless, nu exist nici o diferen n
modul cum ruterele sau calculatoarele trateaz adrese aparinnd unei reele sau a unei subreele.
De fapt, la ora actual, cel mai adesea prin reele se nelege totalitatea subreelelor, clasele de
adrese fiind privite ca un caz particular al acestora. Astfel putem trage concluzia c singura
diferen ntre reele i subreele este de natur strict istoric.
n al doilea rnd masca de reea este deseori apelat ca masc de subreea, ambele exprimri
referindu-se totui la acelai obiect.
Privit din punctul de vedere al modului cum funcioneaz, Internetul este definit de simbioza a
dou tipuri de protocoale de nivel reea: protocoale de rutare i protocoale rutate.
Protocoalele de rutare sunt cele ce stabilesc regulile prin care informaiile despre reele sunt
schimbate ntre rutere n scopul obinerii unei tabele de rutare adecvate topologiei.
Protocoalele rutate sunt acele protocoale responsabile pentru asigurarea unui mod de identificare
a entitilor ce particip n Internet prin stabilirea unei scheme de adresare ce trebuie s asigure
unicitatea, dar i ierarhizarea adreselor.
O rut este o regul ce cuprinde o parte de identificare i una de aciune. Partea de identificare
este compus din dou elemente: adresa reelei destinaie i masca acesteia, n vreme ce partea de
identificare poate fi exprimat prin ambele sau doar unul dintre urmtoarele elemente: adresa
urmtorului ruter (numit next hop address) i interfaa de ieire din ruter.
O tabela de rutare este o list de rute cu acces secvenial.
O clasificare a rutelor n funcie de modul n care informaia pe baza creia sunt construite rutele
le mparte n rute statice i rute dinamice.
Clasificarea rutelor n rute statice i rute dinamice se refer doar la rutele gateway, deoarece rutele
direct conectate sunt introduse automat n tabela de rutare.
Rutele statice sunt introduse manual de ctre administratorul ruterului, spre deosebire de rutele
dinamice ce necesit doar configurarea unui protocol de rutare, rutele urmnd a fi nvate
schimbnd informaii despre rutele direct conectate cu cellalte rutere.
O rut static va aprea n tabela de rutare numai atunci cnd interfaa de ieire din ruter este
configurat corect i activat. O alt limitare a folosirii rutelor statice este c schimbrile n
topologia reelei trebuie s fie actualizate manual de administrator pe ruter. Dei exist modaliti
de minimizare a efectului schimbrilor n topologie, aceste procedee duc la mrirea dimensiunii
tabelei de rutare. Exist i o latur pozitiv a incapacitii rutelor statice de a urmri schimbrile
topologice (cderea unei conexiuni de exemplu). Una dintre metodele, de atac al unei reele este
atacarea rutrii dinamice, i anume introducerea unui ruter ntr-un mediu multiacces ce va oferi o
rut foarte bun, "convingnd" astfel toate cellalte rutere s trimit traficul ctre el. n plus, orice
protocol de rutare consum mai mult sau mai puin band pentru ca ruterele s-i poat
actualiza tabelele de rutare. Apoi, odat primit, informaia de rutare trebuie prelucrat nainte de
a fi introdus n tabela de rutare, unele protocoale de rutare consumnd cantiti semnificative de
timp de procesor sau de memorie.
6

Rutarea static nu are cerine de lime de band, timp de procesor sau memorie (n afar de
memoria efectiv ocupat de tabela de rutare) i, dei introducerea manual de informaii poate
prea o metod arhaic de administrare, deseori rutarea static este mult mai potrivit pentru
ruterele de la periferia Internetului dect rutarea dinamic.
n concluzie, rutele statice nu sunt o soluie depit de configurare a ruterelor, iar viitorul nu pare
s anune nlocuirea rutrii statice cu rutarea dinamic. Rutarea static va continua s fie soluia
optim pentru reelele cu un grad redus de complexitate sau a reelelor stub (reele cu o singur
conexiune la Internet).
Protocolul IP este unul dintre protocoalele de rutare, fiind n fapt singurul protocol rutabil folosit
peste Internet ncepnd cu anii 2000.
Alte protocoale de rutare sunt AppleTalk i IPX, i dei implementrile soluiilor de conectare
peste Internet bazate pe aceste protocoale sunt rare, cele dou protocoale rmn nc destul de
folosite n reelele locale.

UDP (User Datagram Protocol)


este un protocol de nivel transport construit special pentru a oferi un serviciu de comunicare ct
mai simplu peste IP.
Cteva caracteristici ale UDP-ului sunt:

este un serviciu de tip datagram: cererile de trimitere de date primite de la nivelul


superior sunt tratate independent;
comunicarea are loc fr stabilirea unei legturi (conection-less): nu exist mecanisme de
stabilire i terminare a unei conexiuni deoarece toate datele sunt trimise n cadrul unui
singur pachet IP, care eventual va fi supus fragmentrii;
nu se garanteaz ajungerea ala destinaie a datelor (best effort): ajungerea la destinaie nu
este anunat sursei;
datele transportate sunt protejate de o sum de control (introdus ca opional iniial ea
este trecut ca necesar(must) n RFC 1122 care stabilete modul de comportare al
clienilor n Internet);

Cteva utilizri tipice ale UDP-ului:


servicii de rezolvare a numelor (DNS): deoarece ntrebrile i rspunsurile scurte pot fi
mai eficient implementate peste UDP;
fluxuri multimedia: deoarece mecanismele complicate de control al fluxului ale TCP-ului
ar deprecia interactivitatea;
server de fiiere (NFS): deoarece acest tip de aplicaii sunt n general rulate n reele locale
cu performane ridicate care nu necesit mecanismele TCP;
managementul reelei (SNMP);
protocoale de rutare (RIP).

Caracteristici TCP
Deoarece protocolul IP este de tip datagram utilizarea lui direct n aplicaii, care in general au
nevoie de conexiuni sigure, este mult prea anevoioas. Din aceste motive peste IP a fost construit
un alt protocol, TCP (transmission control protocol), care corecteaz aceste probleme.
Alturi de protocolul UDP, TCP se situeaz pe nivelul transport n ierarhia de protocoale, deci
ntre nivelul aplicaie i nivelul reea. Dar, cu toate c se bazeaz pe acelai protocol (IP) ca i
UDP, TCP furnizeaz ctre nivelul aplicaie cu totul alt tip de servicii, servicii orientateconexiune, sigure, de tip flux de octei.
Termenul de orientat-conexiune presupune c, ntre cele dou aplicaii care comunic utiliznd
TCP, trebuie s se stabileasc o conexiune TCP nainte ca transferul de date s aib loc. Aceast
conexiune nu este efectiv una fizic ci virtual, asemntor cum se ntmpl n sistemul de
telefonie clasic: cineva formeaz un numr i abia n momentul n care cealalt persoan
rspunde se poate ncepe conversaia. Fiind o conexiune host-la-host, nu exist noiunile de
broadcast sau multicast.
Transferul sigur de date este asigurat n urmtorul mod:

Datele sunt mprite n buci a cror dimensiune optim e determinat de TCP, spre
deosebire de UDP care trimite datagrame UDP corespunztoare cu dimensiunea datelor
primite de la nivelul aplicaie. Unitatea de date trimis de TCP ctre nivelul reea poart
numele de segment.
Cnd TCP trimite un segment pornete un timer i dac nu se primete confirmarea
segmentului respectiv ntr-un anumit timp, l retransmite.
n momentul n care se primete un segment TCP trimite o confirmare (din motive de
eficien aceasta poate fi amnat un anumit interval de timp).
n headerul TCP este meninut o sum de control pentru detectarea modificrilor n date.
Dac se recepioneaz un segment corupt TCP l ignor urmnd s fie retransmis datorit
neprimirii confirmrii.
Deoarece segmentele TCP sunt transmise mai departe ncapsulate n datagrame IP iar
acestea pot ajunge n orice ordine, segmentele TCP pot ajunge n alt ordine dect cea n
care au fost trimise. De aceea, la destinaie TCP-ul trebuie s se foloseasc de numere de
secven pentru a reordona eventual segmentele nainte de a le livra ctre nivelul aplicaie.
De asemenea, TCP trebuie s asigure ignorarea duplicatelor.
TCP asigur controlul fluxului n condiiile n care viteza de trimitere a datelor de la surs
poate fi mult prea mare dect capacitatea de prelucrare de la destinaie.

Serviciul oferit de TCP este de tip flux de octei deoarece ofer garanii c fluxul de date trimis de
surs va fi livrat fr modificri la destinaie. Comparativ, UDP-ul produce pentru fiecare transfer
cerut de nivelul aplicaie, un pachet IP (care ulterior poate fi supus fragmentrii) care, dac ajunge
la destinaie corect va fi livrat direct nivelului aplicaie fr a garanta n vreun fel ordinea.

Iniierea i terminarea unei conexiuni TCP


TCP este un protocol orientat conexiune, deci presupune stabilirea unei ci virtuale ntre surs i
destinaie.
8

Protocolul de iniiere
Modul de transmisie n cazul protocolului TCP este full-duplex, deci sunt transmise date simultan
n ambele direcii. Aceasta presupune c cel care iniiaz conexiunea trebuie s primeasc
aprobarea celuilalt capt nainte de nceperea transferului de date: sursa i anun intenia de a
iniia o conexiune, destinaia trimite un pachet cu confirmarea cererii i un pachet de iniiere a
conexiunii de la el la surs iar apoi sursa confirm cererea primit de la destinaie. Paii 2 i 3 pot
fi realizai prin trimiterea unui singur pachet, de aceea protocolul de iniiere este cunoscut sub
numele de three-way handshake.
n cadrul protocolului de iniiere exist 2 tipuri de cereri de iniiere: cerere activ (active open),
iniiat de clientul ce dorete s stabileasc conexiunea cu serverul i cerere pasiv (passive
open), din partea serverului.
Cei 3 pai sunt:
1. Clientul trimite un segment cu flag-ul SYN setat (SYN - iniierea conexiunii )i care
conine portul surs, portul de la destinaie i numrul de secven generat iniial (ISN) de
la care se vor numerota octeii de la client ctre server. Opional se pot stabili parametrii
conexiunii prin setarea lungimii maxime a segmentelor (MSS) dispus s le primeasc de la
server, factorului de scalare a ferestrei. Acest prim segment nu conine nici un parametru
de confirmare i de asemenea nu are rost s conine s seteze dimensiunea ferestrei.
2. Al doilea segment e trimis de server i are un rol dublu: confirm segmentul primit de la
client prin setarea flag-ului ACK (ACK - cmpul de confirmare este valid) i completeaz
numrul de secven cu numrul de secven primit plus 1 i, al doilea rol, iniializeaz
conexiunea de la el ctre client prin setarea flag-ului SYN i generarea unui numr de
secven iniial ce va fi folosit n numerotarea octeilor de la server spre client. Pe lng
aceasta trebuie s conin dimensiunea ferestrei i opional, poate seta factorul de scalare i
dimensiunea maxim a segmentului acceptat.
3. Clientul trimite un segment cu confirmarea cererii din partea serverului (ACK setat +
completeaz numrul confirmat cu numrul de secvena primit + 1). Ca i n cazul pasului
2, trebuie s seteze dimensiunea ferestrei. Acest pachet poate conine date.

Deschiderea simultan
Se poate ntmpla ca uneori cele dou capete care vor s comunice s ncerce s stabileasc
conexiunea simultan. n acest caz, dup ce fiecare a trimis segmentul de iniiere (iniiere activ),
ambele vor trimite un segment cu SYN + ACK i se va stabili o singur conexiune, nu dou.

Protocolul de terminare
Oricare dintre cele dou pri poate solicita nchiderea conexiunii, dar conexiunea fiind fullduplex, transferul de date n cellalt sens poate continua (aceast situaie e denumit half-close).
O nchidere complet a unei conexiuni TCP presupune urmtorii pai:
1. Clientul trimite un segment cu flag-ul FIN (FIN - nchiderea conexiunii) activat, solicitnd
nchiderea conexiunii.

2. Serverul trimite un segment ACK confirmnd primirea cererea. Numrul de confirmare se


completeaz normal, ca numrul de secven primit + 1
3. Serverul continu s trimit date ctre client i cnd dorete s nchid i el conexiunea
trimite un segment cu FIN activat.
4. Clientul trimite un pachet ACK confirmnd nchiderea conexiunii.
Cel care iniiaz primul procedura de nchidere (trimite primul FIN) realizeaz o nchidere activ
(active close) iar cellalt capt o nchidere pasiv (passive close). n mod normal cel care
realizeaz iniierea activ va fi primul ce va trimite FIN, dar oricare dintre cei doi poate nchide
activ conexiunea.

Terminarea simultan
n mod similar cu deschiderea simultan exist posibilitatea ca ambele capete ale conexiunii TCP
s iniieze simultan procedura de nchidere a conexiunii. n acest caz ambele pri vor trimite FIN
i vor atepta primirea unui ACK. n continuare fiecare va primi cererea de terminare i va trimite
ACK. Se observ c numrul de segmente transferate pentru realizarea nchiderii conexiunii (4
segmente) este acelai ca la terminarea normal.

Resetarea conexiunii
Exist situaii n care TCP dorete resetarea conexiunii. De exemplu dac se solicit iniierea unei
conexiuni la un port inexistent. n acest caz cealalt parte va trimite un segment cu bitul RST
(RST - se dorete resetarea conexiunii) setat pentru a anula solicitarea. O alt situaie este atunci
cnd se constat c celalalt capt al conexiunii nu rspunde un anumit timp (timeout).

10

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