Hvad er forskellen mellem TCP og UDP?
Du har sikkert set referencer til TCP og UDP, når du opsætter port-forwarding på en router eller når du konfigurerer firewall software. Disse to protokoller anvendes til forskellige typer data.
TCP / IP er en række protokoller, der bruges af enheder til at kommunikere via internettet og de fleste lokale netværk. Den er opkaldt efter to af dens originale protokoller - Transmission Control Protocol (TCP) og Internet Protocol (IP). TCP giver apps en måde at levere (og modtage) en ordnet og fejlagtig strøm af informationspakker over netværket. Brugerdatagramprotokollen (UDP) bruges af apps til at levere en hurtigere strøm af information ved at fjerne fejlkontrol. Når du konfigurerer noget hardware eller software på netværket, skal du muligvis kende forskellen.
Hvad de har til fælles
Både TCP og UDP er protokoller, der bruges til at sende bit af data, der er kendt som pakker over internettet. Begge protokoller bygger oven på IP-protokollen. Med andre ord, om du sender en pakke via TCP eller UDP, sendes denne pakke til en IP-adresse. Disse pakker behandles ens, da de videresendes fra din computer til mellemledere og videre til destinationen.
TCP og UDP er ikke de eneste protokoller, der fungerer oven på IP. De er dog de mest udbredte.
Sådan fungerer TCP
TCP er den mest almindeligt anvendte protokol på internettet.
Når du beder om en webside i din browser, sender din computer TCP-pakker til webserverens adresse og beder om at sende websiden tilbage til dig. Webserveren reagerer ved at sende en strøm af TCP-pakker, som din webbrowser sidder sammen for at danne websiden. Når du klikker på et link, logger du på, sender en kommentar eller gør noget andet, sender din webbrowser TCP-pakker til serveren, og serveren sender TCP-pakker tilbage.
TCP handler om pålidelighedspakker, der sendes med TCP, spores, så ingen data går tabt eller beskadiget i transit. Det er derfor, at filnedlastninger ikke bliver ødelagt, selvom der er netværkstop. Selvfølgelig, hvis modtageren er helt offline, vil din computer give op, og du får se en fejlmeddelelse, der siger, at den ikke kan kommunikere med den eksterne vært.
TCP opnår dette på to måder. For det første bestiller det pakker ved at nummerere dem. For det andet kontrollerer den fejlkontrollen ved at have modtageren sende et svar tilbage til afsenderen, der siger at den har modtaget meddelelsen. Hvis afsenderen ikke får et korrekt svar, kan det sende pakkerne igen for at sikre, at modtageren modtager dem korrekt.
Process Explorer og andre systemværktøjer kan vise typen af forbindelser, en proces gør - her kan vi se Chrome-browseren med åbne TCP-forbindelser til en række webservere.
Hvordan UDP virker
UDP-protokollen fungerer på samme måde som TCP, men det smider alle fejlkontrolstængerne ud. All frem og tilbage kommunikation indfører latens og bremser tingene ned.
Når en app bruger UDP, sendes pakker kun til modtageren. Afsenderen venter ikke for at sikre modtageren modtaget pakken. Det fortsætter bare med at sende de næste pakker. Hvis modtageren savner et par UDP-pakker her og der, er de bare tabt - afsenderen vil ikke sende dem igen. At miste alt dette overhead betyder, at enhederne kan kommunikere hurtigere.
UDP bruges, når hastigheden er ønskelig, og fejlkorrektion er ikke nødvendig. UDP bruges for eksempel ofte til live-udsendelser og onlinespil.
Lad os f.eks. Sige, at du ser en live video stream, som ofte udsendes ved hjælp af UDP i stedet for TCP. Serveren sender bare en konstant strøm UDP-pakker til computere, der ser. Hvis du mister forbindelsen i et par sekunder, kan videoen fryse eller blive hoppet et øjeblik og derefter springe til den aktuelle bit af udsendelsen. Hvis du oplever mindre tab af pakke, kan videoen eller lyden blive forvrænget i et øjeblik, da videoen fortsætter med at afspilles uden de manglende data.
Dette virker ligeledes i onlinespil. Hvis du savner nogle UDP-pakker, kan afspillertegn vises for at teleportere på tværs af kortet, da du modtager de nyere UDP-pakker. Der er ingen mening i at anmode om de gamle pakker, hvis du savnede dem, da spillet fortsætter uden dig. Alt hvad der betyder noget er, hvad der sker lige nu på spilserveren - ikke hvad der skete for et par sekunder siden. Ditching TCP's fejlkorrektion hjælper med at fremskynde spilforbindelsen og reducere latency.
Og hvad så?
Om en applikation bruger TCP eller UDP, er op til dens udvikler, og valget afhænger af, hvad en applikation har brug for. De fleste apps har brug for fejlkorrigering og robusthed af TCP, men nogle programmer kræver hastigheden og reduceret overhead af UDP. Hvis du fyrer et netværksanalyseværktøj som Wireshark, kan du se de forskellige typer pakker, der rejser frem og tilbage.
Medmindre du er en netværksadministrator eller softwareudvikler, bør dette ikke påvirke dig for meget. Hvis du konfigurerer din router eller firewall-software, og du ikke er sikker på, om et program bruger TCP eller UDP, kan du generelt vælge alternativet "Begge" for at få din router eller firewall til at anvende samme regel for både TCP og UDP-trafik.