TCP pret UDP

Pastāv divu veidu interneta protokola (IP) trafiks. Viņi ir TCP vai Transmisijas kontroles protokols un UDP vai Lietotāja datugrammas protokols. TCP ir orientēts uz savienojumu - tiklīdz savienojums ir izveidots, datus var nosūtīt divvirzienu. UDP ir vienkāršāks, bezsaistes interneta protokols. Vairāki ziņojumi tiek nosūtīti kā paketes gabalos, izmantojot UDP.

Salīdzināšanas tabula

Atšķirības - līdzības - TCP un UDP salīdzināšanas diagramma
TCPUDP
Akronīms vārdam Transmisijas kontroles protokols Lietotāja Datagram Protocol vai Universal Datagram Protocol
Savienojums Pārraides vadības protokols ir uz savienojumu vērsts protokols. Lietotāja Datagram Protocol ir bezsaistes protokols.
Funkcija Tā kā ziņojums kļūst pieejams internetā no viena datora uz otru. Tas ir balstīts uz savienojumu. UDP ir arī protokols, ko izmanto ziņojumu transportēšanai vai pārsūtīšanai. Tas nav saistīts ar savienojumu, kas nozīmē, ka viena programma var nosūtīt pakešu slodzi otrai, un tas būtu attiecību beigas.
Lietošana TCP ir piemērots lietojumprogrammām, kurām nepieciešama augsta uzticamība, un pārraides laiks ir relatīvi mazāk kritisks. UDP ir piemērots lietojumprogrammām, kurām nepieciešama ātra un efektīva pārraide, piemēram, spēlēm. UDP bezvalstniecības raksturs ir noderīgs arī serveriem, kas atbild uz maziem pieprasījumiem no liela skaita klientu.
Izmantošana citos protokolos HTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Datu pakešu pasūtīšana TCP pārkārto datu paketes norādītajā secībā. UDP nav raksturīgas kārtības, jo visas paketes ir neatkarīgas viena no otras. Ja ir nepieciešams pasūtīt, tas jāpārvalda lietojumprogrammu slānim.
Pārsūtīšanas ātrums TCP ātrums ir lēnāks nekā UDP. UDP ir ātrāks, jo netiek mēģināts atgūt kļūdas. Tas ir "labāko piepūles" protokols.
Uzticamība Pastāv pilnīga garantija, ka pārsūtītie dati paliek neskarti un nonāk tādā pašā secībā, kādā tie tika nosūtīti. Nav garantijas, ka nosūtītās ziņas vai paketes vispār nonāks.
Galvenes lielums TCP galvenes izmērs ir 20 baiti UDP galvenes izmērs ir 8 baiti.
Kopējie galvenes lauki Avota osta, Galamērķa osta, Pārbaudes summa Avota osta, Galamērķa osta, Pārbaudes summa
Datu straumēšana Dati tiek lasīti kā baitu straume, un signāla ziņojuma (segmenta) robežām netiek pārsūtītas atšķirīgas norādes. Paketes tiek nosūtītas individuāli, un to integritāte tiek pārbaudīta tikai tad, ja tās pienāk. Paciņām ir noteiktas robežas, kuras tiek ievērotas saņemot, kas nozīmē, ka lasīšanas darbība uztvērēja ligzdā sniegs visu ziņojumu, kā tas sākotnēji tika nosūtīts.
Svars TCP ir smagsvars. Pirms jebkādu lietotāja datu nosūtīšanas TCP ir vajadzīgas trīs paketes, lai iestatītu kontaktligzdas savienojumu. TCP apstrādā uzticamību un pārslodzes kontroli. UDP ir viegls. Nav ziņojumu pasūtīšanas, izsekošanas savienojumu utt. Tas ir neliels transporta slānis, kas paredzēts IP augšpusē.
Datu plūsmas vadība TCP veic plūsmas kontroli. Pirms jebkādu lietotāja datu nosūtīšanas TCP ir vajadzīgas trīs paketes, lai iestatītu kontaktligzdas savienojumu. TCP apstrādā uzticamību un pārslodzes kontroli. UDP nav plūsmas vadības opcijas
Kļūda pārbaudot TCP veic kļūdu pārbaudi un kļūdu atkopšanu. Kļūdainas paketes tiek pārsūtītas no avota uz galamērķi. UDP pārbauda kļūdas, bet vienkārši atmet kļūdainas paketes. Kļūda nav atkopjama.
Lauki 1. kārtas numurs, 2. ACK numurs, 3. datu nobīde, 4. rezervēts, 5. vadības bits, 6. logs, 7. steidzams rādītājs 8. opcijas, 9. polsterējums, 10. pārbaudes summa, 11. avota ports, 12. Galamērķa osta 1. Garums, 2. Avota osta, 3. Galamērķa osta, 4. Pārbaudiet summu
Apstiprinājums Apstiprināšanas segmenti Nav apstiprināšanas
Rokasspiediens SYN, SYN-ACK, ACK Bez rokasspiediena (bezsaistes protokols)

