TCP vs. UDP: A megbízhatóság és a hatékonyság közötti vita misztikus eloszlatása

Ma a TCP-vel kezdünk. A rétegezésről szóló fejezet korábbi részében már említettünk egy fontos pontot. A hálózati rétegnél és az alatta lévő rétegeknél inkább a hoszt-hoszt kapcsolatokról van szó, ami azt jelenti, hogy a számítógépnek tudnia kell, hol van egy másik számítógép ahhoz, hogy csatlakozni tudjon hozzá. A hálózaton belüli kommunikáció azonban gyakran folyamatok közötti kommunikáció, nem pedig gépek közötti kommunikáció. Ezért a TCP protokoll bevezeti a port fogalmát. Egy portot csak egy folyamat foglalhat el, ami közvetlen kommunikációt biztosít a különböző hosztokon futó alkalmazásfolyamatok között.

A szállítási réteg feladata, hogy közvetlen kommunikációs szolgáltatásokat biztosítson a különböző hosztokon futó alkalmazásfolyamatok között, ezért végponttól végpontig terjedő protokollnak is nevezik. A szállítási réteg elrejti a hálózat alapvető részleteit, lehetővé téve az alkalmazásfolyamat számára, hogy úgy lássa, mintha egy logikus, végponttól végpontig terjedő kommunikációs csatorna lenne a két szállítási rétegbeli entitás között.

A TCP a Transmission Control Protocol (Átvitelvezérlő Protokoll) rövidítése, és kapcsolatorientált protokollként ismert. Ez azt jelenti, hogy mielőtt az egyik alkalmazás elkezdhetne adatokat küldeni a másiknak, a két folyamatnak kézfogást kell végrehajtania. A kézfogás egy logikailag összekapcsolt folyamat, amely biztosítja az adatok megbízható továbbítását és rendezett fogadását. A kézfogás során a forrás- és a célállomás között kapcsolat jön létre egy sor vezérlőcsomag cseréjével, valamint bizonyos paraméterek és szabályok egyeztetésével a sikeres adatátvitel biztosítása érdekében.

