TCP vs UDP

Det finns två typer av Internet Protocol (IP) trafik. Dom är TCP eller Sändningskontrollprotokoll och UDP eller användardatagram protokoll. TCP är anslutningsorienterad - när en anslutning är etablerad kan data skickas tvåvägs. UDP är ett enklare, anslutningsfritt Internetprotokoll. Flera meddelanden skickas som paket i bitar med UDP.

Jämförelsediagram

TCP jämfört med UDP jämförelse diagram
TCPUDP
Akronym för Sändningskontrollprotokoll User Datagram Protocol eller Universal Datagram Protocol
Förbindelse TCP är ett anslutningsorienterat protokoll. UDP är ett anslutningsfritt protokoll.
Fungera Som ett meddelande går sin väg över internet från en dator till en annan. Det här är anslutningsbaserat. UDP är också ett protokoll som används vid meddelandeöverföring eller överföring. Det här är inte anslutningsbaserat vilket innebär att ett program kan skicka en paketpaket till en annan och det skulle vara slutet på relationen.
Användande TCP är lämpad för applikationer som kräver hög tillförlitlighet, och överföringstiden är relativt mindre kritisk. UDP passar för applikationer som kräver snabb och effektiv överföring, till exempel spel. UDP: s statslösa natur är också användbar för servrar som svarar på små frågor från ett stort antal kunder.
Används av andra protokoll HTTP, HTTP, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Beställning av datapaket TCP omarrangerar datapaket i den angivna ordern. UDP har ingen inneboende ordning eftersom alla paket är oberoende av varandra. Om beställning krävs måste den hanteras av applikationslagret.
Hastighet för överföring Hastigheten för TCP är långsammare än UDP. UDP är snabbare eftersom felåterställning inte försökas. Det är ett "bästa försök" protokoll.
Pålitlighet Det finns absolut garanti för att den överförda data förblir intakt och kommer i samma ordning som den skickades i. Det finns ingen garanti för att meddelanden eller paket som skickas skulle nå.
Header Size TCP-huvudstorleken är 20 byte UDP Header-storlek är 8 byte.
Vanliga rubrikfält Källport, Destination port, Check Sum Källport, Destination port, Check Sum
Streaming av data Data läses som en byte-ström, inga signifikanta indikationer överförs till signalmeddelanden (segment) gränser. Paket skickas individuellt och kontrolleras endast för integritet om de anländer. Paket har bestämda gränser som är hedrade vid mottagandet, vilket innebär att en läsning vid mottagarens uttag ger ett helt meddelande som det ursprungligen skickades.
Vikt TCP är tungviktigt. TCP kräver tre paket för att ställa in en anslutning, innan någon användardata kan skickas. TCP hanterar tillförlitlighet och överbelastningskontroll. UDP är lätt. Det finns ingen beställning av meddelanden, inga spårningsanslutningar etc. Det är ett litet transportlager som är konstruerat ovanpå IP.
Dataflödesreglering TCP gör Flow Control. TCP kräver tre paket för att ställa in en anslutning, innan någon användardata kan skickas. TCP hanterar tillförlitlighet och överbelastningskontroll. UDP har inget alternativ för flödesstyrning
Felkontroll TCP gör felkontroll och felåterställning. Felaktiga paket skickas om från källan till destinationen. UDP gör felkontroll men helt enkelt förkastar felaktiga paket. Felåterställning försökas inte.
Fields 1. Sequence Number, 2. AcK nummer, 3. Data offset, 4. Reserverat, 5. Kontrollbit, 6. Fönster, 7. Urgent Pointer 8. Alternativ, 9. Padding, 10. Check Sum, 11. Source port, 12. Destinationshamn 1. Längd, 2. Källa port, 3. Destination port, 4. Check Sum
Bekräftelse Bekräftelsegrenar Ingen bekräftelse
Handslag SYN, SYN-ACK, ACK Inget handslag (anslutningsfritt protokoll)

Innehåll: TCP vs UDP

  • 1 Skillnader i dataöverföringsfunktioner
    • 1.1 Tillförlitlighet
    • 1.2 Beställa
    • 1.3 Anslutning
    • 1.4 Metod för överföring
    • 1.5 Feldetektion
  • 2 Hur fungerar TCP och UDP
  • 3 Olika applikationer av TCP och UDP
    • 3.1 TCP vs UDP för spelservrar
  • 4 referenser

Skillnader i dataöverföringsfunktioner

TCP säkerställer en pålitlig och beställd leverans av en ström av byte från användare till server eller vice versa. UDP är inte dedikerad till slut-till-slut-anslutningar och kommunikation kontrollerar inte mottagarens beredskap.

Pålitlighet

TCP är mer tillförlitlig eftersom det hanterar meddelandebekräftelse och återutsändningar vid förlorade delar. Således finns det absolut ingen saknade data. UDP säkerställer inte att kommunikation har nått mottagaren eftersom koncept för bekräftelse, timeout och retransmission inte är närvarande.

