TCP vs UDP

Kétféle Internet Protocol (IP) forgalom létezik. Ők TCP vagy Átviteli vezérlő protokoll és UDP vagy Felhasználói adatgram protokoll. A TCP kapcsolatorientált - ha a kapcsolat létrejön, az adatok kétirányúak lehetnek. Az UDP egy egyszerűbb, kapcsolat nélküli internetprotokoll. Több üzenetet csomagként küldünk darabokban, UDP használatával.

Összehasonlító táblázat

Különbségek - hasonlóságok - TCP és UDP összehasonlító diagram
TCPUDP
Betűszó a Átviteli vezérlő protokoll Felhasználói Datagram Protokoll vagy Universal Datagram Protocol
Kapcsolat A Transmission Control Protocol egy kapcsolatorientált protokoll. A User Datagram Protocol egy kapcsolat nélküli protokoll.
Funkció Mivel az üzenet az interneten keresztül eljut az egyik számítógépről a másikra. Ez kapcsolat alapú. Az UDP protokoll az üzenet továbbításában vagy továbbításában is használatos. Ez nem kapcsolat alapú, ami azt jelenti, hogy az egyik program csomagokat küldhet egy másiknak, és ez a kapcsolat vége.
Használat A TCP nagy megbízhatóságot igénylő alkalmazásokhoz alkalmazható, az átviteli idő viszonylag kevésbé kritikus. Az UDP olyan alkalmazásokhoz alkalmazható, amelyek gyors, hatékony átvitelt igényelnek, például játékokat. Az UDP állapot nélküli jellege olyan szerverek számára is hasznos, amelyek hatalmas számú ügyfél kis kérdéseire válaszolnak.
Használat más protokollok között HTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Adatcsomagok megrendelése A TCP átrendezi az adatcsomagokat a megadott sorrendben. Az UDP-nek nincs rejlő sorrendje, mivel az összes csomag egymástól független. Ha megrendelésre van szükség, azt az alkalmazási rétegnek kell kezelnie.
Az átvitel sebessége A TCP sebessége lassabb, mint az UDP. Az UDP gyorsabb, mert a hiba helyreállítását nem kíséreljük meg. Ez egy "legjobb erőfeszítés" protokoll.
Megbízhatóság Abszolút garancia van arra, hogy az átvitt adatok érintetlenek maradnak, és ugyanabban a sorrendben érkeznek, mint amelyben elküldték. Nincs garancia arra, hogy az elküldött üzenetek vagy csomagok eljutnak-e egyáltalán.
Fejléc mérete A TCP fejléc mérete 20 byte Az UDP fejléc mérete 8 bájt.
Közös fejléc mezők Forrás port, cél port, ellenőrző összeg Forrás port, cél port, ellenőrző összeg
Az adatok streamingje Az adatokat bájtfolyamként olvassa le, és a jelüzenetek (szegmensek) határaira nem kerülnek megkülönböztető jelzések. A csomagokat külön-külön küldik el, és azok integritását csak akkor ellenőrzik, ha megérkeznek. A csomagok határozott határokkal rendelkeznek, amelyeket beérkezéskor tiszteletben tartanak, vagyis a fogadó aljzaton végzett olvasási művelet teljes üzenetet eredményez, ahogy eredetileg elküldték.
Súly A TCP nehéz. A TCP-nek három csomag szükséges a socket-kapcsolat beállításához, mielőtt bármilyen felhasználói adatot el lehet küldeni. A TCP kezeli a megbízhatóságot és a torlódások ellenőrzését. Az UDP könnyű. Nincs üzenetrendelés, nyomkövető kapcsolatok stb. Ez egy kicsi szállítási réteg, amelyet az IP tetejére terveztek.
Adatfolyam-vezérlés A TCP nem végez áramlásszabályozást. A TCP-nek három csomag szükséges a socket-kapcsolat beállításához, mielőtt bármilyen felhasználói adatot el lehet küldeni. A TCP kezeli a megbízhatóságot és a torlódások ellenőrzését. Az UDP nem rendelkezik opcióval az áramlásvezérléshez
Hiba ellenőrzése A TCP hibaelhárítást és helyreállítást végez. A hibás csomagokat a forrásról a célállomásra továbbítják. Az UDP ellenőrzi a hibákat, de a hibás csomagokat egyszerűen eldobja. A hiba helyreállítását nem kíséreljük meg.
Fields 1. Sorozat száma, 2. AcK szám, 3. Adatok eltolása, 4. Fenntartva, 5. Vezérlő bit, 6. Ablak, 7. Sürgős mutató 8. Opciók, 9. Töltés, 10. Összeg ellenőrzése, 11. Forrás port, 12. A rendeltetési kikötő 1. Hossz, 2. Forrás port, 3. Cél port, 4. Ellenőrizze az összeget
Elismerés Nyugtázó szegmensek Nincs nyugtázás
Kézfogás SYN, SYN-ACK, ACK Nincs kézfogás (kapcsolat nélküli protokoll)

