HTG förklarar: Vad är skillnaden mellan TCP och UDP?

Du har förmodligen sett hänvisningar till TCP och UDP när du ställer in port-forwarding på en router eller när du konfigurerar en brandvägg. Dessa två protokoll används för olika typer av data.

Båda dessa protokoll används för att skicka data över Internet eller ett lokalt nätverk. När du konfigurerar vissa nätverks hårdvara eller mjukvara, kan du behöva veta skillnaden.

Både TCP och UDP är protokoll som används för att skicka databitar – så kallade paket – över Internet. De båda bygger på toppen av Internet-protokollet. Med andra ord, oavsett om du skickar ett paket via TCP eller UDP är att paketet skickas till en IP-adress. Dessa paket behandlas på samma sätt, eftersom de är vidarebefordras från din dator till förmedlande routrar och vidare till destinationen.

TCP och UDP är inte de enda protokoll som arbetar ovanpå IP. De är dock den mest använda. De allmänt använda uttrycket “TCP / IP” avser TCP över IP. UDP över IP kunde lika gärna betecknas som “UDP / IP”, även om detta inte är en vanlig term.

TCP står för Transmission Control Protocol. Det är den vanligaste protokoll på Internet.

När du laddar en webbsida, skickar datorn TCP-paket till webbservern adress, ber den att skicka webbsidan till dig. Webbservern svarar genom att sända en ström av TCP-paket, som din webbläsare maskor tillsammans för att bilda webbsidan och visa den för dig. När du klickar på en länk, logga in, skicka en kommentar, eller göra något annat, skickar webbläsaren TCP-paket till servern och servern skickar TCP-paket tillbaka. TCP är inte bara envägskommunikation – fjärrsystemet skickar paket tillbaka att erkänna det fått dina paket.

TCP garanterar mottagaren får paketen i ordning genom att numrera dem. Mottagaren skickar meddelanden tillbaka till avsändaren säger att det mottagit meddelanden. Om avsändaren inte får ett korrekt svar, kommer det skicka paketen för att säkerställa att mottagaren fick dem. Paketen är också med avseende på fel. TCP handlar om denna tillförlitlighet – paket som skickas med TCP spåras så inga data går förlorade eller skadas under transporten. Detta är anledningen till filhämtningar inte skadas även om det finns nätverk hicka. Naturligtvis, om mottagaren är helt offline, kommer datorn att ge upp och du ser ett felmeddelande som säger att det inte kan kommunicera med fjärrvärden.

Process Explorer och andra systemverktyg kan visa vilken typ av anslutningar en process gör – här kan vi se Chrome med öppna TCP-anslutningar till en mängd olika webbservrar.

UDP står för User Datagram Protocol – ett datapaket är samma sak som ett informationspaket. UDP-protokollet fungerar på samma sätt som TCP, men det kastar all felkontroll grejer. All back-och-tillbaka kommunikation och garantier leveransbarheten sakta ner saker.

Vid användning av UDP, datapaketen bara skickas till mottagaren. Avsändaren kommer inte att vänta för att se till att mottagaren fick paketet – det kommer bara fortsätta att sända nästa paket. Om du är mottagaren och du saknar några UDP-paket, synd – du kan inte begära dessa paket igen. Det finns ingen garanti för att du får alla paket och det finns inget sätt att be om ett paket igen om du missar det, men att förlora allt detta overhead innebär datorerna kan kommunicera snabbare.

UDP används när hastigheten är önskvärd och felkorrektion är inte nödvändigt. Till exempel UDP används ofta för direktsändningar och online-spel.

Till exempel, låt oss säga att du tittar på en live-videoström. Live stream ofta sänds med hjälp av UDP istället för TCP. Servern skickar bara en ständig ström av UDP-paket till datorer tittar på. Om du förlorar din anslutning för ett par sekunder, kommer videon frysa till ett ögonblick och sedan hoppa till den aktuella biten av sändningen, hoppa bitarna du missat. Om du upplever mindre paketförluster, kan video eller ljud förvrängas för ett ögonblick som videon fortsätter att spela utan de uppgifter som saknas.

Detta fungerar på samma sätt i online-spel – om du missar några UDP-paket, kan spelbara karaktärer tycks teleportera över kartan som du får de nyare UDP-paket. Det finns ingen mening med att begära att de gamla paketen om du missat dem, eftersom spelet fortsätter utan dig. Allt som betyder något är vad som händer just nu på spelservern – inte vad som hände för några sekunder sedan. Dikning TCP: s felkorrigering hjälper snabba upp spelet anslutning och minska fördröjningen.

Om ett program använder TCP eller UDP är upp till utvecklaren. Detta beror egentligen på vad ett program behöver – de flesta applikationer vill felkorrigering och robusthet TCP, men vissa applikationer behöver hastighet och minskad overhead UDP. Använd ett nätverk analysverktyg som Wireshark och du kommer att se olika typer av paket som reser fram och tillbaka.

Om du inte är en nätverksadministratör eller programutvecklare, bör detta inte påverkar inte dig för mycket. Om du konfigurerar routern eller brandvägg och du är osäker på om ett program använder TCP eller UDP, kan du vanligtvis välja “Både” för att ha din router eller brandvägg tillämpa samma regel för både TCP och UDP-trafik.

ICMP, eller Internet Control Message Protocol, är en annan vanlig protokoll som används på Internet. Det är vanligtvis används för fråge och felmeddelanden mellan routrar och andra nätverksenheter. Program du kommer att använda i allmänhet inte använder ICMP, även ping och traceroute användning ICMP för deras diagnos.

Detta var faktiskt en intervju fråga jag var tvungen att svara för min senaste avancemang till Network & Security Administrator. Tack och lov, jag visste redan nog av svaret att få det rätt (åtminstone för intervjuändamål).

Steve Jobs var den officiella bröllopsfotograf för Larry Ellison fjärde bröllop.