TCP vs UDP: Demystifikaasje fan it debat oer betrouberens vs. effisjinsje

Hjoed sille wy begjinne mei ús te rjochtsjen op TCP. Earder yn it haadstik oer laachfoarming hawwe wy in wichtich punt neamd. Op 'e netwurklaach en hjirûnder giet it mear oer host-to-host-ferbiningen, wat betsjut dat jo kompjûter witte moat wêr't in oare kompjûter is om dermei te ferbinen. Kommunikaasje yn in netwurk is lykwols faak ynterproseskommunikaasje ynstee fan yntermasjinekommunikaasje. Dêrom yntrodusearret it TCP-protokol it konsept fan poarte. In poarte kin mar troch ien proses beset wurde, wat direkte kommunikaasje mooglik makket tusken applikaasjeprosessen dy't op ferskate hosts rinne.

De taak fan 'e transportlaach is hoe't direkte kommunikaasjetsjinsten levere wurde kinne tusken applikaasjeprosessen dy't op ferskate hosts rinne, dêrom is it ek wol bekend as in end-to-end protokol. De transportlaach ferberget de kearndetails fan it netwurk, wêrtroch't it applikaasjeproses kin sjen as is der in logysk end-to-end kommunikaasjekanaal tusken de twa transportlaach-entiteiten.

TCP stiet foar Transmission Control Protocol en is bekend as in ferbiningsrjochte protokol. Dit betsjut dat foardat ien applikaasje gegevens nei de oare kin ferstjoere, de twa prosessen in handshake moatte dwaan. In handshake is in logysk ferbûn proses dat soarget foar betroubere oerdracht en oarderlike ûntfangst fan gegevens. Tidens de handshake wurdt in ferbining makke tusken de boarne- en bestimmingshost troch in searje kontrôlepakketten út te wikseljen en oerien te kommen oer bepaalde parameters en regels om suksesfolle gegevensoerdracht te garandearjen.

