TCP vs UDP: Demystifikace spolehlivosti vs. debata o účinnosti

Dnes se začneme zaměřit na TCP. Dříve v kapitole o vrstvení jsme zmínili důležitý bod. V síťové vrstvě a níže je to spíše o hostitelském hostiteli, což znamená, že váš počítač musí vědět, kde se k ní připojí jiný počítač. Komunikace v síti je však často intermachinovou komunikací často meziprocesovou komunikací. Protokol TCP proto zavádí koncept portu. Port může být obsazen pouze jedním procesem, který poskytuje přímou komunikaci mezi procesy aplikací běžící na různých hostitelích.

Úkolem transportní vrstvy je, jak poskytovat přímé komunikační služby mezi procesy aplikací běžící na různých hostitelích, takže je také známý jako end-to-end protokol. Transportní vrstva skrývá základní detaily sítě, což umožňuje procesu aplikace vidět, jako by existoval logický komunikační kanál end-to-end mezi dvěma entitami transportní vrstvy.

TCP znamená protokol pro kontrolu přenosu a je známý jako protokol orientovaný na připojení. To znamená, že předtím, než jedna aplikace může začít odesílat data na druhou, musí oba procesy provést handshake. Handshake je logicky propojený proces, který zajišťuje spolehlivý přenos a řádné přijetí dat. Během handshake je navázáno spojení mezi zdrojovými a cílovými hostiteli výměnou řady kontrolních paketů a dohodnutím na některých parametrech a pravidlech, aby se zajistil úspěšný přenos dat.

Co je TCP? (MylinkingSíťové klepnutíaBroker síťových paketůMohlo by zpracovat oba pakety TCP nebo UDP)
TCP (Protokol pro řízení přenosu) je připojení orientovaný, spolehlivý protokol komunikace založené na přepravní vrstvě založené na byte-stream.

Orientované na připojení: Orientované připojení znamená, že komunikace TCP je individuální, tj. Komunikace s end-to-end point-to-point, na rozdíl od UDP, která může posílat zprávy více hostitelům současně, takže nelze komunikaci o jednom místě dosáhnout.
Spolehlivý: Spolehlivost TCP zajišťuje, že pakety jsou doručeny spolehlivě do přijímače bez ohledu na změny v síťovém spojení, což činí složitější formát paketu protokolu TCP než formát UDP.
Bajt-stream založené: Povaha TCP založená na bajtu založená na streamu umožňuje přenos zpráv jakékoli velikosti a zaručuje pořadí zpráv: I když předchozí zpráva nebyla plně přijata, ai když byly přijato následné bajty, TCP je doručí do vrstvy aplikací pro zpracování a automaticky upustí duplicitní pakety.
Jakmile hostitel A a hostitel B vytvořili připojení, musí aplikace pouze použít linku virtuální komunikace k odesílání a přijímání dat, čímž zajistí přenos dat. Protokol TCP je zodpovědný za kontrolu úkolů, jako je vytvoření připojení, odpojení a držení. Je třeba poznamenat, že zde říkáme, že virtuální řádek znamená pouze vytvoření připojení, připojení protokolu TCP pouze naznačuje, že obě strany mohou spustit přenos dat a zajistit spolehlivost dat. Síťová zařízení se zpracovávají směrování a přepravní uzly; Samotný protokol TCP se o tyto údaje nezabývá.

Připojení TCP je plně duplexní služba, což znamená, že hostitel A a hostitel B mohou přenášet data v obou směrech v připojení TCP. To znamená, že data mohou být přenášena mezi hostitelem A a hostitelem B v obousměrným toku.

TCP dočasně ukládá data do vyrovnávací paměti Odeslat připojení. Tato vyrovnávací paměť je jednou z mezipaměti nastavených během třícestného handshake. Následně TCP odešle data v mezipaměti Odeslat do mezipaměti Cíle ve vhodnou dobu. V praxi bude mít každý peer mezipaměť odesílání a mezipaměť přijímání, jak je uvedeno zde:

TCP-UDP

Vyrovnávací paměť Odeslat je oblast paměti udržovaná implementací TCP na straně odesílatele, která se používá k dočasnému ukládání dat, která mají být odeslána. Když je provedeno třícestné handshake za účelem vytvoření připojení, je nastavena mezipaměť odesílání a použita k ukládání dat. Vyrovnávací paměť odesílání je dynamicky upravena podle přetížení sítě a zpětné vazby od přijímače.

Přijímací vyrovnávací paměť je oblast paměti udržovaná implementací TCP na přijímací straně, která se používá k dočasnému ukládání přijatých dat. TCP ukládá přijatá data v mezipaměti přijímání a čeká na to, aby si ji přečetla horní aplikace.

