TCP vs UDP: Demistifikimi i debatit Besueshmëri vs Efikasitet

Sot, do të fillojmë duke u përqendruar te TCP. Më herët në kapitullin mbi shtresëzimin, përmendëm një pikë të rëndësishme. Në shtresën e rrjetit dhe më poshtë, bëhet fjalë më shumë për lidhjet host me host, që do të thotë se kompjuteri juaj duhet të dijë se ku është një kompjuter tjetër në mënyrë që të lidhet me të. Megjithatë, komunikimi në një rrjet është shpesh komunikim ndërprocesor dhe jo komunikim ndërmjet makinave. Prandaj, protokolli TCP prezanton konceptin e portit. Një port mund të zëhet vetëm nga një proces, i cili siguron komunikim të drejtpërdrejtë midis proceseve të aplikacionit që funksionojnë në hostë të ndryshëm.

Detyra e shtresës së transportit është se si të ofrojë shërbime komunikimi të drejtpërdrejta midis proceseve të aplikacionit që funksionojnë në hostë të ndryshëm, kështu që njihet edhe si protokoll nga fillimi në fund. Shtresa e transportit fsheh detajet thelbësore të rrjetit, duke i lejuar procesit të aplikacionit të shohë sikur ekziston një kanal komunikimi logjik nga fillimi në fund midis dy entiteteve të shtresës së transportit.

TCP qëndron për Transmission Control Protocol dhe njihet si një protokoll i orientuar drejt lidhjes. Kjo do të thotë që përpara se një aplikacion të fillojë të dërgojë të dhëna te tjetri, të dy proceset duhet të bëjnë një "handshake". Handshake është një proces i lidhur logjikisht që siguron transmetim të besueshëm dhe pranim të rregullt të të dhënave. Gjatë "handshake", vendoset një lidhje midis hosteve burim dhe destinacion duke shkëmbyer një seri paketash kontrolli dhe duke rënë dakord për disa parametra dhe rregulla për të siguruar transmetim të suksesshëm të të dhënave.