Saturs: TCP vs UDP

  • 1 Atšķirības datu pārsūtīšanas īpašībās
    • 1.1. Uzticamība
    • 1.2 Pasūtīšana
    • 1.3 Savienojums
    • 1.4. Pārsūtīšanas metode
    • 1.5 Kļūdu noteikšana
  • 2 Kā darbojas TCP un UDP
  • 3 dažādi TCP un UDP pielietojumi
    • 3.1 TCP salīdzinājumā ar UDP spēļu serveriem
  • 4 atsauces

Datu pārsūtīšanas funkciju atšķirības

TCP nodrošina uzticamu un pasūtītu baitu straumes piegādi no lietotāja uz serveri vai otrādi. UDP nav paredzēts tiešajiem savienojumiem, un komunikācija nepārbauda uztvērēja gatavību.

Uzticamība

TCP ir uzticamāks, jo pārvalda ziņojumu apstiprināšanu un atkārtotu pārsūtīšanu pazaudētu daļu gadījumā. Tādējādi trūkst datu. UDP nenodrošina, ka sakari ir sasnieguši uztvērēju, jo nav apstiprināšanas, taimauta un retranslācijas jēdzienu.

Pasūtīšana

TCP pārraides tiek nosūtītas secīgi, un tās tiek saņemtas tajā pašā secībā. Ja datu segmenti nonāk nepareizā secībā, TCP pārkārto un piegādā lietojumprogrammu. Gadījumā, ja UDP, nosūtīto ziņojumu secība var netikt uzturēta, kad tā sasniedz saņemošo programmu. Nav pilnīgi nekādu iespēju paredzēt, kādā secībā tiks saņemta ziņa.

Savienojums

TCP ir smagsvara savienojums, kuram ir vajadzīgas trīs paketes kontaktligzdas savienojumam, un nodrošina sastrēgumu kontroli un uzticamību. UDP ir viegls transporta slānis, kas paredzēts IP. Nav izsekošanas savienojumu vai ziņojumu pasūtīšanas.

Pārsūtīšanas metode

TCP nolasa datus kā baitu straumi un ziņojums tiek pārsūtīts uz segmenta robežām. UDP ziņas ir pakas, kuras tiek nosūtītas individuāli, un, ielidojot, tiek pārbaudīta to integritāte. Paketes ir definējušas robežas, bet datu straumei to nav.

Kļūdu noteikšana

UDP darbojas pēc iespējas labāk. Protokols atbalsta kļūdu noteikšanu, izmantojot kontrolsummu, bet, kad tiek atklāta kļūda, pakete tiek izmesta. Nav mēģināts atkārtoti nosūtīt paketi, lai atgūtu no šīs kļūdas. Tas notiek tāpēc, ka UDP parasti ir paredzēts laika ziņā jutīgām lietojumprogrammām, piemēram, spēlēm vai balss pārraidei. Atjaunoties no kļūdas būtu bezjēdzīgi, jo līdz brīdim, kad tiek saņemta pārsūtītā pakete, tā nebūs lietderīga.

TCP izmanto gan kļūdu noteikšanu, gan kļūdu atkopšanu. Kļūdas tiek atklātas, izmantojot kontrolsummu, un, ja pakete ir kļūdaina, saņēmējs to neapstiprina, kas izraisa atkārtotu nosūtīšanu no sūtītāja. Šo darbības mehānismu sauc par pozitīvu apstiprinājumu ar atkārtotu pārraidi (PAR)..

