Transmission Control Protocol

De la Wikipedia, enciclopedia liber?

Transmission Control Protocol (sau TCP , in traducere liber? din englez? Protocolul de Control al Transmisiei ) este un protocol folosit de obicei de aplica?ii care au nevoie de confirmare de primire a datelor . Efectueaz? o conectare virtual? full duplex intre dou? puncte terminale, fiecare punct fiind definit de c?tre o adres? IP ?i de c?tre un port TCP.

Transmission Control Protocol (TCP) este unul dintre protocoalele de baz? ale suitei de protocoale Internet. TCP este unul dintre cele dou? componente originale ale suitei (celalalt fiind Protocolul Internet, sau IP), astfel incat intreaga suita este frecvent men?ionat? ca stiva TCP/IP . In special, TCP ofer? incredere, asigura livrarea ordonata a unui flux de octe?i de la un program de pe un computer la alt program de pe un alt computer aflat in re?ea. Pe lang? sarcinile sale de gestionare a traficului, TCP controleaz? m?rimea segmentului de date, debitul de informa?ie, rata la care se face schimbul de date, precum ?i evitarea congestion?rii traficului de re?ea. Printre aplica?iile cele mai uzuale ce utilizeaz? TCP putem enumera World Wide Web (WWW), posta electronica ( e-mail ) ?i transferul de fi?iere (FTP).

Func?ii oferite re?elei [ modificare | modificare surs? ]

Protocolul corespunde nivelului transport din stiva TCP/IP . TCP ofer? un serviciu de comunicare la un nivel intermediar intre un program de aplica?ie ?i Protocolul Internet (IP). Atunci cand un program de aplicare dore?te sa trimit? o bucat? mare de date pe Internet, in loc sa fragmenteze datele in pachete IP de dimensiuni mici ?i sa emit? o serie de cereri pentru protocolul IP, software-ul poate emite o cerere unic? pentru TCP ?i sa lase protocolul TCP sa se ocupe de detaliile de manipulare.

Protocolul Internet (IP) se ocupa cu schimbul de blocuri de informa?ii numite pachete. Un pachet este o secven?? de octe?i ?i const? dintr-un antet, urmat? de sec?iunea de date propriu-zise. Antetul furnizeaz? informa?ii despre destina?ia pachetului ?i, op?ional, informa?ii de rutare utilizate pentru transmitere, pan? cand acesta ajunge la destina?ia sa final?. Sec?iunea de date con?ine informa?ia necesara pe care IP trebuie sa o transmit?.

Datorit? congestiilor din re?ea, inc?rcarea traficului, sau alte comportamente imprevizibile, pachetele IP pot fi pierdute, duplicate, sau livrate in alta ordine la destina?ie. TCP-ul detecteaz? aceste probleme, solicita retransmisia pachetelor pierdute, rearanjeaz? pachetele in ordine, ajut? la minimizarea traficul din re?ea in vederea reducerii apari?iei altor probleme. Odat? ce la recep?ie, protocolul TCP termina de reasamblat secventa de octe?i transmisa ini?ial, o paseaz? mai sus c?tre programul de aplica?ie. Prin urmare, TCP va ascunde nivelului aplica?ie detaliile de transmise specifice nivelului inferior, re?ea.

TCP este folosit pe scar? larg? de multe de aplica?ii de Internet cele mai populare, inclusiv a World Wide Web (WWW), E-mail, File Transfer Protocol (FTP), Secure Shell, de tip peer-to-peer file sharing, precum ?i unele aplica?ii media de streaming.

TCP este optimizat, mai degrab?, pentru livrarea exacta decat livrarea la timp a datelor, ?i prin urmare, TCP inregistreaz? uneori, intarzieri relativ mari de timp (de ordinul secundelor), in timpul de a?teptare pentru unele mesaje ce sosesc in alta ordine sau pentru retransmisia de mesaje pierdute. Acesta nu este deosebit de potrivit pentru aplica?ii in timp real, cum ar fi Voice over IP. Pentru acest gen de aplica?ii, sunt recomandate protocoale cum ar fi Real-Time Transport Protocol (RTP), ce ruleaz? peste User Datagram Protocol ( UDP ).

TCP este un serviciu de incredere care garanteaz? livrarea unui flux de date trimis de la o gazd? la alta f?r? duplicarea sau pierderea de date. Din moment ce transferul de pachete de date pe re?ea, nu este sigur, o tehnic? cunoscut? sub numele de confirmare pozitiv? cu retransmitere este folosita pentru a garanta fiabilitatea transferurilor de pachete. Aceasta tehnica fundamentala, consta in faptul ca receptorul r?spunde cu un mesaj de confirmare ( acknowledgement ) de fiecare data cand prime?te un pachet de date. Expeditorul p?streaz? o copie a fiecarui pachet trimis, ?i a?teapt? confirmarea inainte de a trimite pachetul urm?tor. Expeditorul p?streaz?, de asemenea, ?i un timer, atunci cand pachetul a fost trimis, ?i va relua retransmiterea pachetului in cazul in care timer-ul expira iar confirmarea recep?iei intarzie sa apar?. Contorul de timp este necesar in cazul in care un pachet se pierde sau este deteriorat.

