Kas yra TCP (Perdavimo valdymo protokolas) – apibrėžimas ir veikimas

Sužinokite, kas yra TCP — kaip Perdavimo valdymo protokolas užtikrina patikimą duomenų perdavimą, tvarką ir srautų valdymą internete. Apibrėžimas ir veikimo principai.

Autorius: Leandro Alegsa

Perdavimo valdymo protokolas (TCP) yra vienas iš pagrindinių interneto protokolų rinkinio protokolų. TCP yra populiaraus "TCP/IP" derinio, naudojamo internete, dalis. Interneto protokolas, arba IP, užtikrina, kad duomenys internete pasiektų reikiamą vietą. Tada TCP užtikrina, kad duomenys būtų pateikti tinkama tvarka ir nė vienas jų nepritrūktų. TCP taip pat padeda kontroliuoti interneto srautą, kad jis nebūtų perkrautas. Šie protokolai, kurie yra tarsi kalbos, kuriomis kalba kompiuteriai, sukurti taip, kad jais galėtų naudotis bet kuris kompiuteris ir bet kuri programa (pvz., žiniatinklio naršyklė ar el. pašto klientas).

Kas yra TCP ir kam jis skirtas

TCP (Transmission Control Protocol) yra transporto lygmens protokolas, skirtas patikimai perduoti duomenis tarp dviejų mazgų tinkle. TCP sudaro garantiją, kad:

  • duomenų paketai pasiekia gavėją;
  • jie pateikiami teisinga tvarka;
  • prarasti paketai yra persiunčiami iš naujo;
  • siuntimo greitis prisitaiko prie tinklo ir gavėjo galimybių.

Kaip veikia TCP — pagrindiniai žingsniai

TCP yra jungtį orientuotas protokolas: prieš pradedant siuntimą įrenginiai sudaro ryšį per vadinamąjį „three-way handshake“ — tai trijų žingsnių susitarimas:

  • 1) Siuntėjas siunčia SYN paketą, prašydamas pradėti jungtį.
  • 2) Gavėjas atsako SYN-ACK, patvirtindamas priėmimą ir pasiūlydamas savo sekos numerį.
  • 3) Siuntėjas patvirtina gavimą ACK paketu — jungtis užmegzta ir galima perduoti duomenis.

Jungtis uždaroma per kelis FIN/ACK žingsnius (dažniausiai vadinamą „four-way termination“), kad abi pusės saugiai nutrauktų srautą.

Patikimumas: seka, patvirtinimai ir persiuntimas

  • Sekos numeriai: kiekvienas TCP segmentas turi sekos numerį, leidžiantį sudėlioti duomenis teisinga tvarka.
  • Patvirtinimai (ACK): gavėjas siunčia ACK, nurodydamas, kiek baitų jis sėkmingai priėmė.
  • Persiuntimas: jei ACK negaunamas per nustatytą laiką, siuntėjas persiunčia segmentą iš naujo.
  • Kontrolinė suma: patikrina segmentų vientisumą; sugadinti segmentai atmetami.
  • Selektivūs patvirtinimai (SACK): leidžia nurodyti konkrečias priimtas duomenų dalis, taip pagerinant efektyvumą praradimų atveju.

Srauto ir užkemšimo valdymas

Tai dvi atskiros, bet svarbios TCP funkcijos:

  • Srauto (flow) valdymas: apsaugo gavėją nuo perteklinės įtampos. Naudojant „receive window“ (rwnd), gavėjas nurodo, kiek baitų jis gali priimti be papildomo patvirtinimo.
  • Užkemšimo (congestion) valdymas: prisitaiko prie tinklo būklės, kad nebūtų užpildytos tinklo eilės. Pagrindinės technikos: slow start, congestion avoidance, fast retransmit, fast recovery. Yra skirtingos TCP implementacijos (pvz., Tahoe, Reno), kurios naudoja šias strategijas įvairiai.

TCP antraštė — ką ji turi

TCP segmento antraštė yra bent 20 baitų ir apima svarbius laukus:

  • source port ir destination port (po 16 bitų) — leidžia identifikuoti programas;
  • sequence number ir acknowledgment number — sekos ir patvirtinimo numeriai;
  • data offset (antraštės ilgis), kontrolinės bitų reikšmės (pvz., SYN, ACK, FIN, RST);
  • window size — srauto valdymui;
  • checksum — vientisumo patikra;
  • options — pvz., Maximum Segment Size (MSS), Window Scale, SACK permitted, timestamps.

