Vad är skillnaden mellan TCP och UDP?
Du har antagligen sett hänvisningar till TCP och UDP när du ställer in port-vidarebefordran på en router eller när du konfigurerar brandväggsprogram. Dessa två protokoll används för olika typer av data.
TCP / IP är en serie protokoll som används av enheter för att kommunicera via Internet och de flesta lokala nätverk. Den är uppkallad efter två av dess ursprungliga protokoll - Transmission Control Protocol (TCP) och Internet Protocol (IP). TCP ger apps ett sätt att leverera (och ta emot) en orderad och felkontrollerad ström av informationspaket över nätverket. Användardatagramprotokollet (UDP) används av appar för att leverera en snabbare ström av information genom att undanröja felkontroll. När du konfigurerar vissa nätverkshårdvaror eller programvara kan du behöva veta skillnaden.
Vad de har gemensamt
Både TCP och UDP är protokoll som används för att skicka bitar av data som är kända som paket över Internet. Båda protokollen bygger på IP-protokollet. Med andra ord, om du skickar ett paket via TCP eller UDP skickas det här paketet till en IP-adress. Dessa paket behandlas på samma sätt som de vidarebefordras från din dator till mellanliggande routrar och vidare till destinationen.
TCP och UDP är inte de enda protokoll som fungerar ovanpå IP. De är dock de mest använda.
Hur TCP fungerar
TCP är det vanligaste protokollet på Internet.
När du begär en webbsida i din webbläsare skickar din dator TCP-paket till webbserverns adress och ber att skicka webbsidan tillbaka till dig. Webbservern svarar genom att skicka en ström av TCP-paket, som din webbläsare suger samman för att bilda webbsidan. När du klickar på en länk, loggar du in, lägger in en kommentar eller gör något annat, skickar din webbläsare TCP-paket till servern och servern skickar TCP-paket tillbaka.
TCP handlar om pålitlighetspaket som skickas med TCP spåras så ingen data går förlorad eller skadad under transitering. Det här är anledningen till att filnedladdningar inte blir skadade även om det finns nätverkshickningar. Om mottagaren är helt offline, kommer din dator givetvis att ge upp och du får se ett felmeddelande som säger att det inte kan kommunicera med fjärrvärden.
TCP uppnår detta på två sätt. Först beställer det paket genom att numrera dem. För det andra kontrollerar den felaktigt genom att mottagaren skickar ett svar tillbaka till avsändaren som säger att det har mottagit meddelandet. Om avsändaren inte får ett korrekt svar kan det skickas om paketet så att mottagaren tar emot dem korrekt.
Process Explorer och andra systemverktyg kan visa vilken typ av anslutningar en process gör - här kan vi se Chrome-webbläsaren med öppna TCP-anslutningar till en mängd olika webbservrar.
Hur UDP fungerar
UDP-protokollet fungerar på samma sätt som TCP, men det kastar ut alla felkontrollande saker. Alla fram och tillbaka kommunikation introducerar latens, saktar ner sakerna.
När en app använder UDP, skickas paket bara till mottagaren. Avsändaren väntar inte på att se till att mottagaren har tagit emot paketet. Det fortsätter bara med att skicka nästa paket. Om mottagaren saknar några UDP-paket här och där, är de bara borttappada - avsändaren kommer inte att skicka dem igen. Att förlora allt detta innebär att enheterna kan kommunicera snabbare.
UDP används när hastighet är önskvärd och felkorrigering är inte nödvändig. Exempelvis används UDP ofta för direktsändningar och onlinespel.
Låt oss till exempel säga att du tittar på en levande videoström, som ofta sänds med UDP istället för TCP. Servern skickar bara en konstant ström av UDP-paket till datorer som tittar på. Om du förlorar din anslutning i några sekunder kan videon frysa eller hoppa i ett ögonblick och sedan hoppa över till den aktuella biten av sändningen. Om du upplever mindre paketförlust kan videon eller ljudet förvrängas ett ögonblick eftersom videon fortsätter att spela utan de saknade data.
Detta fungerar på samma sätt i onlinespel. Om du saknar några UDP-paket kan spelarens tecken visas för att teleportera över kartan när du får de nyare UDP-paketen. Det finns ingen anledning att begära de gamla paketen om du saknade dem, eftersom spelet fortsätter utan dig. Allt som händer är vad som händer just nu på spel-servern, inte vad som hände för några sekunder sedan. Ditching TCP: s felkorrigering hjälper till att påskynda spelanslutningen och minska latensen.
Än sen då?
Huruvida en applikation använder TCP eller UDP är upp till dess utvecklare, och valet beror på vad en applikation behöver. De flesta appar måste ha felkorrigering och robusthet för TCP, men vissa applikationer behöver hastigheten och reducerad överhuvud för UDP. Om du slår ett nätverksanalysverktyg som Wireshark kan du se olika typer av paket som reser fram och tillbaka.
Om du inte är en nätverksadministratör eller programvaruutvecklare, ska det inte påverka dig för mycket. Om du konfigurerar din router eller brandväggsprogramvara och du inte är säker på om en applikation använder TCP eller UDP, kan du i allmänhet välja alternativet "Båda" för att få din router eller brandvägg tillämpa samma regel för både TCP och UDP-trafik.