Hvad er TCP og UDP? En Simpel Forklaring

Internettet afhænger af to protokoller for udveksling af information mellem computere. Disse kommunikationsprotokoller definerer reglerne, der bestemmer, hvordan dataoverførsel foregår mellem to enheder, uanset om det er en-til-en eller en-til-mange. Transmission Control Protocol (TCP) og User Datagram Protocol (UDP) er to protokoller, du kan bruge til at flytte data på tværs af netværk. De fungerer begge på transportlaget i OSI-modellen. 

Lignende, men alligevel forskellige, udfører disse to protokoller deres opgaver effektivt. Mens den ene er forbindelsesorienteret og kræver, at en forbindelse etableres, før dataoverførsel kan starte, er den anden forbindelsesløs og sender data uden først at informere destinationsenheden. Der er mere til, hvad disse protokoller gør, som du vil finde ud af nedenfor. Denne artikel fokuserer på TCP og UDP – hvordan de fungerer, deres fordele, ulemper og forskelle. 

Hvad er TCP?

Transmission Control Protocol er en kommunikationsprotokol, der primært beskæftiger sig med overførsel af datapakker på internettet. Den fungerer på transportlaget (lag 4) i Open Systems Interconnection (OSI)-modellen. Denne protokol hjælper med at overføre datapakker mellem en klientenhed/-applikation og en server (sammen med UDP). 

TCP er forbindelsesorienteret, hvilket betyder, at klienten og serveren skal etablere en forbindelse, før de sender data i nogen retning. Derudover er det en pålidelig protokol, da den tjekker for fejl og sikrer, at datapakker ankommer til deres destination i den rækkefølge, som afsendelsesenheden eller applikationen havde til hensigt. 

Hvordan Fungerer TCP?

Når TCP anvendes, etablerer en klient og en server en forbindelse ved hjælp af det, der er kendt som trevejshåndtrykket, før den tovejs overførsel af datapakker begynder. Før trevejshåndtrykket begynder, skal serveren lytte på en port for at acceptere forbindelsen. Håndtrykket begynder med udvekslingen af tre beskeder (eller flag) kendt som SYN, SYN/ACK og ACK mellem klienten og serveren. 

Lad os se på en trin-for-trin proces af udvekslingen nedenfor. 

1. Klienten sender en SYN-datapakke til serveren. SYN-pakken indeholder et tilfældigt sekvensnummer (X), som klienten tildeler. Formålet med denne pakke er at se, om serveren er tilgængelig for en ny forbindelse. 

2. Serveren modtager SYN-pakken og anerkender den ved at sende en SYN/ACK-pakke. Serveren sætter anerkendelsesnummeret til et plus sekvensnummeret (1+X), som klienten tildelte den oprindelige SYN-pakke, og sætter et andet tilfældigt sekvensnummer (Y). Så serveren sender to sekvensnumre sammen med sin SYN/ACK-pakke til klienten.

3. Klienten modtager SYN/ACK-pakken fra serveren og anerkender den ved at sende en ACK-pakke. Klienten sætter anerkendelsesnummeret til et plus sekvensnummeret (1+Y), som den modtog fra serveren. 

Når trevejs-håndtryksprocessen er afsluttet, kan klienten og serveren sende og modtage data fra hinanden. 

Fordele og ulemper ved TCP

Ligesom de fleste protokoller er TCP ikke fejlfri; det har sine fordele og ulemper. Lad os se på fordele og ulemper ved at bruge TCP nedenfor.

Fordele

1. Pålidelig

TCP er pålideligt, fordi det sikrer, at datapakker ankommer til deres destination i den korrekte rækkefølge. Når TCP transmitterer et datasegment, kører det en timer og venter på en anerkendelse fra destinationen. Det vil gensende segmentet, hvis det ikke modtager nogen anerkendelse. Derudover bruger det sekventering til at vide, når datapakker ankommer ude af rækkefølge.

2. Fejldetektion og -gendannelse

TCP bruger en ende-til-ende checksum til at tjekke for eventuelle ændringer i pakkerne, når de ankommer til deres destination. Det kasserer pakker med fejl og venter på, at afsenderen gensender dem. Derudover kasserer det også duplikerede data. 

3. Overbelastningskontrol

TCP bruger buffering og windowing til at håndtere overbelastning. Overbelastning kan ske, når den modtagende ende af TCP-forbindelsen modtager flere datapakker, end den kan håndtere på én gang. TCP bruger buffere til at håndtere overbelastning, men når buffere bliver fulde, bruger den windowing til at reducere mængden af data, afsenderen kan sende ad gangen. 

Ulemper

1. Langsom Hastighed

Sammenlignet med UDP er TCP langsom. For det første tager den nødvendige trevejshåndtryk tid. Derefter er der hastighedsreduktionen, som flowkontrol, trængselskontrol og fejlkontrol forårsager under dataoverførsel. I sådanne tilfælde ofrer TCP hastighed for pålidelighed.

2. Sårbar over for DoS-angreb

TCP’s trevejshåndtryk gør det sårbart over for DoS eller DDoS-angreb. Et SYN-flood er et sådant angreb, hvor en ondsindet enhed gør en server utilgængelig ved at oversvømme den med SYN-pakker. Dette angreb har til formål at overvælde serveren, så den forhindres i at reagere på ægte forespørgsler.