Beställning

TCP sändningar skickas i en sekvens och de mottages i samma sekvens. I händelse av datasegment som anländer i fel ordning, återställer TCP och levererar applikation. I fallet med UDP, skickad meddelandesekvens kan inte bibehållas när den når mottagande ansökan. Det finns absolut inget sätt att förutsäga den ordning i vilket meddelandet kommer att tas emot.

Förbindelse

TCP är en tung viktförbindelse som kräver tre paket för en uttag och hanterar överbelastningskontroll och tillförlitlighet. UDP är ett lättviktigt transportskikt utformat ovanpå en IP. Det finns inga spårningsanslutningar eller beställning av meddelanden.

Metod för överföring

TCP läser data som en byte-ström och meddelandet överförs till segmentgränser. UDP Meddelanden är paket som skickas individuellt och vid ankomsten kontrolleras för deras integritet. Paket har definierade gränser medan dataströmmen har ingen.

Feldetektion

UDP arbetar på bästa möjliga sätt. Protokollet stöder feldetektering via kontrollsumman men när ett fel upptäcks kasseras paketet. Återförsändelse av paketet för återställning från detta fel försökas inte. Detta beror på att UDP är vanligtvis för tidskänsliga applikationer som spel- eller röstöverföring. Återhämtning från felet skulle vara meningslöst, eftersom det vid den tidpunkt då det retransmitterade paketet mottas kommer det inte att användas.

TCP använder både feldetektering och felåterställning. Fel upptäcks via kontrollsumma och om ett paket är felaktigt bekräftas det inte av mottagaren, vilket utlöser en återförsändelse av avsändaren. Denna operativmekanism kallas Positiv Bekräftelse med Retransmission (PAR).

Hur TCP och UDP fungerar

En TCP-anslutning upprättas via ett trevägs handslag, vilket är en process för att initiera och bekräfta en anslutning. När anslutningen är etablerad kan dataöverföring börja. Efter överföring avslutas anslutningen genom stängning av alla etablerade virtuella kretsar.

UDP använder en enkel överföringsmodell utan implicita handskakningsdialoger för att garantera pålitlighet, ordering eller dataintegritet. Således tillhandahåller UDP en opålitlig tjänst och datagram kan komma i ordning, visas duplicerad eller gå saknas utan föregående meddelande. UDP förutsätter att felkontroll och -korrigering antingen inte är nödvändig eller utförs i applikationen, vilket undviker överlagring av sådan behandling på nätverksgränssnittsnivå. Till skillnad från TCP är UDP kompatibel med paketutsändningar (skicka till allt på lokalt nätverk) och multicasting (skicka till alla abonnenter).

Olika applikationer av TCP och UDP

Webbläsning, e-post och filöverföring är vanliga applikationer som använder TCP. TCP används för att styra segmentstorlek, frekvens av datautbyte, flödesstyrning och nätverksbelastning. TCP föredras där felkorrigeringsanläggningar krävs på nätverksgränssnittsnivå. UDP används i stor utsträckning av tidskänsliga applikationer såväl som av servrar som svarar på små frågor från ett stort antal kunder. UDP är kompatibel med paketutsändning - skickar till alla på ett nätverk och multicasting - skickas till alla abonnenter. UDP används vanligtvis i Domain Name System, Voice over IP, Trivial File Transfer Protocol och onlinespel.

TCP vs UDP för spelservrar

För massivt multiplayer online-spel (MMO) måste utvecklare ofta göra ett arkitektoniskt val mellan att använda UDP eller TCP-persistenta anslutningar. Fördelarna med TCP är uthålliga anslutningar, tillförlitlighet och att kunna använda paket med godtyckliga storlekar. Det största problemet med TCP i detta scenario är dess överbelastningsstyrningsalgoritm, som behandlar paketförlust som ett tecken på bandbreddsbegränsningar och automatiskt stryker sändningen av paket. På 3G eller Wi-Fi-nätverk kan detta leda till en väsentlig latens.

Erfaren utvecklare Christoffer Lernö vägrade för och nackdelar och rekommenderar följande kriterier för att välja om du ska använda TCP eller UDP för ditt spel:

  • Använd HTTP över TCP för att göra tillfälliga, klientinitierade statlösa frågor när det är OK att få en tillfällig fördröjning.
  • Använd persistenta vanliga TCP-uttag om både klient och server skickar paket oberoende av varandra, men en tillfällig fördröjning är OK (till exempel Online Poker, många MMO).
  • Använd UDP om både klient och server kan självständigt skicka paket och tillfällig fördröjning är inte OK (t ex De flesta multiplayer actionspel, vissa MMO).

referenser

  • Wikipedia: Överföringskontrollprotokoll
  • Wikipedia: Användardatagramprotokoll
  • UDP vs TCP för spel servrar
  • Sändningskontrollprotokollet