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.
TCP | UDP | |
---|---|---|
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) |
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.
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.
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.
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.
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.
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).
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).
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.
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: