TCP vs. UDP

Der er to typer IP-trafik (Internet Protocol). De er TCP eller Protokol til transmissionskontrol og UDP eller Bruger Datagram-protokol. TCP er forbindelsesorienteret - når en forbindelse er etableret, kan data sendes tovejs. UDP er en enklere, forbindelsesløs internetprotokol. Flere meddelelser sendes som pakker i bunker ved hjælp af UDP.

Sammenligningstabel

Forskelle - ligheder - TCP versus UDP sammenligning diagram
TCPUDP
Forkortelse for Protokol til transmissionskontrol Bruger Datagram-protokol eller Universal Datagram-protokol
Forbindelse Transmission Control Protocol er en forbindelsesorienteret protokol. User Datagram Protocol er en forbindelsesløs protokol.
Fungere Som en meddelelse gør sin vej over internettet fra en computer til en anden. Dette er forbindelsesbaseret. UDP er også en protokol, der bruges til beskedtransport eller -overførsel. Dette er ikke forbindelsesbaseret, hvilket betyder, at et program kan sende en mængde pakker til et andet, og det ville være slutningen på forholdet.
Anvendelse TCP er velegnet til applikationer, der kræver stor pålidelighed, og transmissionstiden er relativt mindre kritisk. UDP er velegnet til applikationer, der har brug for hurtig og effektiv transmission, såsom spil. UDPs statsløse karakter er også nyttig for servere, der besvarer små forespørgsler fra et stort antal klienter.
Brug ved andre protokoller HTTP, HTTP'er, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Bestilling af datapakker TCP omorganiserer datapakker i den angivne rækkefølge. UDP har ingen iboende rækkefølge, da alle pakker er uafhængige af hinanden. Hvis bestilling er påkrævet, skal den styres af applikationslaget.
Overførselshastighed Hastigheden for TCP er langsommere end UDP. UDP er hurtigere, fordi fejlgendannelse ikke forsøges. Det er en "bedste indsats" -protokol.
Pålidelighed Der er absolut garanti for, at de overførte data forbliver intakte og ankommer i den samme rækkefølge, som de blev sendt. Der er ingen garanti for, at de meddelelser eller pakker, der sendes, overhovedet ville nå ud.
Header Størrelse TCP-headerstørrelse er 20 byte UDP Header-størrelse er 8 byte.
Almindelige Header Felter Kildeport, destinationsport, check sum Kildeport, destinationsport, check sum
Streaming af data Data læses som en byte-strøm, ingen markante indikationer overføres til signalmeddelelsesgrænser (segment). Pakker sendes individuelt og kontrolleres kun for integritet, hvis de ankommer. Pakker har afgrænsede grænser, der hædres ved modtagelse, hvilket betyder, at en læsehandling ved modtagerens stik skal give en hel meddelelse, som den oprindeligt blev sendt.
Vægt TCP er tung. TCP kræver tre pakker for at oprette en socketforbindelse, før brugerdata kan sendes. TCP håndterer pålidelighed og overbelastningskontrol. UDP er let. Der er ingen bestilling af meddelelser, ingen sporingsforbindelser osv. Det er et lille transportlag designet oven på IP.
Dataflowkontrol TCP udfører Flow Control. TCP kræver tre pakker for at oprette en socketforbindelse, før brugerdata kan sendes. TCP håndterer pålidelighed og overbelastningskontrol. UDP har ikke en mulighed for flowkontrol
Fejl ved kontrol TCP udfører fejlkontrol og gendannelse af fejl. Forkerte pakker videresendes fra kilden til destinationen. UDP foretager fejlkontrol, men kasserer simpelthen forkerte pakker. Fejlgendannelse forsøges ikke.
Felter 1. Sekvensnummer, 2. AcK-nummer, 3. Dataforskyvning, 4. Reserveret, 5. Kontrolbit, 6. Vindue, 7. presserende pointer 8. Valgmuligheder, 9. polstring, 10. Kontroller sum, 11. kildeport, 12. Destinationshavn 1. Længde, 2. Kildeport, 3. Destinationsport, 4. Kontroller sum
Anerkendelse Anerkendelsessegmenter Ingen anerkendelse
Håndtryk SYN, SYN-ACK, ACK Intet håndtryk (tilslutningsfri protokol)

Indhold: TCP vs UDP

  • 1 Forskelle i dataoverførselsfunktioner
    • 1.1 Pålidelighed
    • 1.2 Bestilling
    • 1.3 Forbindelse
    • 1.4 Overførselsmetode
    • 1.5 Fejldetektion
  • 2 Sådan fungerer TCP og UDP
  • 3 Forskellige applikationer af TCP og UDP
    • 3.1 TCP vs. UDP for spilservere
  • 4 Henvisninger

Forskelle i dataoverførselsfunktioner

TCP sikrer en pålidelig og ordnet levering af en strøm af bytes fra bruger til server eller omvendt. UDP er ikke dedikeret til forbindelser fra ende til ende, og kommunikation kontrollerer ikke modtagerens beredskab.

Pålidelighed

TCP er mere pålidelig, da det styrer meddelelsesbekræftelse og videresendelse i tilfælde af mistede dele. Der mangler således absolut ingen data. UDP sikrer ikke, at kommunikationen har nået modtageren, da begreber om anerkendelse, time-out og videresendelse ikke er til stede.

Bestilling

TCP transmissioner sendes i en rækkefølge, og de modtages i samme sekvens. I tilfælde af datasegmenter, der ankommer i forkert rækkefølge, ombestiller TCP og leverer applikationen. I tilfælde af UDP, den sendte beskedsekvens opretholdes muligvis ikke, når den når den modtagende applikation. Der er absolut ingen måde at forudsige i hvilken rækkefølge meddelelsen modtages.

Forbindelse

TCP er en tung vægtforbindelse, der kræver tre pakker til en stikketilslutning og håndterer overbelastningskontrol og pålidelighed. UDP er et let transportlag designet på toppen af ​​en IP. Der er ingen sporingsforbindelser eller bestilling af meddelelser.

Metode til overførsel

TCP læser data som en byte-strøm, og meddelelsen overføres til segmentgrænser. UDP beskeder er pakker, der sendes individuelt og ved ankomsten kontrolleres for deres integritet. Pakker har definerede grænser, mens datastrøm ikke har nogen.

Fejldetektering

UDP arbejder på en "bedste indsats" -basis. Protokollen understøtter fejldetektering via kontrolsum, men når der opdages en fejl, kasseres pakken. Genoverførsel af pakken til gendannelse fra denne fejl forsøges ikke. Dette skyldes, at UDP normalt er til tidsfølsomme applikationer som spil eller stemmetransmission. Gendannelse fra fejlen ville være meningsløs, fordi det, når den videresendte pakke modtages, ikke vil være til nogen nytte.

TCP bruger både fejldetektion og fejlgendannelse. Fejl opdages via kontrolsum, og hvis en pakke er forkert, anerkendes den ikke af modtageren, hvilket udløser en genoverførsel af afsenderen. Denne driftsmekanisme kaldes Positive Acknowledgment with Retransmission (PAR).

Sådan fungerer TCP og UDP

En TCP-forbindelse oprettes via et trevejshåndtryk, som er en proces med at starte og anerkende en forbindelse. Når forbindelsen er etableret, kan dataoverførsel begynde. Efter transmission afsluttes forbindelsen ved lukning af alle etablerede virtuelle kredsløb.

UDP bruger en simpel transmissionsmodel uden implicit hånd-ryste dialoger til at garantere pålidelighed, bestilling eller dataintegritet. UDP leverer således en upålidelig service, og datagrammer kan komme i orden, synes duplikerede eller forsvinde uden varsel. UDP antager, at fejlkontrol og korrektion enten ikke er nødvendig eller udføres i applikationen, idet man undgår overhead af sådan behandling på netværksgrænsefladeniveau. I modsætning til TCP er UDP kompatibel med pakkeudsendelser (sender til alle på lokalt netværk) og multicasting (send til alle abonnenter).

Forskellige anvendelser af TCP og UDP

Web browsing, e-mail og filoverførsel er almindelige applikationer, der bruger TCP. TCP bruges til at kontrollere segmentstørrelse, hastighed for dataudveksling, flowkontrol og netværkstopning. TCP foretrækkes, hvor fejlkorrektionsfaciliteter er påkrævet på netværksgrænsefladeniveau. UDP bruges stort set af tidsfølsomme applikationer såvel som servere, der besvarer små forespørgsler fra et stort antal klienter. UDP er kompatibel med pakkeudsendelse - sender til alle på et netværk og multicasting - sender til alle abonnenter. UDP bruges ofte i Domain Name System, Voice over IP, Trivial File Transfer Protocol og online spil.

TCP vs. UDP for spilservere

Ved massivt multiplayer-online (MMO) -spil er udviklere ofte nødt til at tage et arkitektonisk valg mellem at bruge UDP eller TCP vedvarende forbindelser. Fordelene ved TCP er vedvarende forbindelser, pålidelighed og at kunne bruge pakker af vilkårlige størrelser. Det største problem med TCP i dette scenarie er dens overbelastningskontrolalgoritme, der behandler pakketab som et tegn på båndbreddebegrænsninger og automatisk bremser afsendelsen af ​​pakker. På 3G- eller Wi-Fi-netværk kan dette medføre en betydelig forsinkelse.

Den erfarne udvikler Christoffer Lernö vejer fordele og ulemper og anbefaler følgende kriterier for at vælge, om TCP eller UDP skal bruges til dit spil:

  • Brug HTTP over TCP til at stille lejlighedsvise, klientinitierede statsløse forespørgsler, når det er OK at have en lejlighedsvis forsinkelse.
  • Brug vedvarende almindelige TCP-stik, hvis både klient og server uafhængigt sender pakker, men en lejlighedsvis forsinkelse er OK (f.eks. Online Poker, mange MMO'er).
  • Brug UDP, hvis både klient og server muligvis uafhængigt sender pakker, og lejlighedsvis forsinkelse ikke er OK (f.eks. De fleste multiplayer action-spil, nogle MMO'er).

Referencer

  • Wikipedia: Protokol for transmissionskontrol
  • Wikipedia: Bruger Datagram-protokol
  • UDP vs TCP til spilservere
  • Protokollen til transmissionskontrol