TCP const? intr-un set de reguli: pentru protocol, el este totdeauna asociat cu Protocolul Internet, iar pentru Protocolul Internet, reprezinta o metoda de a trimite datele, pe baza unui " sir de unit??i de mesaj " intre calculatoare prin Internet. In timp ce IP-ul se ocupa doar de livrarea efectiva a datelor, TCP-ul are grija ca un mesaj sa fie imp?r?it in unit??i individuale de date, numite segmente , ?i sa tina evidenta segmentelor transmise, pentru dirijarea eficient? prin intermediul re?elei. De exemplu, cand un fi?ier HTML este trimis de la un server web, stratul software TCP de pe acel server imparte secven?a de octe?i al acelui fi?ier, in segmente ?i le transmite in mod individual c?tre stratul software IP (Nivelul Internet). Nivelul Internet incapsuleaz? fiecare segment TCP intr-un pachet IP prin ad?ugarea unui antet, care include (printre alte date) adresa IP destina?ie. Chiar dac? fiecare pachet are aceea?i adres? de destina?ie, acestea pot fi rutate pe c?i diferite prin intermediul re?elei. In cazul in care programul client pe computerul destina?ie le prime?te, stratul TCP (Nivelul Transport) reasambleaz? segmentele individuale asigurandu-se totodat? de ordonarea corecta ?i f?r? erori a acestora, inainte de a fi livrate c?tre nivelul aplica?ie.

Mod de lucru [ modificare | modificare surs? ]

Modul de operare al protocolului TCP implica existenta a trei faze. In prima faza, conexiunea trebuie stabilita ( englez? Connection establishement ), urmand un proces de confirmare pe baza mai multor pa?i. Imediat ce conexiunea a fost realizata, urmeaz? transferul datelor ( englez? Data transfer ). Odat? ce transferul datelor s-a incheiat, conexiunea trebuie terminata ( englez? Connection termination ) in ideea de a inchide calea virtuala ?i de a elibera resursele hardware/software implicate in proces.

O conexiune TCP implica mai multe st?ri ; cateva dintre ele sunt descrise mai jos:

  • LISTEN - in cazul unui server se a?teapt? o solicitare din partea unui client
  • SYN-SENT - se a?teapt? din partea nodului pereche trimiterea unui segment TCP cu flagurile de SYN ?i ACK setate (starea este specifica clien?ilor ce ruleaz? protocolul TCP)
  • SYN-RECEIVED - a?teapt? din partea nodului pereche a confirm?rii ca r?spuns la confirmarea de conectare trimisa c?tre acesta (stare specifica serverelor cu TCP)
  • ESTABLISHED - portul este preg?tit pentru a trimite/primi date c?tre/dinspre nodul pereche
  • FIN-WAIT-1 - Serverul a?teapt? din partea procesul aplica?ie propriu, indica?ia de preg?tire a inchiderii conexiunii
  • FIN-WAIT-2 - clientul a?teapt? recep?ia segmentului TCP de finalizare a conexiunii (aceasta indica faptul ca serverul va demara faza de inchidere a conexiunii )
  • CLOSE WAIT - serverul prime?te notificare din partea aplica?iei ca s-a incheiat procesul de inchidere; el va informa clientul prin trimiterea unui segment de finalizare
  • LAST-ACK - Indica faptul ca serverul se afla in procesul de transmitere a segmentului de finalizare a conexiunii
  • TIME-WAIT - reprezinta starea de a?teptare a unui timp ceva mai lung (aproximativ 4 minute, in concordanta cu RFC 793 ) ca o metoda de asigurare a faptului ca nodul pereche a primit confirmarea de terminare a conexiunii.
  • CLOSED - Conexiunea este inchisa

Porturile TCP [ modificare | modificare surs? ]

TCP utilizeaz? no?iunea de numere de port ( englez? port numbers ) pentru a identifica trimiterea ?i recep?ia aplica?iilor punctelor finale ( end-points ) de la o gazd?, sau a prizelor de Internet ( Internet sockets ). Fiecare parte a unei conexiuni TCP are asociat un num?r de port pe 16 bi?i, f?r? semn (0-65535) rezervat pentru expedierea sau primirea datelor de aplica?ie. Sosirea pachetelor de date TCP sunt identificate ca apar?inand unei anumite conexiuni TCP, dup? priza sa ( englez? socket ), care este o combina?ie dintre adresa gazdei surs?, portul surs?, adresa gazdei destina?ie, ?i portul de destina?ie. Aceasta inseamn? c? un computer server poate sus?ine pentru o multitudine de clien?i, simultan mai multe servicii per client, atat timp cat fiecare client are grija de a ini?ia simultan mai multe conexiuni c?tre un port de destina?ie din porturi surs? diferite.

Numerele de porturi sunt clasificate in trei categorii de baz?: bine-cunoscute , inregistrate , precum ?i dinamice/private . Porturile "bine-cunoscute" sunt atribuite de c?tre Internet Assigned Numbers Authority (IANA) ?i sunt, de obicei utilizate de nivele sistem sau procese r?d?cin?. Aplica?iile bine cunoscute care ruleaz? ca servere ?i care asculta in mod pasiv pentru conexiuni, de obicei folosesc aceste porturi. Cateva exemple includ: FTP (20 ?i 21), SSH (22), Telnet (23), SMTP (25) ?i HTTP (80). Porturile inregistrate sunt de obicei utilizate de aplica?ii ale utilizatorului final, ca porturi sursa efemere atunci cand contacteaz? servere, dar pot identifica, de asemenea, anumite servicii care au fost inregistrate de c?tre o ter?? parte. Porturile dinamice/private pot fi, de asemenea, utilizate de aplica?ii ale utilizatorul final, dar acest lucru este mai pu?in frecvent. Porturile dinamice/private nu-?i au nici un sens in afara unei conexiuni TCP de aceea e ceva normal, sigur.

Bibliografie [ modificare | modificare surs? ]

  • Andrew S. Tannenbaum ("2004"). Retele de calculatoare . Editura Byblos.   Verifica?i datele pentru: |date= ( ajutor )
  • CCNA - Ghid de studiu independent . Editura All. "2007".   Verifica?i datele pentru: |date= ( ajutor )

Vezi ?i [ modificare | modificare surs? ]