Hvad er UDP?

User Datagram Protocol (UDP) er en kommunikationsprotokol ligesom TCP, der opererer på transportlaget i OSI-modellen. I modsætning til TCP er det en forbindelsesløs protokol, hvilket betyder, at en klient ikke behøver at etablere en forbindelse med serveren, før den transmitterer datapakker. Som resultat er der ingen tre-vejs håndtryk, flowkontrol og sekventering. 

UDP er ligeglad med, om de sendte datagrammer ankommer til deres destination, eller om de ankommer i den rækkefølge, klienten sendte dem. Dette gør det mindre pålideligt end TCP, men hurtigere, da det ikke behøver at vente på bekræftelser eller gensende data. Dog bekymrer UDP sig om dataintegritet, og det bruger et kontrolsum til at bekræfte, at en tredjepart ikke har manipuleret med datagrammerne. 

Hvordan Fungerer UDP?

Med UDP er bevægelsen af datagrammer fra deres oprindelse til destination en nem proces. Efter at have tilføjet sin header til IP-pakkerne, den modtager fra netværkslaget, sender den datagrammer direkte til destinations-serveren uden at skulle etablere nogen forbindelse først. Det er den simple natur af denne proces, der gør UDP til en forbindelsesløs protokol. 

Derudover er UDP ideel til tidsfølsom kommunikation, hvor tab af data under overførsel er acceptabelt. For eksempel bruger stemme- og videokommunikation UDP. 

Fordele og ulemper ved UDP

UDP’s mangel på flowkontrol og dataretransmission er både en fordel og en ulempe. Nedenfor ser vi på fordele og ulemper ved at bruge UDP. 

Fordele

1. Hurtig Dataoverførsel

Da UDP ikke behøver at anerkende datagrammer, før destinationscomputeren kan modtage mere, og ikke transmitterer data igen, er det hurtigere end TCP. Derudover resulterer fraværet af et tre-vejs håndtryk i mindre overhead og hurtigere dataoverførsler. 

2. Fejldetektion

Ligesom TCP bruger UDP en ende-til-ende checksum til at opdage, om datagrammer har nogen fejl. Ved at gøre dette opretholder det dataintegritet og dropper datagrammer med fejl. Da der ikke er nogen retransmissionsmekanisme, gendanner eller gensender UDP ikke datagrammer, den dropper. 

Ulemper

1. Upålidelig

Funktioner, der gør en forbindelse pålidelig, mangler i UDP-forbindelser. I modsætning til TCP garanterer UDP ikke, at datagrammer sendt vil nå deres destination. Som et resultat har datagrammer ikke en timer eller behøver at blive anerkendt af modtagerenheden. Derudover er der ingen garanti for, at datagrammer vil ankomme til deres destination i den korrekte rækkefølge. 

2. Ingen Overbelastningskontrol

UDP har ingen mekanisme til at kontrollere trængsel. Da det ikke anerkender datagrammer eller bruger vinduesstyring til at kontrollere datatransmission, er der ingen måde at forhindre trængsel på. Som et resultat kan store mængder data resultere i trængsler. 

Forskelle mellem TCP og UDP

Nedenfor vil vi se på forskellene mellem forbindelsesorienteret TCP og forbindelsesløs UDP.

1. Pålitelighed

TCP er et mere pålideligt protokol sammenlignet med UDP. TCP vil bekræfte, at et datasegment når sin destination, før den sender et andet. Desuden vil det sikre, at segmenterne ankommer i den samme rækkefølge, de blev sendt, og gensende data, der ikke når frem til destinationen. Derudover bruger TCP flowkontrol for at sikre, at klienten ikke sender pakker hurtigere, end serveren kan behandle dem. I modsætning hertil gør UDP ikke noget af ovenstående og bekymrer sig mere om at overføre data så hurtigt som muligt.  

2. Hastighed

De funktioner i TCP, der gør det pålideligt, gør det langsommere end TCP. Den tre-vejs håndtryk, flowkontrol, trængselskontrol og retransmissionsmekanisme er ikke en del af UDP. Som resultat, med mindre overhead, er UDP hurtigere end TCP.

3. Brug

TCP’s forbindelsesorienterede datatransmission gør det velegnet til applikationer, der kræver pålidelighed og ikke kan acceptere tab af data. For eksempel understøtter det protokoller såsom HTTP, SSH, FTP, SMTP og IMAP. På den anden side gør UDP’s hastighed det velegnet til tidsfølsomme applikationer eller protokoller, der kan acceptere datatab, såsom live video- eller lydchats, Voice over IP, DNS-forespørgsler og online spil. 

Konklusion

TCP og UDP er grundlaget for kommunikation på internettet. Uden disse to protokoller vil det være udfordrende for enheder, der er forbundet til internettet, at kommunikere med hinanden. TCP er protokollen, du skal bruge, hvis du har brug for pålidelighed og nøjagtighed. På den anden side er UDP protokollen, du har brug for, hvis du er mindre bekymret for at miste datapakker og mere bekymret for, at de når deres destination hurtigt.