Çfarë është TCP? (Mylinking'sPrekje në rrjetdheNdërmjetësi i Paketave të Rrjetitmund të përpunojë si paketa TCP ashtu edhe paketa UDP)
TCP (Protokolli i Kontrollit të Transmetimit) është një protokoll komunikimi i shtresës së transportit i orientuar drejt lidhjes, i besueshëm dhe i bazuar në rrjedhën e bajteve.

I orientuar drejt lidhjesI orientuar drejt lidhjes do të thotë që komunikimi TCP është një-me-një, domethënë komunikim pikë-me-pikë nga fillimi në fund, ndryshe nga UDP, i cili mund të dërgojë mesazhe në shumë hostë në të njëjtën kohë, kështu që komunikimi një-me-shumë nuk mund të arrihet.
I besueshëmBesueshmëria e TCP siguron që paketat të dorëzohen në mënyrë të besueshme te marrësi pavarësisht ndryshimeve në lidhjen e rrjetit, gjë që e bën formatin e paketës së protokollit TCP më kompleks se atë të UDP.
Bazuar në rrjedhën e bajteveNatyra e TCP-së e bazuar në rrjedhën e bajteve lejon transmetimin e mesazheve të çdo madhësie dhe garanton rendin e mesazheve: edhe nëse mesazhi i mëparshëm nuk është marrë plotësisht, dhe edhe nëse bajtet pasuese janë marrë, TCP nuk do t'i dorëzojë ato në shtresën e aplikacionit për përpunim dhe automatikisht do të heqë paketat e dyfishta.
Pasi hosti A dhe hosti B të kenë krijuar një lidhje, aplikacioni duhet vetëm të përdorë linjën virtuale të komunikimit për të dërguar dhe marrë të dhëna, duke siguruar kështu transmetimin e të dhënave. Protokolli TCP është përgjegjës për kontrollin e detyrave të tilla si vendosja e lidhjes, shkëputja dhe mbajtja. Duhet të theksohet se këtu themi se linja virtuale do të thotë vetëm të krijosh një lidhje, lidhja e protokollit TCP tregon vetëm që të dyja palët mund të fillojnë transmetimin e të dhënave dhe për të siguruar besueshmërinë e të dhënave. Nyjet e rrugëzimit dhe transportit trajtohen nga pajisjet e rrjetit; vetë protokolli TCP nuk merret me këto detaje.

Një lidhje TCP është një shërbim full-duplex, që do të thotë se hosti A dhe hosti B mund të transmetojnë të dhëna në të dy drejtimet në një lidhje TCP. Kjo do të thotë, të dhënat mund të transferohen midis hostit A dhe hostit B në një rrjedhë dypalëshe.

TCP ruan përkohësisht të dhënat në bufferin e dërgimit të lidhjes. Ky buffer dërgimi është një nga memorjet e fshehta të konfiguruara gjatë shtrëngimit të dorës në tre drejtime. Më pas, TCP do t'i dërgojë të dhënat në memorjen e fshehtë të dërgimit në memorjen e fshehtë të pranimit të hostit të destinacionit në kohën e duhur. Në praktikë, çdo bashkëmoshatar do të ketë një memorje të fshehtë dërgimi dhe një memorje të fshehtë pranimi, siç tregohet këtu:

TCP-UDP

Buferi i dërgimit është një zonë memorieje e mirëmbajtur nga implementimi TCP në anën e dërguesit që përdoret për të ruajtur përkohësisht të dhënat që do të dërgohen. Kur kryhet shtrëngimi i dorës trepalëshe për të vendosur një lidhje, memoria e përkohshme e dërgimit konfigurohet dhe përdoret për të ruajtur të dhënat. Buferi i dërgimit rregullohet dinamikisht sipas mbingarkesës së rrjetit dhe reagimeve nga marrësi.

Një buffer marrjeje është një zonë memorieje e mirëmbajtur nga implementimi TCP në anën marrëse që përdoret për të ruajtur përkohësisht të dhënat e marra. TCP i ruan të dhënat e marra në memorjen e përkohshme të marrjes dhe pret që aplikacioni i sipërm t'i lexojë ato.

Vini re se madhësia e memorjes së dërgimit dhe marrjes është e kufizuar, kur memoria e përkohshme është e plotë, TCP mund të miratojë disa strategji, të tilla si kontrolli i mbingarkesës, kontrolli i rrjedhës, etj., për të siguruar transmetim të besueshëm të të dhënave dhe stabilitet të rrjetit.

Në rrjetet kompjuterike, transmetimi i të dhënave midis hosteve kryhet me anë të segmenteve. Pra, çfarë është një segment pakete?

TCP krijon një segment TCP, ose segment pakete, duke e ndarë rrjedhën hyrëse në pjesë dhe duke shtuar koka TCP në secilën pjesë. Çdo segment mund të transmetohet vetëm për një kohë të kufizuar dhe nuk mund të tejkalojë Madhësinë Maksimale të Segmentit (MSS). Gjatë rrugës së tij poshtë, një segment pakete kalon nëpër shtresën e lidhjes. Shtresa e lidhjes ka një Njësi Maksimale të Transmetimit (MTU), e cila është madhësia maksimale e paketës që mund të kalojë nëpër shtresën e lidhjes së të dhënave. Njësia maksimale e transmetimit zakonisht lidhet me ndërfaqen e komunikimit.

Pra, cili është ndryshimi midis MSS dhe MTU?

Në rrjetet kompjuterike, arkitektura hierarkike është shumë e rëndësishme sepse merr në konsideratë ndryshimet midis niveleve të ndryshme. Çdo shtresë ka një emër të ndryshëm; në shtresën e transportit, të dhënat quhen segment, dhe në shtresën e rrjetit, të dhënat quhen paketë IP. Prandaj, Njësia Maksimale e Transmetimit (MTU) mund të mendohet si Madhësia Maksimale e paketës IP që mund të transmetohet nga shtresa e rrjetit, ndërsa Madhësia Maksimale e Segmentit (MSS) është një koncept i shtresës së transportit që i referohet sasisë maksimale të të dhënave që mund të transmetohen nga një paketë TCP në të njëjtën kohë.

Vini re se kur Madhësia Maksimale e Segmentit (MSS) është më e madhe se Njësia Maksimale e Transmetimit (MTU), fragmentimi i IP do të kryhet në shtresën e rrjetit dhe TCP nuk do t'i ndajë të dhënat më të mëdha në segmente të përshtatshme për madhësinë e MTU-së. Do të ketë një seksion në shtresën e rrjetit të dedikuar për shtresën IP.

Struktura e segmentit të paketave TCP
Le të shqyrtojmë formatin dhe përmbajtjen e header-ave TCP.

Segmenti TCP

Numri i sekuencës: Një numër i rastësishëm i gjeneruar nga kompjuteri kur vendoset lidhja si vlera e tij fillestare kur vendoset lidhja TCP, dhe numri i sekuencës i dërgohet marrësit përmes paketës SYN. ​​Gjatë transmetimit të të dhënave, dërguesi e rrit numrin e sekuencës sipas sasisë së të dhënave të dërguara. Marrësi gjykon rendin e të dhënave sipas numrit të sekuencës së marrë. Nëse të dhënat gjenden jashtë renditjes, marrësi do t'i rirendisë të dhënat për të siguruar rendin e të dhënave.

Numri i konfirmimitKy është një numër rendor që përdoret në TCP për të konfirmuar marrjen e të dhënave. Ai tregon numrin rendor të të dhënave të ardhshme që dërguesi pret të marrë. Në një lidhje TCP, marrësi përcakton se cilat të dhëna janë marrë me sukses bazuar në numrin rendor të segmentit të paketës së të dhënave të marra. Kur marrësi i merr me sukses të dhënat, ai i dërgon dërguesit një paketë ACK, e cila përmban numrin e konfirmimit të konfirmimit. Pas marrjes së paketës ACK, dërguesi mund të konfirmojë që të dhënat para se të konfirmojë numrin e përgjigjes janë marrë me sukses.

Bitët e kontrollit të një segmenti TCP përfshijnë si në vijim:

Bit ACKKur ky bit është 1, kjo do të thotë që fusha e përgjigjes së konfirmimit është e vlefshme. TCP specifikon që ky bit duhet të vendoset në 1 përveç paketave SYN kur lidhja vendoset fillimisht.
Bit RSTKur ky bit është 1, kjo tregon se ekziston një përjashtim në lidhjen TCP dhe lidhja duhet të detyrohet të shkëputet.
Biti SYNKur ky bit vendoset në 1, kjo do të thotë që lidhja duhet të vendoset dhe vlera fillestare e numrit të sekuencës vendoset në fushën e numrit të sekuencës.
Bit FINKur ky bit është 1, kjo do të thotë që nuk do të dërgohen më të dhëna në të ardhmen dhe lidhja është e dëshiruar.
Funksionet dhe karakteristikat e ndryshme të TCP mishërohen nga struktura e segmenteve të paketave TCP.

Çfarë është UDP? (Mylinking'sPrekje në rrjetdheNdërmjetësi i Paketave të Rrjetitmund të përpunojë si paketa TCP ashtu edhe paketa UDP)
Protokolli i të Dhënave të Përdoruesit (UDP) është një protokoll komunikimi pa lidhje. Krahasuar me TCP, UDP nuk ofron mekanizma kompleksë kontrolli. Protokolli UDP u lejon aplikacioneve të dërgojnë drejtpërdrejt paketa IP të kapsuluara pa krijuar një lidhje. Kur zhvilluesi zgjedh të përdorë UDP në vend të TCP, aplikacioni komunikon drejtpërdrejt me IP-në.

Emri i plotë i Protokollit UDP është User Datagram Protocol, dhe koka e tij është vetëm tetë bajt (64 bit), që është shumë koncize. Formati i kokës UDP është si më poshtë:

Segmenti UDP

Portet e destinacionit dhe burimitQëllimi i tyre kryesor është të tregojnë se te cili proces UDP duhet të dërgojë paketa.
Madhësia e paketësFusha e madhësisë së paketës përmban madhësinë e kokës UDP plus madhësinë e të dhënave
KontrolluesI projektuar për të siguruar shpërndarje të besueshme të header-ave dhe të dhënave UDP. Roli i checksum është të zbulojë nëse ka ndodhur një gabim ose korruptim gjatë transmetimit të një pakete UDP për të siguruar integritetin e të dhënave.

Dallimet midis TCP dhe UDP në MylinkingPrekje në rrjetdheNdërmjetësi i Paketave të Rrjetitmund të përpunojë si paketa TCP ashtu edhe paketa UDP
TCP dhe UDP ndryshojnë në aspektet e mëposhtme:

TCP kundrejt UDP

LidhjaTCP është një protokoll transporti i orientuar drejt lidhjes që kërkon që të vendoset një lidhje përpara se të transferohen të dhënat. UDP, nga ana tjetër, nuk kërkon një lidhje dhe mund të transferojë të dhëna menjëherë.

Objekti i ShërbimitTCP është një shërbim një-me-një me dy pika, domethënë, një lidhje ka vetëm dy pika fundore për të komunikuar me njëra-tjetrën. Megjithatë, UDP mbështet komunikimin interaktiv një-me-një, një-me-shumë dhe shumë-me-shumë, i cili mund të komunikojë me shumë hostë në të njëjtën kohë.

BesueshmëriaTCP ofron shërbimin e dërgimit të të dhënave në mënyrë të besueshme, duke siguruar që të dhënat të jenë pa gabime, pa humbje, jo të dyfishta dhe të mbërrijnë sipas kërkesës. UDP, nga ana tjetër, bën përpjekjet e saj më të mira dhe nuk garanton dërgim të besueshëm. UDP mund të vuajë nga humbja e të dhënave dhe situata të tjera gjatë transmetimit.

Kontroll i mbingarkesës, kontroll i rrjedhësTCP ka mekanizma kontrolli të mbingarkesës dhe kontrollit të rrjedhës, të cilët mund të rregullojnë shpejtësinë e transmetimit të të dhënave sipas kushteve të rrjetit për të siguruar sigurinë dhe stabilitetin e transmetimit të të dhënave. UDP nuk ka mekanizma kontrolli të mbingarkesës dhe kontrollit të rrjedhës, edhe nëse rrjeti është shumë i mbingarkuar, ai nuk do të bëjë rregullime në shpejtësinë e dërgimit të UDP.

Koka e sipërmeTCP ka një gjatësi të madhe të kokës, zakonisht 20 bajt, e cila rritet kur përdoren fushat e opsioneve. UDP, nga ana tjetër, ka një kokë fikse prej vetëm 8 bajtesh, kështu që UDP ka një mbingarkesë më të ulët të kokës.

TCP kundrejt UDP

Skenarët e Aplikacioneve TCP dhe UDP:
TCP dhe UDP janë dy protokolle të ndryshme të shtresës së transportit dhe kanë disa ndryshime në skenarët e aplikimit.

Meqenëse TCP është një protokoll i orientuar drejt lidhjes, ai përdoret kryesisht në skenarë ku kërkohet shpërndarje e besueshme e të dhënave. Disa raste përdorimi të zakonshme përfshijnë:

Transferimi i skedarëve FTPTCP mund të sigurojë që skedarët të mos humbasin dhe të mos dëmtohen gjatë transferimit.
HTTP/HTTPSTCP siguron integritetin dhe saktësinë e përmbajtjes së uebit.
Meqenëse UDP është një protokoll pa lidhje, ai nuk ofron garanci besueshmërie, por ka karakteristikat e efikasitetit dhe kohës reale. UDP është i përshtatshëm për skenarët e mëposhtëm:

Trafik me paketa të ulëta, siç është DNS (Sistemi i Emrave të Domaineve)Pyetjet DNS janë zakonisht paketa të shkurtra, dhe UDP mund t'i përfundojë ato më shpejt.
Komunikim multimedial si video dhe audioPër transmetim multimedial me kërkesa të larta në kohë reale, UDP mund të ofrojë një vonesë më të ulët për të siguruar që të dhënat të transmetohen në kohën e duhur.
Komunikim transmetuesUDP mbështet komunikimin një-me-shumë dhe shumë-me-shumë dhe mund të përdoret për transmetimin e mesazheve të transmetimit.

Përmbledhje
Sot mësuam rreth TCP-së. TCP është një protokoll komunikimi i shtresës së transportit i bazuar në rrjedhën e bajteve, i orientuar drejt lidhjes, i besueshëm. Ai siguron transmetim të besueshëm dhe pritje të rregullt të të dhënave duke vendosur lidhje, shtrëngim duarsh dhe konfirmim. Protokolli TCP përdor porta për të realizuar komunikimin midis proceseve dhe ofron shërbime komunikimi të drejtpërdrejta për proceset e aplikacioneve që funksionojnë në hostë të ndryshëm. Lidhjet TCP janë full-duplex, duke lejuar transferime të njëkohshme dypalëshe të të dhënave. Në të kundërt, UDP është një protokoll komunikimi i orientuar pa lidhje, i cili nuk ofron garanci besueshmërie dhe është i përshtatshëm për disa skenarë me kërkesa të larta në kohë reale. TCP dhe UDP janë të ndryshëm në mënyrën e lidhjes, objektin e shërbimit, besueshmërinë, kontrollin e mbingarkesës, kontrollin e rrjedhës dhe aspekte të tjera, dhe skenarët e tyre të aplikimit janë gjithashtu të ndryshëm.


Koha e postimit: 03 Dhjetor 2024