TCP vs. UDP

Det er to typer Internet Protocol (IP) trafikk. De er TCP eller Transmisjonskontrollprotokoll og UDP eller User Datagram Protocol. TCP er tilkoblingsorientert - når en tilkobling er opprettet, kan data sendes toveis. UDP er en enklere, tilkoblingsløs Internett-protokoll. Flere meldinger sendes som pakker i biter ved bruk av UDP.

Sammenligningstabell

TCP versus UDP sammenligning diagram
TCPUDP
Akronym for Transmisjonskontrollprotokoll User Datagram Protocol eller Universal Datagram Protocol
Forbindelse TCP er en tilkoblingsorientert protokoll. UDP er en forbindelsesløs protokoll.
Funksjon Som en melding gjør veien over Internett fra en datamaskin til en annen. Dette er tilkoblingsbasert. UDP er også en protokoll som brukes i meldingstransport eller overføring. Dette er ikke tilkoblingsbasert, noe som betyr at ett program kan sende en pakke pakker til en annen, og det ville være slutten på forholdet.
bruk TCP er egnet for applikasjoner som krever høy pålitelighet, og overføringstid er relativt mindre kritisk. UDP er egnet for applikasjoner som trenger rask og effektiv overføring, for eksempel spill. UDPs statsløse natur er også nyttig for servere som svarer på små spørringer fra store antall klienter.
Bruk av andre protokoller HTTP, HTTP, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Bestilling av datapakker TCP omarrangerer datapakker i den angitte rekkefølgen. UDP har ingen inneboende rekkefølge da alle pakker er uavhengige av hverandre. Hvis bestilling er nødvendig, må den administreres av applikasjonslaget.
Overføringshastighet Hastigheten for TCP er tregere enn UDP. UDP er raskere fordi feilgjenoppretting ikke er forsøkt. Det er en "best innsats" protokoll.
Pålitelighet Det er absolutt garanti for at dataene som overføres forblir intakte og kommer i samme rekkefølge som det ble sendt. Det er ingen garanti for at meldingene eller pakkene som sendes, vil oppnå i det hele tatt.
Overskriftstørrelse TCP-headerstørrelsen er 20 byte UDP-headerstørrelsen er 8 byte.
Vanlige toppfelt Kildeport, Destinasjonsport, Kontroll Sum Kildeport, Destinasjonsport, Kontroll Sum
Streaming av data Data blir lest som en byte strøm, ingen kjennetegn blir overført til signalmelding (segment) grenser. Pakker sendes individuelt og kontrolleres bare for integritet hvis de ankommer. Pakker har bestemte grenser som er æret ved mottak, noe som betyr at en lesoperasjon ved mottakerens sokkel vil gi en hel melding som den ble opprinnelig sendt.
Vekt TCP er tungt. TCP krever tre pakker for å konfigurere en stikkontakt, før noen brukerdata kan sendes. TCP håndterer pålitelighet og overbelastningsstyring. UDP er lett. Det er ingen bestilling av meldinger, ingen sporingsforbindelser, etc. Det er et lite transportlag designet på toppen av IP.
Dataflytkontroll TCP gjør flytkontroll. TCP krever tre pakker for å konfigurere en stikkontakt, før noen brukerdata kan sendes. TCP håndterer pålitelighet og overbelastningsstyring. UDP har ikke mulighet for flytkontroll
Feilkontroll TCP gjør feilkontroll og feilgjenoppretting. Feilaktige pakker sendes fra kilden til destinasjonen. UDP gjør feilkontroll, men bare kasserer feilaktige pakker. Feilgjenoppretting er ikke forsøkt.
Enger 1. Sequence Number, 2. AcK nummer, 3. Data offset, 4. Reservert, 5. Kontrollbit, 6. Vindu, 7. Urgent Pointer 8. Alternativer, 9. Padding, 10. Check Sum, 11. Source port, 12. Destinasjonsport 1. Lengde, 2. Kildeport, 3. Destinasjonsport, 4. Kontroll Sum
Bekreftelse Bekreftelsessegmenter Ingen bekreftelse
Håndtrykk SYN, SYN-ACK, ACK Ingen håndtrykk (forbindelsesløs protokoll)

Innhold: TCP vs UDP

  • 1 Forskjeller i dataoverføringsfunksjoner
    • 1.1 Pålitelighet
    • 1.2 Bestilling
    • 1.3 Tilkobling
    • 1.4 Fremgangsmåte for overføring
    • 1.5 Feilsøking
  • 2 Hvordan TCP og UDP fungerer
  • 3 forskjellige applikasjoner av TCP og UDP
    • 3.1 TCP vs UDP for spill servere
  • 4 referanser

Forskjeller i dataoverføringsfunksjoner

TCP sikrer en pålitelig og bestilt levering av en strøm av bytes fra bruker til server eller omvendt. UDP er ikke dedikert til slutt til sluttforbindelser, og kommunikasjon kontrollerer ikke mottakerens beredskap.

Pålitelighet

