Transmission Control Protocol (TCP) — mis see on ja kuidas see töötab

TCP — mis see on ja kuidas see töötab: selge ja praktiline juhend TCP toimimisest, andmete edastusest, vigade kontrollist ja võrgu koormuse juhtimisest.

Autor: Leandro Alegsa

Transmission Control Protocol (TCP) on üks Interneti protokollide paketi peamistest protokollidest. TCP on osa populaarsest "TCP/IP" kombinatsioonist, mida kasutatakse Internetis. Internetiprotokoll ehk IP tagab, et andmed jõuavad Internetis õigesse kohta. Seejärel hoolitseb TCP selle eest, et andmed satuksid õiges järjekorras ja ükski neist ei jääks puudu. TCP aitab ka kontrollida internetiliiklust, et see ei muutuks ülekoormatuks. Need protokollid, mis on justkui keeled, mida arvutid kasutavad, on loodud nii, et iga arvuti ja iga programm (näiteks veebibrauser või e-posti klient) saab neid kasutada.

Kuidas TCP töötab – põhimõtted

TCP on ühenduspõhine ja usaldusväärne transpordikiht. Enne andmete saatmist loovad saatja ja vastuvõtja omavahel ühenduse ning lõpetavad selle pärast andmevahetust. Peamised mehhanismid, mis tagavad töökindluse ja järjekorra:

  • Kolmekäiguline käepigistus (three-way handshake) – enne andmete saatmist vahetatakse SYN, SYN-ACK ja ACK paketid, et luua ühendus ja sünkroniseerida sekvensinumbrid.
  • Sekventsinumbrid ja kinnitused (ACK) – iga TCP segment kannab sekventsinumbrit; vastuvõtja kinnitab vastu võetud andmeid ACK-iga, mis võimaldab saatjal teada, mis on kohale jõudnud.
  • Uuesti edastamine – kui kinnitust ei tule teatud aja jooksul, saadab saatja andmepaketi uuesti.
  • Voohaldus (flow control) – vastuvõtja teatab saatjale oma vastuvõtuvõime suurusest (akna suurus), et vältida ülekoormust kliendi poolelt.
  • Raskuskoormuse juhtimine (congestion control) – TCP reguleerib saatmise kiirust võrgu seisundi põhjal (näiteks algoritmid: slow start, congestion avoidance, fast retransmit, fast recovery), et vältida ruuteri- ja linkide ülekoormust.

Tähtsamad tehnilised detailid

  • Segmentimine – suured andmehulga pakid jagatakse väiksemateks segmentideks vastavalt võrgus lubatud suurusele (MTU), iga segment kannab TCP päist ja andmeid.
  • TCP päis sisaldab olulisi välju nagu allikaport ja sihtport, sekventsinumber, kinnitusnumber (ACK), akna suurus (window), lipud (SYN, FIN, RST, PSH, ACK, URG) ning valikulisi välju (nt MSS, Window Scale, SACK, Timestamps).
  • Pordid ja mitmekordne ühendamine – TCP kasutab portnumbrite abil mitut korraga ühendust samal masinal (nt port 80 veebiserveri jaoks, 443 HTTPS jaoks, 25 e-postiks). See võimaldab mitut rakendust ja andmevoogu sama IP-aadressi kaudu.
  • Ühenduse lõpetamine – ühenduse lõpetamiseks vahetatakse FIN ja ACK paketid; TCP kulgeb läbi mitme oleku (nt ESTABLISHED, FIN-WAIT, TIME-WAIT).
  • Valikulised täiustused – tänapäevased TCP implementatsioonid toetavad SACK (selective acknowledgements), akna skaaleerimist ja aeg-silte (timestamps), mis parandavad jõudlust ja töökindlust suure latentsuse või pikamaaühenduste korral.

TCP vs UDP — millal kasutada

  • TCP eelistatakse siis, kui on vaja usaldusväärsust, õiget järjekorda ja andmete terviklikkust — veebis surfamine, e-post, failiedastus, kaugjuurdepääs.
  • UDP (User Datagram Protocol) on kergekaalulisem, ühenduseta ja ilma ülalkirjeldatud tagatiseta — see sobib reaalajas rakendustele (VoIP, videostriiming, mängud), kus väiksem latentsus ja paketikaod on mõnikord aktsepteeritavad.

Piirangud ja probleemid

  • Pea-joone blokeerimine (head-of-line blocking) – kui üks segment kaob, peatub järjekorra edastus seni, kuni puuduv osa on taaskohale toodud.
  • Ülekoormus ja latentsus – TCP voogude adaptiivne käitumine võib mõnikord põhjustada aeglase taastumise ülekoormusest, eriti väga kiiretes või vahelduvates võrkudes.
  • NAT ja paljud tulemüürid – TCP töötab hästi, kuid mõnikord võivad võrguaadressi tõlkimise (NAT) ja turvapoliitikad vajada täiendavat konfiguratsiooni, et säilitada püsivad ühendused.

Kus TCP-d kõige sagedamini kasutatakse

  • Veebilehitsejad (HTTP/HTTPS), failiedastus (FTP, SFTP), e-posti protokollid (SMTP, IMAP, POP3), kaugjuurdepääsu teenused (SSH), andmebaasiühendused ja paljud muud kliendi-serveri rakendused.

Kokkuvõte: TCP on Interneti põhikomponent, mis pakub usaldusväärset, järjestatud ja vigadevaba andmeedastust. See tagab, et rakendused saavad suhelda usaldusväärselt ka kadude, võrgukatkestuste ja koormuse korral, kasutades mitmeid mehhanisme nagu käepigistus, sekventsinumbrid, kinnitused, voohaldus ja ülekoormuse juhtimine.

TCP tähtsus

TCP lihtsustab arvutiprogrammide omavahelist suhtlemist, tavaliselt arvutivõrgu kaudu. Kui programm tahab saata palju andmeid, vastutab TCP andmete jagamise, nende saatmise läbi võrgu ja nende õigesti kokku panemise eest teises arvutis. Selle protsessi käigus valib IP, milliseid juhtmeid ja "ristumisi" kasutatakse, et saata kõik andmetükid kõige kiiremini. Seda tehakse pakettide abil.

Kui võrku kasutab palju inimesi, võib see üle koormatud olla. Samuti võivad mõnikord ilmastik, elektrikatkestused ja muud probleemid muuta sidepidamise raskeks. Interneti marsruuterid kasutavad mõnede selliste probleemide lahendamiseks midagi, mida nimetatakse koormuse tasakaalustamiseks. Kuid siiski võib teave olla ebakorrektselt edastatud, kaduma läinud või isegi dubleeritud. TCP on loodud selleks, et märgata kõiki neid probleeme ja püüda neid lahendada. See võib võtta aega, mistõttu Internet tundub mõnikord aeglane. Kui TCP-vastuvõtja on lõpuks algselt edastatud andmete täiusliku koopia uuesti kokku pannud, edastab ta need andmed seda küsinud arvutiprogrammile. Sel viisil ei pea programm teadma võrgust ja TCP ei pea teadma programmi andmetest.



Otsige
AlegsaOnline.com - 2020 / 2025 - License CC3