Všimněte si, že velikost mezipaměti a mezipaměti přijímání je omezená, pokud je mezipaměť plná, může TCP přijmout některé strategie, jako je kontrola přetížení, kontrola toku atd., Aby bylo zajištěno spolehlivé přenos dat a stabilitu sítě.

V počítačových sítích se přenos dat mezi hostiteli provádí pomocí segmentů. Co je tedy segment paketů?

TCP vytvoří segment TCP nebo segment paketů rozdělením příchozího proudu do kousků a přidáním záhlaví TCP do každého kusu. Každý segment může být přenášen pouze po omezenou dobu a nesmí překročit maximální velikost segmentu (MSS). Na své cestě dolů prochází segment paketů vrstvou propojení. Vrstva propojení má maximální přenosovou jednotku (MTU), což je maximální velikost paketu, která může projít vrstvou datového spojení. Maximální přenosová jednotka obvykle souvisí s komunikačním rozhraním.

Jaký je tedy rozdíl mezi MSS a MTU?

V počítačových sítích je hierarchická architektura velmi důležitá, protože bere v úvahu rozdíly mezi různými úrovněmi. Každá vrstva má jiné jméno; V transportní vrstvě se data nazývají segment a v síťové vrstvě se data nazývají IP paket. Proto lze maximální přenosovou jednotku (MTU) považovat za maximální velikost paketu IP, kterou lze přenášet síťovou vrstvou, zatímco maximální velikost segmentu (MSS) je koncept transportní vrstvy, který odkazuje na maximální množství dat, které mohou být přenášeny pomocí paketu TCP v čase.

Všimněte si, že pokud je maximální velikost segmentu (MSS) větší než maximální přenosová jednotka (MTU), fragmentace IP bude provedena v síťové vrstvě a TCP nerozdělí větší data do segmentů vhodných pro velikost MTU. Na vrstvě síťové vrstvy bude věnována sekce IP vrstvy.

Struktura segmentu segmentu TCP
Pojďme prozkoumat formát a obsah záhlaví TCP.

Segment TCP

Číslo sekvence: Náhodné číslo generované počítačem, když je připojení navázáno jako jeho počáteční hodnota, když je připojení TCP navázáno, a sekvenční číslo je odesláno do přijímače pomocí paketu SYN. Během přenosu dat odesílatel zvyšuje číslo sekvence podle množství odeslaných dat. Přijímač posoudí pořadí dat podle přijatého sekvenčního čísla. Pokud jsou data zjištěna z pořadí, přijímač přeřadí data, aby se zajistilo pořadí dat.

Číslo potvrzení: Jedná se o sekvenční číslo používané v TCP k potvrzení přijetí dat. Označuje sekvenční číslo dalších dat, která odesílatel očekává, že obdrží. Při připojení TCP přijímač určuje, která data byla úspěšně přijata na základě sekvenčního čísla segmentu přijatých datových paketů. Když přijímač úspěšně obdrží data, odešle paket ACK do odesílatele, který obsahuje číslo potvrzení potvrzení. Po obdržení paketu ACK může odesílatel potvrdit, že data před potvrzením čísla odpovědi byla úspěšně obdržena.

Kontrolní bity segmentu TCP zahrnují následující:

Ack bit: Když je tento bit 1, znamená to, že pole odpovědí na potvrzení je platné. TCP určuje, že tento bit musí být nastaven na 1 s výjimkou SYN paketů, když je připojení původně vytvořeno.
První bit: Pokud je tento bit 1, znamená to, že v připojení TCP je výjimka a připojení musí být nuceno odpojit.
Syn bit: Když je tento bit nastaven na 1, znamená to, že má být navázáno připojení a počáteční hodnota sekvenčního čísla je nastavena v poli sekvence.
Kousek fin: Pokud je tento bit 1, znamená to, že v budoucnu nebudou odesílány žádné další údaje a je požadováno připojení.
Různé funkce a charakteristiky TCP jsou ztělesněny strukturou segmentů paketů TCP.