TCP er mer pålitelig siden det styrer meldingsbekreftelse og retransmisjoner i tilfelle tapte deler. Dermed er det absolutt ingen manglende data. UDP sørger ikke for at kommunikasjonen har nådd mottakeren, da konseptene for bekreftelse, timeout og retransmission ikke er tilstede.

bestilling

TCP sendinger sendes i en sekvens og de mottas i samme rekkefølge. I tilfelle datasegmenter kommer i feil rekkefølge, reorganiserer TCP og leverer applikasjon. I tilfelle av UDP, Sendt meldingssekvens kan ikke opprettholdes når den når mottaksprogram. Det er absolutt ingen måte å forutsi rekkefølgen i hvilken melding vil bli mottatt.

Forbindelse

TCP er en tungvektstilkobling som krever tre pakker for en stikkontakt og håndterer overbelastningsstyring og pålitelighet. UDP er et lett transportlag laget på toppen av en IP. Det er ingen sporingsforbindelser eller bestilling av meldinger.

Fremgangsmåte for overføring

TCP leser data som en byte strøm og meldingen overføres til segmentgrenser. UDP meldinger er pakker som sendes individuelt og ved ankomst kontrolleres for deres integritet. Pakker har definerte grenser mens datastrømmen har ingen.

Feilsøking

UDP arbeider på "best-effort" basis. Protokollen støtter feilsøking via kontrollsummen, men når en feil oppdages, kasseres pakken. Retransmisjon av pakken for gjenoppretting fra denne feilen er ikke forsøkt. Dette skyldes at UDP vanligvis er for tidssensitive applikasjoner som spill- eller taletransmisjon. Gjenoppretting fra feilen ville være meningsløs, fordi det ikke kommer til bruk når den mottatte pakken mottas.

TCP bruker både feiloppdaging og feilgjenoppretting. Feil oppdages via sjekksummen, og hvis en pakke er feil, er den ikke bekreftet av mottakeren, som utløser en retransmisjon av avsenderen. Denne operasjonsmekanismen kalles Positive Bekreftelse med Retransmission (PAR).

Slik fungerer TCP og UDP

En TCP-tilkobling etableres via et treveis håndtrykk, som er en prosess for å initiere og bekrefte en tilkobling. Når forbindelsen er etablert, kan dataoverføring begynne. Etter overføring avsluttes forbindelsen ved å lukke alle etablerte virtuelle kretser.

UDP bruker en enkel overføringsmodell uten implisitte håndskakningsdialoger for å garantere pålitelighet, bestilling eller dataintegritet. Dermed gir UDP en upålitelig tjeneste, og datagrammer kan komme i orden, vises duplisert, eller gå glipp uten varsel. UDP antar at feilkontroll og korreksjon enten ikke er nødvendig eller utført i applikasjonen, og unngår overhead for slik behandling på nettverksgrensesnittnivå. I motsetning til TCP er UDP kompatibel med pakkesendinger (send til alle på lokalt nettverk) og multicasting (send til alle abonnenter).

Ulike applikasjoner av TCP og UDP

Nettlesing, e-post og filoverføring er vanlige applikasjoner som bruker TCP. TCP brukes til å styre segmentstørrelse, datautvekslingshastighet, strømstyring og nettverksbelastning. TCP er foretrukket der feilkorrigeringsfasilitetene kreves på nettverksgrensesnittnivå. UDP brukes i stor grad av tidsfølsomme applikasjoner samt av servere som svarer på små spørringer fra et stort antall kunder. UDP er kompatibel med pakkesending - sender til alle på et nettverk og multicasting - sender til alle abonnenter. UDP brukes vanligvis i Domenenavnssystem, Voice over IP, Trivial File Transfer Protocol og online spill.

TCP vs UDP for spill servere

For multiplayer online (MMO) spill, må utviklere ofte lage et arkitektonisk valg mellom å bruke UDP eller TCP vedvarende tilkoblinger. Fordelene ved TCP er vedvarende forbindelser, pålitelighet og å kunne bruke pakker med vilkårlig størrelse. Det største problemet med TCP i dette scenariet er dens overbelastningsreguleringsalgoritme, som behandler pakketap som et tegn på båndbreddebegrensninger og automatisk sprer sending av pakker. På 3G- eller Wi-Fi-nettverk kan dette føre til betydelig ventetid.

Erfarne utvikler Christoffer Lernö veide fordeler og ulemper og anbefaler følgende kriterier for å velge om du skal bruke TCP eller UDP for spillet ditt:

  • Bruk HTTP over TCP for å gjøre sporadiske, klientinitierte statsløse spørringer når det er OK å ha en og annen forsinkelse.
  • Bruk vedvarende vanlige TCP-kontakter hvis både klient og server sender uavhengige pakker, men en og annen forsinkelse er OK (for eksempel Online Poker, mange MMOer).
  • Bruk UDP hvis både klient og server kan sende uavhengige pakker og sporadisk lag er ikke OK (for eksempel de fleste multiplayer action spill, noen MMOer).

referanser

  • Wikipedia: Overføringskontrollprotokoll
  • Wikipedia: User Datagram Protocol
  • UDP vs TCP for spill servere
  • Transmisjonskontrollprotokollen