Mi a TCP? (Mylinking'sHálózati érintésésHálózati csomagközvetítőképes mind TCP, mind UDP csomagokat feldolgozni)
A TCP (Transmission Control Protocol) egy kapcsolatorientált, megbízható, bájtfolyam-alapú szállítási rétegbeli kommunikációs protokoll.

KapcsolatorientáltA kapcsolatorientált azt jelenti, hogy a TCP kommunikáció egy-egyhez, azaz pont-pont, végponttól végpontig terjedő kommunikáció, ellentétben az UDP-vel, amely egyszerre több hostnak is képes üzeneteket küldeni, így az egy-többhöz kommunikáció nem valósítható meg.
MegbízhatóA TCP megbízhatósága biztosítja, hogy a csomagok megbízhatóan érkezzenek meg a címzetthez, függetlenül a hálózati kapcsolat változásaitól, ami a TCP protokollcsomag-formátumát összetettebbé teszi, mint az UDP-ét.
Bájtfolyam-alapúA TCP bájtfolyam-alapú jellege lehetővé teszi bármilyen méretű üzenet továbbítását, és garantálja az üzenetek sorrendjét: még ha az előző üzenet nem is érkezett meg teljes egészében, és még ha a következő bájtok meg is érkeztek, a TCP nem fogja azokat az alkalmazásrétegnek feldolgozásra kézbesíteni, és automatikusan eldobja a duplikált csomagokat.
Miután az A és a B állomás létrehozta a kapcsolatot, az alkalmazásnak csak a virtuális kommunikációs vonalat kell használnia az adatok küldéséhez és fogadásához, így biztosítva az adatátvitelt. A TCP protokoll felelős olyan feladatok vezérléséért, mint a kapcsolat létrehozása, leválasztása és tartása. Meg kell jegyezni, hogy itt azt mondjuk, hogy a virtuális vonal csak a kapcsolat létrehozását jelenti, a TCP protokoll szerinti kapcsolat csak azt jelzi, hogy a két fél megkezdheti az adatátvitelt, és biztosítja az adatok megbízhatóságát. Az útválasztási és szállítási csomópontokat a hálózati eszközök kezelik; maga a TCP protokoll nem foglalkozik ezekkel a részletekkel.

A TCP-kapcsolat egy full-duplex szolgáltatás, ami azt jelenti, hogy az A és a B állomás mindkét irányban képes adatokat továbbítani egy TCP-kapcsolaton belül. Vagyis az adatok kétirányú áramlásban továbbíthatók az A és a B állomás között.

A TCP ideiglenesen tárolja az adatokat a kapcsolat küldőpufferében. Ez a küldőpuffer egyike a háromirányú kézfogás során létrehozott gyorsítótáraknak. Ezt követően a TCP a megfelelő időben elküldi a küldő gyorsítótárban lévő adatokat a célállomás fogadó gyorsítótárának. A gyakorlatban minden partnernek lesz egy küldő és egy fogadó gyorsítótára, ahogy az itt látható:

TCP-UDP

A küldő puffer a TCP implementáció által a küldő oldalon fenntartott memóriaterület, amely az elküldendő adatok ideiglenes tárolására szolgál. Amikor a háromirányú kézfogást végrehajtják egy kapcsolat létrehozásához, a küldő gyorsítótár beállítódik és az adatok tárolására szolgál. A küldő puffer dinamikusan igazodik a hálózati torlódáshoz és a fogadótól érkező visszajelzésekhez.

A fogadó puffer a TCP implementációja által a fogadó oldalon fenntartott memóriaterület, amely a fogadott adatok ideiglenes tárolására szolgál. A TCP a fogadott adatokat a fogadó gyorsítótárban tárolja, és megvárja, amíg a felsőbb alkalmazás beolvassa azokat.

Vegye figyelembe, hogy a küldési és fogadási gyorsítótár mérete korlátozott, és amikor a gyorsítótár megtelt, a TCP bizonyos stratégiákat alkalmazhat, például torlódásvezérlést, adatfolyam-vezérlést stb., hogy biztosítsa a megbízható adatátvitelt és a hálózat stabilitását.

A számítógépes hálózatokban az állomások közötti adatátvitel szegmensek segítségével történik. Tehát mi is az a csomagszegmens?

A TCP egy TCP szegmenst, vagy csomagszegmenst úgy hoz létre, hogy a bejövő adatfolyamot darabokra osztja, és minden darabhoz TCP fejléceket ad. Minden szegmens csak korlátozott ideig továbbítható, és nem haladhatja meg a maximális szegmensméretet (MSS). Lefelé menet a csomagszegmens áthalad a kapcsolati rétegen. A kapcsolati rétegnek van egy maximális átviteli egysége (MTU), amely a maximális csomagméret, amely áthaladhat az adatkapcsolati rétegen. A maximális átviteli egység általában a kommunikációs interfészhez kapcsolódik.

Szóval mi a különbség az MSS és az MTU között?

A számítógépes hálózatokban a hierarchikus architektúra nagyon fontos, mivel figyelembe veszi a különböző szintek közötti különbségeket. Minden rétegnek más a neve; a szállítási rétegben az adatot szegmensnek, a hálózati rétegben pedig IP-csomagnak nevezik. Ezért a maximális átviteli egység (MTU) a hálózati réteg által továbbítható maximális IP-csomagméretként tekinthető, míg a maximális szegmensméret (MSS) egy szállítási rétegbeli fogalom, amely a TCP-csomag által egyszerre továbbítható maximális adatmennyiségre utal.

Vegye figyelembe, hogy amikor a maximális szegmensméret (MSS) nagyobb, mint a maximális átviteli egység (MTU), az IP-fragmentáció a hálózati rétegen történik, és a TCP nem fogja a nagyobb adatokat az MTU méretnek megfelelő szegmensekre osztani. A hálózati rétegen lesz egy, az IP-réteg számára dedikált szakasz.

TCP csomagszegmens-struktúra
Vizsgáljuk meg a TCP fejlécek formátumát és tartalmát.

TCP szegmens

Sorszám: Egy véletlenszerű szám, amelyet a számítógép generál a kapcsolat létrejöttekor, és ez a kezdeti érték a TCP-kapcsolat létrejöttekor, és a sorszámot a SYN csomagon keresztül elküldi a fogadónak. Adatátvitel során a küldő az elküldött adatmennyiségnek megfelelően növeli a sorszámot. A fogadó a fogadott sorszám alapján ítéli meg az adatok sorrendjét. Ha az adatok sorrendje nem megfelelő, a fogadó átrendezi az adatokat az adatok sorrendjének biztosítása érdekében.

Nyugtázási szám: Ez egy sorszám, amelyet a TCP-ben használnak az adatok vételének visszaigazolására. Ez jelzi a küldő által várt következő adat sorszámát. Egy TCP-kapcsolaton a fogadó a fogadott adatcsomag-szegmens sorszáma alapján határozza meg, hogy mely adatokat sikerült fogadni. Amikor a fogadó sikeresen veszi az adatokat, egy ACK csomagot küld a küldőnek, amely tartalmazza a visszaigazolási számot. Az ACK csomag vétele után a küldő megerősítheti, hogy az adatokat sikeresen fogadta a válaszszám visszaigazolása előtt.

A TCP szegmens vezérlőbitjei a következők:

ACK bit: Amikor ez a bit 1, az azt jelenti, hogy a visszaigazoló válasz mező érvényes. A TCP azt határozza meg, hogy ezt a bitet 1-re kell állítani, kivéve a SYN csomagokat, amikor a kapcsolat kezdetben létrejön.
RST bit: Amikor ez a bit 1, az azt jelzi, hogy kivétel van a TCP kapcsolatban, és a kapcsolatot kényszeríteni kell a bontásra.
SZIN bit: Amikor ez a bit 1-re van állítva, az azt jelenti, hogy a kapcsolat létrejön, és a sorszám kezdeti értéke be van állítva a sorszám mezőben.
FIN bit: Amikor ez a bit 1, az azt jelenti, hogy a jövőben nem kerül sor több adat küldésére, és a kapcsolat szükséges.
A TCP különféle funkcióit és jellemzőit a TCP csomagszegmensek szerkezete testesíti meg.

Mi az UDP? (MylinkingHálózati érintésésHálózati csomagközvetítőképes mind TCP, mind UDP csomagokat feldolgozni)
A User Datagram Protocol (UDP) egy kapcsolat nélküli kommunikációs protokoll. A TCP-vel összehasonlítva az UDP nem biztosít komplex vezérlőmechanizmusokat. Az UDP protokoll lehetővé teszi az alkalmazások számára, hogy közvetlenül küldjenek beágyazott IP-csomagokat kapcsolat létrehozása nélkül. Amikor a fejlesztő az UDP használatát választja a TCP helyett, az alkalmazás közvetlenül kommunikál az IP-címmel.

Az UDP protokoll teljes neve User Datagram Protocol (felhasználói adatgram protokoll), és a fejléce mindössze nyolc bájt (64 bit), ami nagyon tömör. Az UDP fejléc formátuma a következő:

UDP szegmens

Cél- és forrásportokFő céljuk annak jelzése, hogy melyik UDP folyamatnak kell csomagokat küldenie.
CsomagméretA csomagméret mező tartalmazza az UDP fejléc méretét és az adatcsomag méretét.
Ellenőrzőösszeg: Úgy tervezték, hogy biztosítsa az UDP fejlécek és adatok megbízható kézbesítését. Az ellenőrzőösszeg szerepe annak észlelése, hogy történt-e hiba vagy sérülés az UDP csomag továbbítása során, és ezáltal az adatok integritásának biztosítása.

A TCP és az UDP közötti különbségek a MylinkingbenHálózati érintésésHálózati csomagközvetítőképes mind TCP, mind UDP csomagokat feldolgozni
A TCP és az UDP a következő szempontokban különböznek:

TCP vs. UDP

KapcsolatA TCP egy kapcsolat-orientált átviteli protokoll, amely megköveteli a kapcsolat létrehozását az adatok átvitele előtt. Az UDP ezzel szemben nem igényel kapcsolatot, és azonnal képes az adatok átvitelére.

SzolgáltatásobjektumA TCP egy egy-egyhez kétpontos szolgáltatás, azaz egy kapcsolatnak csak két végpontja van egymással való kommunikációhoz. Az UDP azonban támogatja az egy-egyhez, egy-többhöz és sok-többhöz interaktív kommunikációt, amely egyszerre több gazdagéppel is kommunikálhat.

MegbízhatóságA TCP megbízható adattovábbítást biztosít, biztosítva, hogy az adatok hibamentesek, veszteségmentesek, ne ismétlődjenek meg, és igény szerint érkezzenek meg. Az UDP ezzel szemben mindent megtesz, és nem garantálja a megbízható kézbesítést. Az UDP esetében adatvesztés és egyéb problémák adódhatnak az átvitel során.

Torlódásszabályozás, áramlásszabályozásA TCP torlódás- és áramlásszabályozási mechanizmusokkal rendelkezik, amelyek a hálózati körülményeknek megfelelően képesek beállítani az adatátviteli sebességet az adatátvitel biztonságának és stabilitásának biztosítása érdekében. Az UDP nem rendelkezik torlódás- és áramlásszabályozási mechanizmusokkal, így még nagyon túlterhelt hálózat esetén sem módosítja az UDP küldési sebességet.

Fejléc felettiA TCP hosszú fejléccel rendelkezik, jellemzően 20 bájt, ami megnő, ha opciós mezőket használunk. Az UDP ezzel szemben fix, mindössze 8 bájtos fejléccel rendelkezik, így az UDP fejlécterhelése alacsonyabb.

TCP vs. UDP

TCP és UDP alkalmazási forgatókönyvek:
A TCP és az UDP két különböző szállítási rétegbeli protokoll, és alkalmazási forgatókönyvekben is vannak eltérések.

Mivel a TCP egy kapcsolatorientált protokoll, elsősorban olyan helyzetekben használják, ahol megbízható adatátvitelre van szükség. Néhány gyakori használati eset:

FTP fájlátvitelA TCP biztosítja, hogy a fájlok ne vesszenek el és ne sérüljenek meg az átvitel során.
HTTP/HTTPSA TCP biztosítja a webtartalom integritását és helyességét.
Mivel az UDP egy kapcsolat nélküli protokoll, nem garantálja a megbízhatóságot, de rendelkezik a hatékonyság és a valós idejű működés jellemzőivel. Az UDP a következő forgatókönyvekhez alkalmas:

Alacsony csomagforgalmú forgalom, például DNS (Domain Name System)A DNS-lekérdezések általában rövid csomagok, és az UDP gyorsabban tudja végrehajtani őket.
Multimédiás kommunikáció, például videó és hangA magas valós idejű követelményeket támasztó multimédia-átvitelhez az UDP alacsonyabb késleltetést biztosít, így biztosítva az adatok időben történő továbbítását.
Műsorszórásos kommunikációAz UDP támogatja az egy-többhöz és a sok-többhöz kommunikációt, és használható szórt üzenetek továbbítására.

Összefoglalás
Ma a TCP-ről tanultunk. A TCP egy kapcsolatorientált, megbízható, bájtfolyam-alapú szállítási rétegbeli kommunikációs protokoll. Biztosítja az adatok megbízható továbbítását és rendezett fogadását kapcsolat létrehozásával, kézfogással és nyugtázással. A TCP protokoll portokat használ a folyamatok közötti kommunikáció megvalósításához, és közvetlen kommunikációs szolgáltatásokat nyújt a különböző hosztokon futó alkalmazásfolyamatok számára. A TCP kapcsolatok full-duplexek, lehetővé téve az egyidejű kétirányú adatátvitelt. Ezzel szemben az UDP egy kapcsolatmentes kommunikációs protokoll, amely nem nyújt megbízhatósági garanciákat, és bizonyos, magas valós idejű követelményeket támasztó forgatókönyvekhez alkalmas. A TCP és az UDP különböznek a csatlakozási módban, a szolgáltatásobjektumban, a megbízhatóságban, a torlódásvezérlésben, az adatfolyam-vezérlésben és egyéb szempontokban, és alkalmazási forgatókönyveik is eltérőek.


Közzététel ideje: 2024. dec. 03.