Tartalom: TCP vs UDP

  • 1 Különbségek az adatátviteli szolgáltatásokban
    • 1.1 Megbízhatóság
    • 1.2 Rendelés
    • 1.3 Csatlakozás
    • 1.4 Az átadás módja
    • 1.5 Hibakeresés
  • 2 Hogyan működik a TCP és az UDP
  • 3 A TCP és az UDP különféle alkalmazásai
    • 3.1 TCP vs. UDP játékkiszolgálókhoz
  • 4 Hivatkozások

Az adatátviteli szolgáltatások különbségei

TCP biztosítja a bájt-adatfolyam megbízható és rendezett továbbítását a felhasználóról a szerverre vagy fordítva. UDP nem a végpontok közötti összeköttetéseknek szól, és a kommunikáció nem ellenőrzi a vevőkészülék készenlétét.

Megbízhatóság

TCP megbízhatóbb, mivel kezeli az üzenet nyugtázását és az újraküldést elveszett alkatrészek esetén. Így egyáltalán nincs hiányzó adat. UDP nem biztosítja, hogy a kommunikáció eljusson a vevőhöz, mivel a nyugtázás, az időkorlát és az újraküldés fogalma nem létezik.

Rendelés

TCP az átvitel sorozatban történik, és ugyanabban a sorrendben érkezik. Ha az adatszegmensek rossz sorrendben érkeznek, a TCP átrendezi és továbbítja az alkalmazást. Abban az esetben UDP, Az elküldött üzenet sorrendjét nem lehet fenntartani, amikor az eléri a fogadó alkalmazást. Egyáltalán nem lehet megjósolni az üzenet fogadásának sorrendjét.

Kapcsolat

TCP egy nehézcsatlakozású csatlakozás, amely három csomagot igényel a foglalat csatlakoztatásához, és kezeli a torlódások ellenőrzését és megbízhatóságát. UDP egy könnyű szállító réteg, amelyet egy IP-hez terveztek. Nincsenek nyomkövető kapcsolatok vagy üzenetek megrendelése.

Az átadás módja

TCP az adatokat bájtfolyamként olvassa és az üzenetet továbbítja a szegmensek határaihoz. UDP az üzenetek olyan csomagok, amelyeket külön-külön küldnek el, és érkezéskor ellenőrzik azok integritását. A csomagok határokat határoztak meg, míg az adatfolyamnak nincs.

Hibakeresés

Az UDP "minden erőfeszítés" alapon működik. A protokoll támogatja a hibaérzékelést ellenőrző összeg útján, de amikor hibát észlelnek, a csomag eldobásra kerül. Nem kíséreljük meg a csomag újraküldését az ebből a hibából való helyreállítás céljából. Ennek oka az, hogy az UDP általában időérzékeny alkalmazásokhoz, például játékhoz vagy hangátvitelhez készült. A hibától való helyreállítás értelmetlen lenne, mivel az újraküldött csomag kézhezvételének idõpontjáig nem lesz haszna.

