Dnes sa zameriame na TCP. V kapitole o vrstvení sme už skôr spomenuli dôležitý bod. Na sieťovej vrstve a nižšie ide skôr o pripojenia medzi hostiteľmi, čo znamená, že váš počítač potrebuje vedieť, kde sa nachádza iný počítač, aby sa k nemu mohol pripojiť. Komunikácia v sieti je však často skôr komunikácia medzi procesmi ako medzi strojmi. Protokol TCP preto zavádza koncept portu. Port môže byť obsadený iba jedným procesom, čo zabezpečuje priamu komunikáciu medzi aplikačnými procesmi bežiacimi na rôznych hostiteľoch.
Úlohou transportnej vrstvy je poskytovať priame komunikačné služby medzi aplikačnými procesmi bežiacimi na rôznych hostiteľoch, preto je známa aj ako end-to-end protokol. Transportná vrstva skrýva základné detaily siete, čo umožňuje aplikačnému procesu vidieť, akoby medzi dvoma entitami transportnej vrstvy existoval logický end-to-end komunikačný kanál.
TCP je skratka pre Transmission Control Protocol (Protokol riadenia prenosu) a je známy ako protokol orientovaný na pripojenie. To znamená, že predtým, ako jedna aplikácia môže začať odosielať dáta druhej, musia sa medzi nimi dva procesy vykonať handshake (spojenie). Handshake je logicky prepojený proces, ktorý zabezpečuje spoľahlivý prenos a riadený príjem dát. Počas handshake sa vytvorí spojenie medzi zdrojovým a cieľovým hostiteľom výmenou série riadiacich paketov a dohodou o niektorých parametroch a pravidlách, aby sa zabezpečil úspešný prenos dát.
Čo je TCP? (MylinkingSieťový klepniteaSprostredkovateľ sieťových paketovmohol spracovať TCP aj UDP pakety)
TCP (Transmission Control Protocol) je spoľahlivý komunikačný protokol transportnej vrstvy založený na toku bajtov, orientovaný na pripojenie.
Orientované na pripojenieSpojená komunikácia znamená, že TCP komunikácia je typu jeden-jeden, teda komunikácia typu bod-bod medzi koncovými bodmi, na rozdiel od UDP, ktoré dokáže posielať správy viacerým hostiteľom súčasne, takže komunikáciu typu jeden-mnoho nemožno dosiahnuť.
SpoľahlivýSpoľahlivosť TCP zabezpečuje, že pakety sú spoľahlivo doručované prijímaču bez ohľadu na zmeny v sieťovom spojení, čo robí formát paketov protokolu TCP zložitejším ako formát UDP.
Založené na bajtovom tokuPovaha TCP založená na bajtovom toku umožňuje prenos správ akejkoľvek veľkosti a zaručuje poradie správ: aj keď predchádzajúca správa nebola úplne prijatá a aj keď boli prijaté nasledujúce bajty, TCP ich nedoručí na aplikačnú vrstvu na spracovanie a automaticky zahodí duplicitné pakety.
Keď hostiteľ A a hostiteľ B nadviažu spojenie, aplikácia potrebuje na odosielanie a prijímanie údajov iba virtuálnu komunikačnú linku, čím zabezpečí prenos údajov. Protokol TCP je zodpovedný za riadenie úloh, ako je nadviazanie, odpojenie a udržiavanie spojenia. Treba poznamenať, že virtuálna linka tu znamená iba nadviazanie spojenia, zatiaľ čo pripojenie cez protokol TCP iba znamená, že obe strany môžu začať prenos údajov a zabezpečiť spoľahlivosť údajov. Smerovacie a transportné uzly spravujú sieťové zariadenia; samotný protokol TCP sa týmito detailmi nezaoberá.
TCP pripojenie je plne duplexná služba, čo znamená, že hostiteľ A a hostiteľ B môžu prenášať dáta v oboch smeroch v rámci TCP pripojenia. To znamená, že dáta sa môžu prenášať medzi hostiteľom A a hostiteľom B obojsmerne.
TCP dočasne ukladá dáta do vyrovnávacej pamäte odosielania pripojenia. Táto vyrovnávacia pamäť odosielania je jednou z vyrovnávacích pamätí nastavených počas trojcestného nadväzovania spojenia. Následne TCP odošle dáta z vyrovnávacej pamäte odosielania do vyrovnávacej pamäte prijímania cieľového hostiteľa v príslušnom čase. V praxi bude mať každý peer vyrovnávaciu pamäť odosielania a vyrovnávaciu pamäť prijímania, ako je znázornené tu:
Vyrovnávacia pamäť pre odosielanie je oblasť pamäte udržiavaná implementáciou TCP na strane odosielateľa, ktorá sa používa na dočasné ukladanie odoslaných údajov. Keď sa vykoná trojcestné nadviazanie spojenia, nastaví sa vyrovnávacia pamäť pre odosielanie a použije sa na ukladanie údajov. Vyrovnávacia pamäť pre odosielanie sa dynamicky upravuje podľa preťaženia siete a spätnej väzby od prijímača.
Prijímacia vyrovnávacia pamäť je oblasť pamäte spravovaná implementáciou TCP na prijímacej strane, ktorá sa používa na dočasné ukladanie prijatých údajov. TCP ukladá prijaté údaje do prijímacej vyrovnávacej pamäte a čaká na ich prečítanie nadradenou aplikáciou.
Upozorňujeme, že veľkosť vyrovnávacej pamäte pre odosielanie a prijímanie je obmedzená. Keď je vyrovnávacia pamäť plná, TCP môže prijať určité stratégie, ako napríklad riadenie preťaženia, riadenie toku atď., aby zabezpečil spoľahlivý prenos údajov a stabilitu siete.
V počítačových sieťach sa prenos dát medzi hostiteľmi vykonáva pomocou segmentov. Čo je teda paketový segment?
TCP vytvára segment TCP alebo segment paketu rozdelením prichádzajúceho streamu na časti a pridaním hlavičiek TCP ku každej časti. Každý segment sa môže prenášať iba po obmedzený čas a nemôže prekročiť maximálnu veľkosť segmentu (MSS). Na ceste nadol prechádza segment paketu cez linkovú vrstvu. Linková vrstva má maximálnu prenosovú jednotku (MTU), čo je maximálna veľkosť paketu, ktorá môže prejsť cez dátovú linkovú vrstvu. Maximálna prenosová jednotka zvyčajne súvisí s komunikačným rozhraním.
Aký je teda rozdiel medzi MSS a MTU?
V počítačových sieťach je hierarchická architektúra veľmi dôležitá, pretože zohľadňuje rozdiely medzi rôznymi úrovňami. Každá vrstva má iný názov; v transportnej vrstve sa dáta nazývajú segment a v sieťovej vrstve sa dáta nazývajú IP paket. Preto možno maximálnu prenosovú jednotku (MTU) považovať za maximálnu veľkosť IP paketu, ktorú môže sieťová vrstva preniesť, zatiaľ čo maximálna veľkosť segmentu (MSS) je koncept transportnej vrstvy, ktorý sa vzťahuje na maximálne množstvo dát, ktoré môže TCP paket preniesť naraz.
Upozorňujeme, že keď je maximálna veľkosť segmentu (MSS) väčšia ako maximálna prenosová jednotka (MTU), fragmentácia IP sa vykoná na sieťovej vrstve a TCP nerozdelí väčšie dáta na segmenty vhodné pre veľkosť MTU. Na sieťovej vrstve bude sekcia venovaná vrstve IP.
Štruktúra segmentov TCP paketu
Pozrime sa na formát a obsah hlavičiek TCP.
Poradové číslo: Náhodné číslo vygenerované počítačom pri nadviazaní spojenia ako jeho počiatočná hodnota pri nadviazaní TCP spojenia a poradové číslo sa odošle prijímaču prostredníctvom paketu SYN. Počas prenosu dát odosielateľ zvyšuje poradové číslo podľa množstva odoslaných dát. Prijímač posudzuje poradie dát podľa prijatého poradového čísla. Ak sa zistí, že dáta nie sú v správnom poradí, prijímač ich zreorganizuje, aby zabezpečil ich správne poradie.
Číslo potvrdenia: Toto je poradové číslo používané v TCP na potvrdenie prijatia dát. Označuje poradové číslo ďalších dát, ktoré odosielateľ očakáva. V TCP pripojení prijímač určuje, ktoré dáta boli úspešne prijaté, na základe poradového čísla segmentu prijatého dátového paketu. Keď prijímač úspešne prijme dáta, odošle odosielateľovi paket ACK, ktorý obsahuje potvrdzovacie číslo. Po prijatí paketu ACK môže odosielateľ potvrdiť, že dáta boli úspešne prijaté pred potvrdením čísla odpovede.
Riadiace bity segmentu TCP zahŕňajú nasledovné:
ACK bitKeď je tento bit nastavený na 1, znamená to, že pole potvrdzujúcej odpovede je platné. TCP špecifikuje, že tento bit musí byť nastavený na 1, s výnimkou SYN paketov pri počiatočnom nadviazaní spojenia.
RST bitKeď je tento bit nastavený na 1, znamená to, že v TCP pripojení sa vyskytla výnimka a pripojenie je potrebné vynútiť na odpojenie.
SYN bitKeď je tento bit nastavený na 1, znamená to, že sa má nadviazať spojenie a v poli poradového čísla sa nastaví počiatočná hodnota poradového čísla.
FIN bitKeď je tento bit nastavený na 1, znamená to, že v budúcnosti sa už nebudú odosielať žiadne ďalšie dáta a je požadované pripojenie.
Rôzne funkcie a charakteristiky TCP sú stelesnené štruktúrou segmentov TCP paketov.
Čo je UDP? (MyLinking)Sieťový klepniteaSprostredkovateľ sieťových paketovmohol spracovať TCP aj UDP pakety)
Protokol UDP (User Datagram Protocol) je bezspojkový komunikačný protokol. V porovnaní s TCP neposkytuje UDP zložité riadiace mechanizmy. Protokol UDP umožňuje aplikáciám priamo odosielať zapuzdrené IP pakety bez nadviazania spojenia. Keď sa vývojár rozhodne použiť UDP namiesto TCP, aplikácia komunikuje priamo s IP adresou.
Celý názov protokolu UDP je User Datagram Protocol a jeho hlavička má iba osem bajtov (64 bitov), čo je veľmi stručné. Formát hlavičky UDP je nasledovný:
Cieľové a zdrojové portyIch hlavným účelom je indikovať, ktorému procesu má UDP posielať pakety.
Veľkosť paketuPole veľkosti paketu obsahuje veľkosť hlavičky UDP a veľkosť dát.
Kontrolný súčetNavrhnuté na zabezpečenie spoľahlivého doručovania hlavičiek a údajov UDP. Úlohou kontrolného súčtu je zistiť, či počas prenosu paketu UDP došlo k chybe alebo poškodeniu, aby sa zabezpečila integrita údajov.
Rozdiely medzi TCP a UDP v MyLinkinguSieťový klepniteaSprostredkovateľ sieťových paketovmohol spracovať TCP aj UDP pakety
TCP a UDP sa líšia v nasledujúcich aspektoch:
PripojenieTCP je transportný protokol orientovaný na pripojenie, ktorý vyžaduje nadviazanie pripojenia pred prenosom údajov. UDP na druhej strane pripojenie nevyžaduje a dokáže preniesť údaje okamžite.
Servisný objektTCP je služba typu jeden k jednému s dvoma bodmi, čo znamená, že pripojenie má iba dva koncové body, ktoré spolu komunikujú. UDP však podporuje interaktívnu komunikáciu jeden k jednému, jeden k mnohým a mnoho k mnohým, ktorá umožňuje komunikáciu s viacerými hostiteľmi súčasne.
SpoľahlivosťTCP poskytuje službu spoľahlivého doručovania dát, čím zabezpečuje, že dáta sú bezchybné, bezstratové, neduplicitné a doručené na požiadanie. UDP na druhej strane vynakladá maximálne úsilie a nezaručuje spoľahlivé doručenie. UDP môže počas prenosu trpieť stratou dát a inými situáciami.
Riadenie preťaženia, riadenie tokuTCP má mechanizmy na riadenie preťaženia a riadenie toku, ktoré dokážu upraviť rýchlosť prenosu dát podľa podmienok siete, aby sa zabezpečila bezpečnosť a stabilita prenosu dát. UDP nemá mechanizmy na riadenie preťaženia a riadenie toku, a ani v prípade, že je sieť veľmi preťažená, nebude upravovať rýchlosť odosielania UDP.
Nadpis hlavičkyTCP má dlhú dĺžku hlavičky, zvyčajne 20 bajtov, ktorá sa zvyšuje pri použití polí volieb. UDP má na druhej strane pevnú hlavičku iba 8 bajtov, takže UDP má nižšiu réžiu hlavičky.
Scenáre aplikácií TCP a UDP:
TCP a UDP sú dva rôzne protokoly transportnej vrstvy a v aplikačných scenároch sa medzi nimi vyskytujú určité rozdiely.
Keďže TCP je protokol orientovaný na pripojenie, používa sa predovšetkým v scenároch, kde je potrebný spoľahlivý prenos údajov. Medzi bežné prípady použitia patria:
Prenos súborov cez FTPTCP dokáže zabezpečiť, aby sa súbory počas prenosu nestratili ani nepoškodili.
HTTP/HTTPSTCP zabezpečuje integritu a správnosť webového obsahu.
Keďže UDP je bezspojkový protokol, neposkytuje záruku spoľahlivosti, ale má charakteristiky efektívnosti a prevádzky v reálnom čase. UDP je vhodný pre nasledujúce scenáre:
Nízkopaketová prevádzka, ako napríklad DNS (systém názvov domén)DNS dotazy sú zvyčajne krátke pakety a UDP ich dokáže spracovať rýchlejšie.
Multimediálna komunikácia, ako napríklad video a audioPre multimediálny prenos s vysokými požiadavkami na reálny čas môže UDP poskytnúť nižšiu latenciu, aby sa zabezpečil včasný prenos údajov.
Vysielaná komunikáciaUDP podporuje komunikáciu typu jeden s mnohými a mnoho s mnohými a možno ho použiť na prenos vysielaných správ.
Zhrnutie
Dnes sme sa učili o TCP. TCP je spojovo orientovaný, spoľahlivý komunikačný protokol transportnej vrstvy založený na bajtovom toku. Zaisťuje spoľahlivý prenos a riadený príjem dát nadviazaním spojenia, handshake a potvrdením. Protokol TCP používa porty na realizáciu komunikácie medzi procesmi a poskytuje priame komunikačné služby pre aplikačné procesy bežiace na rôznych hostiteľoch. Pripojenia TCP sú plne duplexné, čo umožňuje simultánny obojsmerný prenos dát. Naproti tomu UDP je komunikačný protokol bez spojovania, ktorý neposkytuje záruky spoľahlivosti a je vhodný pre niektoré scenáre s vysokými požiadavkami na reálny čas. TCP a UDP sa líšia v režime pripojenia, objekte služby, spoľahlivosti, riadení preťaženia, riadení toku a ďalších aspektoch a ich aplikačné scenáre sa tiež líšia.
Čas uverejnenia: 3. decembra 2024