Wat is TCP? (Myn keppeling'sNetwurktapeenNetwurkpakketmakelaarkoe sawol TCP- as UDP-pakketten ferwurkje)
TCP (Transmission Control Protocol) is in ferbiningsrjochte, betroubere, byte-stream-basearre transportlaachkommunikaasjeprotokol.

FerbiningsrjochteFerbiningsoriïntearre betsjut dat TCP-kommunikaasje ien-op-ien is, dat is punt-nei-punt ein-nei-ein-kommunikaasje, yn tsjinstelling ta UDP, dy't berjochten tagelyk nei meardere hosts kin stjoere, sadat ien-nei-protte-kommunikaasje net berikt wurde kin.
BetrouberDe betrouberens fan TCP soarget derfoar dat pakketten betrouber oan de ûntfanger levere wurde, nettsjinsteande feroarings yn 'e netwurkferbining, wat it protokolpakketformaat fan TCP komplekser makket as dat fan UDP.
Byte-stream-basearreDe byte-stream-basearre aard fan TCP makket it mooglik om berjochten fan elke grutte oer te dragen en garandearret berjochtfolchoarder: sels as it foarige berjocht net folslein ûntfongen is, en sels as de folgjende bytes ûntfongen binne, sil TCP se net oan 'e applikaasjelaach leverje foar ferwurking en sil dûbele pakketten automatysk fuortsmite.
Sadree't host A en host B in ferbining oprjochte hawwe, hoecht de applikaasje allinich de firtuele kommunikaasjeline te brûken om gegevens te ferstjoeren en te ûntfangen, wêrtroch gegevensoerdracht garandearre wurdt. It TCP-protokol is ferantwurdlik foar it kontrolearjen fan taken lykas it oprjochtsjen, ôfbrekken en fêsthâlden fan ferbiningen. It moat opmurken wurde dat wy hjir sizze dat de firtuele line allinich betsjut om in ferbining op te rjochtsjen, TCP-protokolferbining jout allinich oan dat de twa kanten gegevensoerdracht kinne begjinne, en om de betrouberens fan 'e gegevens te garandearjen. De routing- en transportknooppunten wurde behannele troch de netwurkapparaten; it TCP-protokol sels hâldt him net dwaande mei dizze details.

In TCP-ferbining is in full-duplex tsjinst, wat betsjut dat host A en host B gegevens yn beide rjochtingen kinne ferstjoere yn in TCP-ferbining. Dat wol sizze, gegevens kinne tusken host A en host B yn in bidireksjonele stream oerdroegen wurde.

TCP bewarret tydlik gegevens yn 'e ferstjoerbuffer fan 'e ferbining. Dizze ferstjoerbuffer is ien fan 'e caches dy't ynsteld binne tidens de trijefâldige handshake. Dêrnei sil TCP de gegevens yn 'e ferstjoercache nei de ûntfangstcache fan 'e bestimmingshost op it juste momint stjoere. Yn 'e praktyk sil elke peer in ferstjoercache en in ûntfangstcache hawwe, lykas hjir werjûn:

TCP-UDP

De ferstjoerbuffer is in gebiet fan ûnthâld dat ûnderhâlden wurdt troch de TCP-ymplemintaasje oan 'e stjoerderkant en dat brûkt wurdt om tydlik gegevens op te slaan dy't ferstjoerd wurde moatte. As de trijefâldige handshake útfierd wurdt om in ferbining te meitsjen, wurdt de ferstjoercache ynsteld en brûkt om gegevens op te slaan. De ferstjoerbuffer wurdt dynamysk oanpast neffens netwurkoerlêst en feedback fan 'e ûntfanger.

In ûntfangstbuffer is in gebiet fan ûnthâld dat ûnderhâlden wurdt troch de TCP-ymplemintaasje oan 'e ûntfangende kant en dat brûkt wurdt om ûntfongen gegevens tydlik op te slaan. TCP bewarret de ûntfongen gegevens yn 'e ûntfangstcache en wachtet oant de boppesteande applikaasje se lêst.

Tink derom dat de grutte fan ferstjoercache en ûntfangcache beheind is, as de cache fol is, kin TCP bepaalde strategyen oannimme, lykas congestiekontrôle, streamkontrôle, ensfh., om betroubere gegevensoerdracht en netwurkstabiliteit te garandearjen.

Yn kompjûternetwurken wurdt gegevensoerdracht tusken hosts útfierd troch middel fan segminten. Dus wat is in pakketsegmint?

TCP makket in TCP-segmint, of pakketsegmint, troch de ynkommende stream yn stikken te splitsen en TCP-headers ta te foegjen oan elk stik. Elk segmint kin mar in beheinde tiid oerdroegen wurde en kin de Maximum Segment Size (MSS) net oerskriuwe. Op 'e wei nei ûnderen giet in pakketsegmint troch de keppelingslaach. De keppelingslaach hat in Maximum Transmission Unit (MTU), dat is de maksimale pakketgrutte dy't troch de datalinklaach kin. De maksimale oerdrachtienheid is meastentiids relatearre oan de kommunikaasje-ynterface.

Dus wat is it ferskil tusken MSS en MTU?

Yn kompjûternetwurken is de hiërargyske arsjitektuer tige wichtich, om't it rekken hâldt mei de ferskillen tusken de ferskate nivo's. Elke laach hat in oare namme; yn 'e transportlaach wurde de gegevens in segmint neamd, en yn 'e netwurklaach wurde de gegevens in IP-pakket neamd. Dêrom kin de Maximum Transmission Unit (MTU) beskôge wurde as de Maximum IP-pakketgrutte dy't troch de netwurklaach oerdroegen wurde kin, wylst de Maximum Segment Size (MSS) in transportlaachkonsept is dat ferwiist nei de maksimale hoemannichte gegevens dy't tagelyk troch in TCP-pakket oerdroegen wurde kin.

Tink derom dat as de Maximum Segment Size (MSS) grutter is as de Maximum Transmission Unit (MTU), IP-fragmentaasje útfierd wurdt op 'e netwurklaach, en TCP sil de gruttere gegevens net splitse yn segminten dy't geskikt binne foar MTU-grutte. Der sil in seksje op 'e netwurklaach wêze dy't wijd is oan 'e IP-laach.

TCP-pakketsegmentstruktuer
Litte wy it formaat en de ynhâld fan TCP-headers ûndersykje.

TCP-segmint

FolgenûmerIn willekeurich getal dat troch de kompjûter generearre wurdt as de ferbining oprjochte wurdt as syn begjinwearde as de TCP-ferbining oprjochte wurdt, en it folchoardernûmer wurdt nei de ûntfanger stjoerd fia it SYN-pakket. Tidens gegevensoerdracht ferheget de stjoerder it folchoardernûmer neffens de hoemannichte ferstjoerde gegevens. De ûntfanger beoardielet de folchoarder fan 'e gegevens neffens it ûntfongen folchoardernûmer. As de gegevens net yn folchoarder binne, sil de ûntfanger de gegevens opnij oarderje om de folchoarder fan 'e gegevens te garandearjen.

ErkenningsnûmerDit is in folchnûmer dat brûkt wurdt yn TCP om de ûntfangst fan gegevens te befêstigjen. It jout it folchnûmer oan fan 'e folgjende gegevens dy't de stjoerder ferwachtet te ûntfangen. Yn in TCP-ferbining bepaalt de ûntfanger hokker gegevens mei súkses ûntfongen binne op basis fan it folchnûmer fan it ûntfongen gegevenspakketsegment. As de ûntfanger de gegevens mei súkses ûntfangt, stjoert er in ACK-pakket nei de stjoerder, dat it befêstigingsnûmer befettet. Nei it ûntfangen fan it ACK-pakket kin de stjoerder befêstigje dat de gegevens mei súkses ûntfongen binne foardat it antwurdnûmer befêstige wurdt.

De kontrôlebits fan in TCP-segmint omfetsje it folgjende:

ACK-bitAs dizze bit 1 is, betsjut dit dat it fjild foar befêstigingsantwurd jildich is. TCP spesifisearret dat dizze bit ynsteld wurde moat op 1, útsein foar SYN-pakketten as de ferbining foar it earst makke wurdt.
RST-bitAs dizze bit 1 is, jout it oan dat der in útsûndering is yn 'e TCP-ferbining en moat de ferbining twongen wurde om te ferbrekken.
SYN-bitAs dizze bit ynsteld is op 1, betsjut dit dat de ferbining makke wurde moat en de begjinwearde fan it folchnûmer ynsteld is yn it folchnûmerfjild.
FIN-bitAs dizze bit 1 is, betsjut it dat der yn 'e takomst gjin gegevens mear ferstjoerd wurde sille en de ferbining winske is.
De ferskate funksjes en skaaimerken fan TCP wurde belichemme troch de struktuer fan TCP-pakketsegminten.

Wat is UDP? (Mylinking'sNetwurktapeenNetwurkpakketmakelaarkoe sawol TCP- as UDP-pakketten ferwurkje)
User Datagram Protocol (UDP) is in ferbiningsleas kommunikaasjeprotokol. Yn ferliking mei TCP biedt UDP gjin komplekse kontrôlemeganismen. It UDP-protokol lit applikaasjes direkt ynkapsele IP-pakketten ferstjoere sûnder in ferbining te meitsjen. As de ûntwikkelder derfoar kiest om UDP te brûken ynstee fan TCP, kommunisearret de applikaasje direkt mei it IP-adres.

De folsleine namme fan it UDP-protokol is User Datagram Protocol, en de koptekst is mar acht bytes (64 bits), wat tige bondig is. It formaat fan 'e UDP-koptekst is as folget:

UDP-segmint

Bestimmings- en boarnepoartenHarren wichtichste doel is om oan te jaan nei hokker proses UDP pakketten stjoere moat.
PakketgrutteIt fjild foar pakketgrutte befettet de grutte fan 'e UDP-header plus de grutte fan 'e gegevens
Kontrôlesom: Untworpen om betroubere levering fan UDP-headers en gegevens te garandearjen. De rol fan 'e kontrôlesom is om te detektearjen oft in flater of korrupsje bard is tidens de oerdracht fan in UDP-pakket om de yntegriteit fan 'e gegevens te garandearjen.

Ferskillen tusken TCP en UDP yn Mylinking'sNetwurktapeenNetwurkpakketmakelaarkoe sawol TCP- as UDP-pakketten ferwurkje
TCP en UDP binne ferskillend yn 'e folgjende aspekten:

TCP tsjin UDP

FerbiningTCP is in ferbiningsrjochte transportprotokol dat fereasket dat in ferbining makke wurdt foardat gegevens oerdroegen wurde kinne. UDP, oan 'e oare kant, fereasket gjin ferbining en kin gegevens direkt oerdrage.

TsjinstobjektTCP is in ien-op-ien twa-punts tsjinst, dat wol sizze, in ferbining hat mar twa einpunten om mei-inoar te kommunisearjen. UDP stipet lykwols ien-op-ien, ien-op-protte, en in protte-op-protte ynteraktive kommunikaasje, dy't tagelyk mei meardere hosts kommunisearje kin.

BetrouberensTCP leveret de tsjinst foar it betrouber leverjen fan gegevens, en soarget derfoar dat gegevens sûnder flaters, ferlies, net-duplikaat binne en op oanfraach oankomme. UDP, oan 'e oare kant, docht syn bêst en garandearret gjin betroubere levering. UDP kin lêst hawwe fan gegevensferlies en oare situaasjes tidens de oerdracht.

Kontrôle fan oerlêst, streamkontrôleTCP hat meganismen foar oerlêstkontrôle en streamkontrôle, dy't de gegevensoerdrachtsnelheid kinne oanpasse neffens de netwurkomstannichheden om de feiligens en stabiliteit fan gegevensoerdracht te garandearjen. UDP hat gjin meganismen foar oerlêstkontrôle en streamkontrôle, sels as it netwurk tige drok is, sil it gjin oanpassingen meitsje oan 'e UDP-ferstjoersnelheid.

Koptekst overheadTCP hat in lange koptekstlingte, typysk 20 bytes, dy't tanimt as opsjefjilden brûkt wurde. UDP, oan 'e oare kant, hat in fêste koptekst fan mar 8 bytes, dus UDP hat in legere koptekstoverhead.

TCP tsjin UDP

TCP- en UDP-tapassingsscenario's:
TCP en UDP binne twa ferskillende transportlaachprotokollen, en se hawwe wat ferskillen yn tapassingsscenario's.

Omdat TCP in ferbiningsrjochte protokol is, wurdt it benammen brûkt yn senario's wêr't betroubere gegevenslevering fereaske is. Guon gewoane gebrûksgefallen binne:

FTP-bestânsoerdrachtTCP kin derfoar soargje dat bestannen net ferlern geane en beskeadige reitsje tidens de oerdracht.
HTTP/HTTPSTCP soarget foar de yntegriteit en korrektheid fan webynhâld.
Omdat UDP in ferbiningsleas protokol is, biedt it gjin betrouberensgarânsje, mar it hat de skaaimerken fan effisjinsje en real-time. UDP is geskikt foar de folgjende senario's:

Ferkear mei leech pakket, lykas DNS (Domain Name System)DNS-fragen binne meastentiids koarte pakketten, en UDP kin se rapper foltôgje.
Multimediakommunikaasje lykas fideo en audioFoar multimedia-oerdracht mei hege easken yn realtime kin UDP in legere latency leverje om te soargjen dat gegevens op 'e tiid oerdroegen wurde kinne.
ÚtstjoerkommunikaasjeUDP stipet ien-nei-protte en in protte-nei-protte kommunikaasje en kin brûkt wurde foar de oerdracht fan útstjoerberjochten.

Gearfetting
Hjoed hawwe wy leard oer TCP. TCP is in ferbiningsrjochte, betrouber, byte-stream-basearre transportlaachkommunikaasjeprotokol. It soarget foar de betroubere oerdracht en oarderlike ûntfangst fan gegevens troch it meitsjen fan ferbining, handshake en befêstiging. It TCP-protokol brûkt poarten om de kommunikaasje tusken prosessen te realisearjen, en leveret direkte kommunikaasjetsjinsten foar applikaasjeprosessen dy't op ferskate hosts rinne. TCP-ferbiningen binne full-duplex, wêrtroch simultane bidireksjonele gegevensoerdrachten mooglik binne. Yn tsjinstelling, UDP is in ferbiningsleas rjochte kommunikaasjeprotokol, dat gjin betrouberensgarânsjes biedt en geskikt is foar guon senario's mei hege real-time easken. TCP en UDP binne ferskillend yn ferbiningsmodus, tsjinstobjekt, betrouberens, congestiekontrôle, streamkontrôle en oare aspekten, en har tapassingsscenario's binne ek ferskillend.


Pleatsingstiid: 3 desimber 2024