Astăzi, vom începe să ne concentrăm pe TCP. Mai devreme în capitolul despre straturi, am menționat un punct important. La stratul de rețea și mai jos, este vorba mai mult de gazdă pentru a gazdă conexiuni, ceea ce înseamnă că computerul dvs. trebuie să știe unde este un alt computer pentru a vă conecta la acesta. Cu toate acestea, comunicarea într -o rețea este adesea o comunicare interprocesă, mai degrabă decât o comunicare intermachină. Prin urmare, protocolul TCP introduce conceptul de port. Un port poate fi ocupat printr -un singur proces, care oferă o comunicare directă între procesele de aplicare care rulează pe diferite gazde.
Sarcina stratului de transport este modul de furnizare a serviciilor de comunicare directă între procesele de aplicare care rulează pe diferite gazde, deci este cunoscut și ca un protocol end-to-end. Stratul de transport ascunde detaliile de bază ale rețelei, permițând procesului de aplicare să vadă ca și cum ar exista un canal logic de comunicare end-to-end între cele două entități ale stratului de transport.
TCP reprezintă protocolul de control al transmisiei și este cunoscut ca un protocol orientat către conexiune. Aceasta înseamnă că înainte de o aplicație poate începe să trimită date către celălalt, cele două procese trebuie să facă o strângere de mână. Strângerea de mână este un proces conectat logic care asigură transmiterea fiabilă și recepția ordonată a datelor. În timpul strângerii de mână, se stabilește o conexiune între gazdele sursă și destinație, schimbând o serie de pachete de control și fiind de acord cu privire la unii parametri și reguli pentru a asigura transmiterea de date cu succes.
Ce este TCP? (MyLinking'sRețea de apăsareşiBroker de pachete de rețeaAr putea prelucra atât pachetele TCP sau UDP)
TCP (Protocolul de control al transmisiei) este un protocol de comunicare a stratului de transport bazat pe conexiune, orientat către conexiune.
Orientată către conexiune: Orientat către conexiune înseamnă că comunicarea TCP este unu-la-unu, adică comunicarea de la punct la capăt la capăt, spre deosebire de UDP, care poate trimite mesaje către mai multe gazde în același timp, astfel încât o comunicare unu-la-multe nu poate fi realizată.
De încredere: Fiabilitatea TCP asigură că pachetele sunt livrate în mod fiabil la receptor, indiferent de modificările legăturii de rețea, ceea ce face ca formatul pachetului de protocol al TCP să fie mai complex decât cel al UDP.
Bazat pe byte-stream: Natura TCP bazată pe byte-stream permite transmiterea mesajelor de orice dimensiune și garantează comanda mesajului: Chiar dacă mesajul anterior nu a fost complet primit și chiar dacă au fost primiți octeți ulterior, TCP nu le va livra la stratul de aplicație pentru procesare și va renunța automat la pachetele duplicate.
Odată ce gazda A și gazda B au stabilit o conexiune, aplicația trebuie să utilizeze doar linia de comunicare virtuală pentru a trimite și primi date, asigurând astfel transmiterea datelor. Protocolul TCP este responsabil pentru controlul sarcinilor, cum ar fi stabilirea conexiunii, deconectarea și deținerea. Trebuie menționat că aici spunem că linia virtuală înseamnă doar pentru a stabili o conexiune, conexiunea protocolului TCP indică doar că cele două părți pot începe transmiterea datelor și pentru a asigura fiabilitatea datelor. Nodurile de rutare și transport sunt gestionate de dispozitivele de rețea; Protocolul TCP în sine nu este preocupat de aceste detalii.
O conexiune TCP este un serviciu complet-duplex, ceea ce înseamnă că gazda A și gazda B poate transmite date în ambele direcții într-o conexiune TCP. Adică, datele pot fi transferate între gazda A și gazda B într -un flux bidirecțional.
TCP stochează temporar datele în bufferul de trimitere al conexiunii. Acest tampon de trimitere este unul dintre cache-urile configurate în timpul strângerii de mână cu trei căi. Ulterior, TCP va trimite datele din cache -ul de trimitere la cache -ul de primire a gazdei de destinație la momentul corespunzător. În practică, fiecare coleg va avea un cache de trimitere și un cache de primire, așa cum se arată aici:
Bufferul de trimitere este o zonă de memorie menținută de implementarea TCP pe partea expeditorului care este utilizată pentru a stoca temporar datele care trebuie trimise. Când strângerea de mână cu trei căi este efectuată pentru a stabili o conexiune, cache-ul de trimitere este configurat și utilizat pentru stocarea datelor. Bufferul de trimitere este ajustat dinamic în conformitate cu congestionarea rețelei și feedback -ul receptorului.
Un tampon de recepție este o zonă de memorie menținută de implementarea TCP pe partea de primire, care este utilizată pentru a stoca temporar datele primite. TCP stochează datele primite în memoria cache de recepție și așteaptă ca aplicația superioară să le citească.
Rețineți că dimensiunea cache -ului de trimitere și a recepției este limitată, atunci când memoria cache este plină, TCP poate adopta unele strategii, cum ar fi controlul congestiei, controlul fluxului etc., pentru a asigura transmiterea fiabilă a datelor și stabilitatea rețelei.
În rețelele de calculatoare, transmiterea datelor între gazde se realizează prin intermediul unor segmente. Deci, ce este un segment de pachete?
TCP creează un segment TCP sau un segment de pachete, împărțind fluxul de intrare în bucăți și adăugând anteturi TCP la fiecare bucată. Fiecare segment poate fi transmis doar pentru o perioadă limitată de timp și nu poate depăși dimensiunea maximă a segmentului (MSS). Pe jos în jos, un segment de pachete trece prin stratul de legătură. Stratul de legătură are o unitate de transmisie maximă (MTU), care este dimensiunea maximă a pachetului care poate trece prin stratul de legătură de date. Unitatea de transmisie maximă este de obicei legată de interfața de comunicare.
Deci, care este diferența dintre MSS și MTU?
În rețelele de calculatoare, arhitectura ierarhică este foarte importantă, deoarece ține cont de diferențele dintre diferitele niveluri. Fiecare strat are un nume diferit; În stratul de transport, datele se numesc segment, iar în stratul de rețea, datele se numesc pachet IP. Prin urmare, unitatea maximă de transmisie (MTU) poate fi considerată ca dimensiunea maximă a pachetului IP care poate fi transmisă de stratul de rețea, în timp ce dimensiunea maximă a segmentului (MSS) este un concept de strat de transport care se referă la cantitatea maximă de date care poate fi transmisă de un pachet TCP la un moment dat.
Rețineți că atunci când dimensiunea maximă a segmentului (MSS) este mai mare decât unitatea de transmisie maximă (MTU), fragmentarea IP va fi efectuată la stratul de rețea, iar TCP nu va împărți datele mai mari în segmente adecvate pentru dimensiunea MTU. Va exista o secțiune pe stratul de rețea dedicat stratului IP.
Structura segmentului de pachete TCP
Să explorăm formatul și conținutul anteturilor TCP.
Numărul secvenței: Un număr aleatoriu generat de computer atunci când conexiunea este stabilită ca valoare inițială atunci când este stabilită conexiunea TCP, iar numărul secvenței este trimis către receptor prin intermediul pachetului Syn. În timpul transmiterii datelor, expeditorul crește numărul secvenței în funcție de cantitatea de date trimise. Receptorul judecă ordinul datelor în funcție de numărul secvenței primite. Dacă datele sunt aflate în afara ordinului, receptorul va reordona datele pentru a asigura ordinea datelor.
Număr de recunoaștere: Acesta este un număr de secvență utilizat în TCP pentru a recunoaște primirea datelor. Acesta indică numărul de secvență al următoarelor date pe care expeditorul se așteaptă să -l primească. Într -o conexiune TCP, receptorul stabilește ce date au fost primite cu succes pe baza numărului de secvență al segmentului de pachete de date primite. Când receptorul primește cu succes datele, acesta trimite un pachet ACK către expeditor, care conține numărul de confirmare de confirmare. După ce a primit pachetul ACK, expeditorul poate confirma că datele înainte de a recunoaște numărul de răspuns au fost primite cu succes.
BIT -urile de control ale unui segment TCP includ următoarele:
Bit ack: Când acest bit este 1, înseamnă că câmpul de răspuns de confirmare este valabil. TCP specifică faptul că acest bit trebuie să fie setat la 1, cu excepția pachetelor SYN atunci când conexiunea este stabilită inițial.
RST BIT: Când acest bit este 1, indică faptul că există o excepție în conexiunea TCP, iar conexiunea trebuie să fie obligată să fie deconectată.
Syn bit: Când acest bit este setat la 1, înseamnă că conexiunea trebuie să fie stabilită și valoarea inițială a numărului de secvență este setată în câmpul de număr de secvență.
Fin: Când acest bit este 1, înseamnă că nu vor fi trimise mai multe date în viitor și se dorește conexiunea.
Diferitele funcții și caracteristici ale TCP sunt întruchipate de structura segmentelor de pachete TCP.
Ce este UDP? (MyLinking'sRețea de apăsareşiBroker de pachete de rețeaar putea prelucra atât pachetele TCP sau UDP)
Protocolul de date de utilizator (UDP) este un protocol de comunicare fără conexiune. În comparație cu TCP, UDP nu oferă mecanisme complexe de control. Protocolul UDP permite aplicațiilor să trimită direct pachete IP încapsulate fără a stabili o conexiune. Când dezvoltatorul alege să utilizeze UDP în loc de TCP, aplicația comunică direct cu IP.
Numele complet al protocolului UDP este protocolul de date de utilizator, iar antetul său este de doar opt octeți (64 de biți), ceea ce este foarte concis. Formatul antetului UDP este următorul:
Porturi de destinație și sursă: Scopul lor principal este de a indica ce proces UDP ar trebui să trimită pachete.
Dimensiunea pachetului: Câmpul de dimensiune a pachetului deține dimensiunea antetului UDP plus dimensiunea datelor
Checksum: Proiectat pentru a asigura livrarea fiabilă a anteturilor UDP și a datelor Rolul sumului de control este de a detecta dacă a avut loc o eroare sau o corupție în timpul transmiterii unui pachet UDP pentru a asigura integritatea datelor.
Diferențe între TCP și UDP în MyLinking'sRețea de apăsareşiBroker de pachete de rețeaAr putea prelucra atât pachetele TCP sau UDP
TCP și UDP sunt diferite în următoarele aspecte:
Conexiune: TCP este un protocol de transport orientat către conexiune care necesită stabilirea unei conexiuni înainte de transferul datelor. UDP, pe de altă parte, nu necesită o conexiune și poate transfera date imediat.
Obiect de serviciu: TCP este un serviciu unu la unu în două puncte, adică o conexiune are doar două puncte finale pentru a comunica între ele. Cu toate acestea, UDP acceptă o comunicare interactivă unu-la-unu, unu-la-many și multe la mulți, care poate comunica cu mai multe gazde în același timp.
Fiabilitate: TCP oferă serviciul de furnizare a datelor în mod fiabil, asigurându-se că datele sunt fără erori, fără pierderi, non-duplicat și ajung la cerere. UDP, pe de altă parte, face cel mai bun efort și nu garantează o livrare fiabilă. UDP poate suferi de pierderi de date și alte situații în timpul transmiterii.
Controlul congestiei, controlul debitului: TCP are mecanisme de control al congestiei și control al fluxului, care pot ajusta rata de transmisie a datelor în funcție de condițiile de rețea pentru a asigura securitatea și stabilitatea transmiterii datelor. UDP nu are mecanisme de control al congestiei și control al fluxului, chiar dacă rețeaua este foarte congestionată, nu va face ajustări la rata de trimitere a UDP.
Antetul deasupra capului: TCP are o lungime lungă a antetului, de obicei 20 de octeți, ceea ce crește atunci când sunt utilizate câmpuri de opțiune. UDP, pe de altă parte, are o lovitură de cap fixă de doar 8 octeți, astfel încât UDP are o lovitură de cap inferioară.
Scenarii de aplicații TCP și UDP:
TCP și UDP sunt două protocoale diferite ale straturilor de transport și au unele diferențe în scenariile de aplicare.
Deoarece TCP este un protocol orientat către conexiune, acesta este utilizat în principal în scenarii în care este necesară o livrare fiabilă de date. Unele cazuri de utilizare obișnuită includ:
Transfer de fișiere FTP: TCP se poate asigura că fișierele nu sunt pierdute și corupte în timpul transferului.
Http/https: TCP asigură integritatea și corectitudinea conținutului web.
Deoarece UDP este un protocol fără conexiune, nu oferă garanție de fiabilitate, dar are caracteristicile eficienței și în timp real. UDP este potrivit pentru următoarele scenarii:
Trafic cu pachete joase, cum ar fi DNS (Sistem de nume de domeniu): Interogările DNS sunt de obicei pachete scurte, iar UDP le poate completa mai repede.
Comunicare multimedia, cum ar fi video și audio: Pentru transmisia multimedia cu cerințe ridicate în timp real, UDP poate oferi o latență mai mică pentru a se asigura că datele pot fi transmise în timp util.
Comunicare de difuzare: UDP acceptă o comunicare unu la mulți și mulți la mulți și poate fi utilizat pentru transmiterea mesajelor de difuzare.
Rezumat
Astăzi am aflat despre TCP. TCP este un protocol de comunicare a stratului de transport bazat pe byte-stream orientat pe conexiune. Acesta asigură transmiterea fiabilă și recepția ordonată a datelor prin stabilirea conexiunii, strângerii de mână și confirmării. Protocolul TCP folosește porturi pentru a realiza comunicarea dintre procese și oferă servicii de comunicare directă pentru procesele de aplicare care rulează pe diferite gazde. Conexiunile TCP sunt full-duplex, permițând transferuri de date bidirecționale simultane. În schimb, UDP este un protocol de comunicare orientat fără conexiune, care nu oferă garanții de fiabilitate și este potrivit pentru unele scenarii cu cerințe ridicate în timp real. TCP și UDP sunt diferite în modul de conectare, obiect de serviciu, fiabilitate, controlul congestiei, controlul fluxului și alte aspecte, iar scenariile lor de aplicare sunt, de asemenea, diferite.
Timpul post: 03-2024 DEC