Kā darbojas TCP un UDP

TCP savienojums tiek izveidots, izmantojot trīsceļu rokasspiedienu, kas ir savienojuma uzsākšanas un apstiprināšanas process. Kad savienojums ir izveidots, var sākties datu pārsūtīšana. Pēc pārraides savienojums tiek pārtraukts, aizverot visas izveidotās virtuālās shēmas.

UDP izmanto vienkāršu pārraides modeli bez netiešiem roku drebošiem dialogiem, lai garantētu uzticamību, pasūtīšanu vai datu integritāti. Tādējādi UDP nodrošina neuzticamu pakalpojumu, un datu shēmas var nonākt ārpus pasūtījuma, parādīties dublētās vai pazūd bez brīdinājuma. UDP pieņem, ka kļūdu pārbaude un labošana vai nu nav nepieciešama, vai arī tiek veikta lietojumprogrammā, izvairoties no šādas apstrādes pieskāriena tīkla interfeisa līmenī. Atšķirībā no TCP, UDP ir savietojams ar pakešu apraidi (nosūtīšana visiem lokālajā tīklā) un multiraidi (nosūtīt visiem abonentiem).

Dažādas TCP un UDP lietojumprogrammas

Web pārlūkošana, e-pasta un failu pārsūtīšana ir izplatītas lietojumprogrammas, kurās tiek izmantots TCP. TCP tiek izmantots, lai kontrolētu segmenta lielumu, datu apmaiņas ātrumu, plūsmas kontroli un tīkla pārslodzi. TCP tiek dota priekšroka, ja tīkla interfeisa līmenī ir vajadzīgas kļūdu labošanas iespējas. UDP lielākoties izmanto laika jutīgas lietojumprogrammas, kā arī serveri, kas atbild uz maziem ļoti liela klientu skaita jautājumiem. UDP ir savietojams ar pakešu apraidi - nosūtīšana visiem tīklā un multiraide - nosūtīšana visiem abonentiem. UDP parasti izmanto domēna vārdu sistēmā, Voice over IP, Trivial File Transfer Protocol un tiešsaistes spēlēs.

TCP vs UDP spēļu serveriem

Lai masveidā spēlētu vairāku spēlētāju tiešsaistes (MMO) spēles, izstrādātājiem bieži ir jāizdara arhitektūras izvēle starp UDP vai TCP noturīgu savienojumu izmantošanu. TCP priekšrocības ir noturīgi savienojumi, uzticamība un spēja izmantot patvaļīgu izmēru paketes. Lielākā TCP problēma šajā scenārijā ir pārslodzes kontroles algoritms, kas pakešu zudumu traktē kā joslas platuma ierobežojumu pazīmi un automātiski aizver pakešu sūtīšanu. 3G vai Wi-Fi tīklos tas var izraisīt ievērojamu latentumu.

Pieredzējis izstrādātājs Kristofers Lernö nosvēra plusus un mīnusus un iesaka šādus kritērijus, lai izvēlētos, vai savai spēlei izmantot TCP vai UDP:

  • Izmantojiet HTTP, izmantojot TCP, lai veiktu neregulārus, klienta iniciētus bezvalstniecības jautājumus, ja ir gadījuma rakstura kavēšanās.
  • Izmantojiet pastāvīgas vienkāršās TCP ligzdas, ja gan klients, gan serveris patstāvīgi sūta paketes, taču neregulāra kavēšanās ir piemērota (piemēram, tiešsaistes pokers, daudzi MMO).
  • Izmantojiet UDP, ja gan klients, gan serveris var patstāvīgi sūtīt paketes un gadījuma nobīde nav piemērota (piemēram, vairums vairāku spēlētāju darbības spēles, dažas MMO).

Atsauces

  • Wikipedia: pārraides kontroles protokols
  • Wikipedia: lietotāja datugrammas protokols
  • UDP vs TCP spēļu serveriem
  • Transmisijas kontroles protokols