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