A TCP a hiba észlelését és a hiba helyreállítását is használja. A hibákat ellenőrző összeggel észleljük, és ha egy csomag hibás, akkor a vevő nem nyugtázza azt, ami a feladó általi újbóli továbbítást indítja el. Ezt a működési mechanizmust nevezzük pozitív visszaigazolás újraküldéssel (PAR).

Hogyan működik a TCP és az UDP

A TCP kapcsolatot háromutas kézfogással hozzák létre, amely a kapcsolat kezdeményezésére és nyugtázására szolgál. Miután a kapcsolat létrejött, megkezdheti az adatátvitelt. Az átvitel után a kapcsolatot az összes létrehozott virtuális áramkör bezárásával megszakítják.

Az UDP egy egyszerű átviteli modellt használ, implicit kézfogás-párbeszédek nélkül, a megbízhatóság, a megrendelés vagy az adatok integritásának garantálása érdekében. Így az UDP megbízhatatlan szolgáltatást nyújt, és az adatgramok rendellenesen érkezhetnek, másolatként megjelenhetnek, vagy értesítés nélkül eltűnhetnek. Az UDP azt feltételezi, hogy a hibaellenőrzés és -javítás vagy nincs szükség, vagy végrehajtásra kerül az alkalmazásban, elkerülve az ilyen feldolgozás fölösleges alkalmazását a hálózati interfész szintjén. A TCP-vel ellentétben az UDP kompatibilis a csomagos adásokkal (küldés mindenkinek a helyi hálózaton) és a multicasting-kel (minden előfizetőnek küldés).

A TCP és az UDP különböző alkalmazásai

A webböngészés, az e-mail és a fájlátvitel olyan gyakori alkalmazások, amelyek a TCP-t használják. A TCP a szegmens méretének, az adatcsere sebességének, az áramlásvezérlésnek és a hálózati torlódásoknak a vezérlésére szolgál. A TCP akkor előnyös, ha a hálózati interfész szintjén hibajavító eszközökre van szükség. Az UDP-t nagyrészt időérzékeny alkalmazások, valamint olyan kiszolgálók használják, amelyek hatalmas számú ügyfél kis kérdéseire válaszolnak. Az UDP kompatibilis a csomagos műsorszórással - küldés mindenki számára a hálózaton és multicasting - küldés minden előfizetőnek. Az UDP-t általában a Domain Name System, a Voice over IP, a Trivial File Transfer Protocol és az online játékok területén használják.

TCP vs. UDP játékkiszolgálókhoz

A tömegesen multiplayer online (MMO) játékokhoz a fejlesztőknek gyakran építészeti döntést kell hozniuk az UDP vagy a TCP tartós kapcsolatok használata között. A TCP előnyei a tartós kapcsolatok, a megbízhatóság és az önkényes méretű csomagok felhasználásának képessége. A TCP legnagyobb problémája ebben a forgatókönyvben a torlódásvezérlő algoritmus, amely a csomagvesztést a sávszélesség korlátozásának jeleként kezeli, és automatikusan fojtja a csomagok küldését. 3G vagy Wi-Fi hálózatokon ez jelentős késést okozhat.

Christoffer Lernö tapasztalt fejlesztője mérlegelte az előnyeket és hátrányokat, és a következő kritériumokat ajánlja annak kiválasztásához, hogy TCP-t vagy UDP-t használja-e a játékodhoz:

  • Használjon HTTP-t a TCP-n keresztül alkalmi, kliens által kezdeményezett állapot nélküli lekérdezések készítéséhez, ha rendben van az alkalmi késleltetés.
  • Használjon állandó TCP-aljzatokat, ha mind az ügyfél, mind a szerver egymástól függetlenül küld csomagokat, de az alkalmi késleltetés rendben van (például online póker, sok MMO).
  • Használja az UDP-t, ha mind az ügyfél, mind a szerver függetlenül küldhet csomagokat, és az alkalmi késés nem megfelelő (például a legtöbb multiplayer akciójáték, néhány MMO).

Irodalom

  • Wikipedia: Transmission Control Protocol
  • Wikipedia: Felhasználói Datagram Protokoll
  • UDP vs TCP játékkiszolgálókhoz
  • Az átviteli vezérlő protokoll