Co je UDP? (Mylinking'sSíťové klepnutíaBroker síťových paketůby mohlo zpracovat jak pakety TCP nebo UDP)
Protokol User Datagram Protocol (UDP) je komunikační protokol bez připojení. Ve srovnání s TCP UDP neposkytuje komplexní kontrolní mechanismy. Protokol UDP umožňuje aplikacím přímo odesílat zapouzdřené IP pakety bez navázání připojení. Když se vývojář rozhodne použít UDP místo TCP, aplikace komunikuje přímo s IP.

Celý název protokolu UDP je protokol uživatelského datagramu a jeho záhlaví je pouze osm bajtů (64 bitů), což je velmi stručné. Formát záhlaví UDP je následující:

Segment UDP

Cílové a zdrojové porty: Jejich hlavním účelem je naznačit, na který proces by měl UDP odesílat pakety.
Velikost paketu: Pole velikosti paketů drží velikost záhlaví UDP plus velikost dat
Kontrolní součet: Navrženo tak, aby zajistilo spolehlivé doručení záhlaví UDP a data Úlohou kontrolního součtu je detekovat, zda došlo k chybě nebo korupci během přenosu paketu UDP, aby byla zajištěna integrita dat.

Rozdíly mezi TCP a UDP v mylinkinguSíťové klepnutíaBroker síťových paketůMohlo by zpracovat oba pakety TCP nebo UDP
TCP a UDP se liší v následujících aspektech:

TCP vs UDP

Spojení: TCP je transportní protokol orientovaný na připojení, který vyžaduje navázání připojení před přenesením dat. UDP naproti tomu nevyžaduje připojení a může okamžitě přenášet data.

Objekt služby: TCP je individuální dvoubodová služba, tj. Spojení má pouze dva koncové body pro vzájemné komunikaci. UDP však podporuje individuální, one-to-many a mnoho interaktivní komunikace, která může komunikovat s více hostiteli současně.

Spolehlivost: TCP poskytuje službu doručování dat spolehlivě a zajišťuje, že data jsou bezchybná, bez ztráty, nekonečné a přicházejí na vyžádání. UDP naproti tomu dělá své nejlepší úsilí a nezaručuje spolehlivé doručení. UDP může během přenosu trpět ztrátou dat a dalšími situacemi.

Kontrola přetížení, řízení toku: TCP má mechanismy řízení přetížení a kontrolu toku, které mohou upravit rychlost přenosu dat podle podmínek sítě, aby byla zajištěna zabezpečení a stabilitu přenosu dat. UDP nemá mechanismy řízení a řízení toku přetížení, i když je síť velmi přetížená, nebude provádět úpravy rychlosti odesílání UDP.

Režijní záhlaví: TCP má dlouhou délku záhlaví, obvykle 20 bajtů, které se zvyšují při použití opčních polí. UDP, na druhé straně, má pevnou záhlaví pouhých 8 bajtů, takže UDP má horní záhlaví.

TCP vs UDP

Scénáře aplikací TCP a UDP:
TCP a UDP jsou dvě různé protokoly transportní vrstvy a mají určité rozdíly v aplikačních scénářích.

Protože TCP je protokol orientovaný na připojení, používá se primárně ve scénářích, kde je vyžadováno spolehlivé dodání dat. Některé případy běžného použití zahrnují:

Přenos souborů FTP: TCP může zajistit, aby se soubory během přenosu neztratily a poškodily.
Http/https: TCP zajišťuje integritu a správnost webového obsahu.
Protože UDP je protokol bez připojení, neposkytuje záruku spolehlivosti, ale má vlastnosti účinnosti a v reálném čase. UDP je vhodný pro následující scénáře:

Provoz s nízkou packet, jako je DNS (systém doménového názvu): Dotazy DNS jsou obvykle krátké pakety a UDP je může dokončit rychleji.
Multimediální komunikace, jako je video a zvuk: Pro multimediální přenos s vysokými požadavky v reálném čase může UDP poskytnout nižší latenci, aby se zajistilo, že data mohou být přenášena včas.
Vysílací komunikace: UDP podporuje jednotlivou a mnoho-maniovou komunikaci a lze jej použít pro přenos vysílaných zpráv.

Shrnutí
Dnes jsme se dozvěděli o TCP. TCP je připojení orientovaný, spolehlivý protokol komunikace založené na přepravní vrstvě založené na bajtech. Zajišťuje spolehlivý přenos a řádné přijetí dat stanovením připojení, handshake a potvrzení. Protokol TCP používá porty k realizaci komunikace mezi procesy a poskytuje přímé komunikační služby pro procesy aplikací běžící na různých hostitelích. Připojení TCP jsou plně duplexní, což umožňuje současné obousměrné převody dat. Naproti tomu UDP je komunikační protokol bez připojení, který neposkytuje záruky spolehlivosti a je vhodný pro některé scénáře s vysokými požadavky v reálném čase. TCP a UDP se liší v režimu připojení, objektu služby, spolehlivosti, řízení přetížení, řízení toku a dalších aspektech a jejich aplikační scénáře se také liší.


Čas příspěvku: prosinec-03-2024