Kada naudojamas TCP ir kuo jis skiriasi nuo UDP

  • TCP tinka programoms, kurioms reikia patikimumo ir užsakytumo: HTTP/HTTPS, SMTP, FTP, SSH ir kt.
  • UDP (User Datagram Protocol) yra bejungtis, greitesnis ir lengvesnis, bet be garantijų dėl pristatymo ar tvarkos — tinkamas realaus laiko audio/video, DNS užklausoms, žaidimų tinklams.
  • TCP turi didesnį režijnį mokestį dėl jungties valdymo, patikimumo mechanizmų ir srauto/užkemšimo valdymo.

Praktiniai dalykai

  • Prievadai (ports): TCP naudoja 16 bitų prievadus. Yra „well-known“ prievadai (pvz., 80 — HTTP, 443 — HTTPS, 25 — SMTP).
  • Jungčių valdymas: kiekviena TCP jungtis identifikuojama 4 elementų rinkiniu: siuntėjo IP, siuntėjo prievado, gavėjo IP ir gavėjo prievado.
  • Pasiekimo ir našumo optimizacijos: TCP offload, TCP window scaling, multi-path TCP (MPTCP) — sprendimai didesniam pralaidumui arba mažesnei CPU įtampai.

Saugumas ir trūkumai

  • Saugumo iššūkiai: SYN flood atakos (jungčių užplūdymas), TCP session hijacking, RST atakos. Dalis saugumo problemų sprendžiama tinklo lygyje (ugniasienės, filtrai) arba naudojant protokolus virš TCP, pvz., TLS.
  • Trūkumai: didesnė latencija dėl rankų paspaudimų (handshakes), režija prarandant paketus, jautrumas užkemšimui tradiciniuose TCP algoritmuose.

Alternatyvos ir naujesnės technologijos

Viena žymiausių alternatyvų yra QUIC — protokolas, veikiantis virš UDP, bet suteikiantis TCP tipo patikimumą ir integruotą šifravimą (TLS). QUIC sumažina vėlavimą, ypač mobiliose ir daug sąveikos turinčiose aplikacijose.

Santrauka

TCP yra vienas pagrindinių tinklo protokolų, atsakingas už patikimą, užsakytą ir srauto valdomą duomenų siuntimą tarp įrenginių. Jis yra plačiai naudojamas interneto programose, tačiau turi režinę naštą ir jautrumą tinklo užkemšimui, todėl pastaraisiais metais vystomi ir diegiami naujesni sprendimai (pvz., QUIC) tam, kad būtų sumažintos trūkumų pasekmės.

TCP svarba

TCP palengvina kompiuterių programų tarpusavio bendravimą, paprastai per kompiuterių tinklą. Kai programa nori išsiųsti daug duomenų, TCP yra atsakingas už duomenų padalijimą, jų siuntimą tinklu ir teisingą sujungimą kitame kompiuteryje. Vykstant šiam procesui, IP pasirenka, kurie laidai ir "sankryžos" bus naudojami, kad visos duomenų dalys būtų siunčiamos greičiausiu būdu. Tai daroma naudojant paketus.

Jei tinklu naudojasi daug žmonių, jis gali būti perkrautas. Be to, kartais dėl oro sąlygų, elektros energijos tiekimo sutrikimų ir kitų problemų gali būti sunku palaikyti ryšį. Interneto maršrutizatoriai, bandydami išspręsti kai kurias iš šių problemų, naudoja vadinamąjį apkrovos balansavimą. Tačiau vis tiek informacija gali būti perduodama ne ta tvarka, gali būti prarandama arba net dubliuojama. TCP yra sukurtas taip, kad pastebėtų visas šias problemas ir bandytų jas išspręsti. Tai gali užtrukti, todėl internetas kartais atrodo lėtas. Kai TCP imtuvas pagaliau surenka tobulą iš pradžių perduotų duomenų kopiją, jis perduoda šiuos duomenis kompiuterio programai, kuri jų prašė. Tokiu būdu programai nereikia žinoti apie tinklą, o TCP nereikia žinoti apie programos duomenis.



Ieškoti
AlegsaOnline.com - 2020 / 2025 - License CC3