TCP-t (Transmission Control Protocol - átvitel vezérlési protokoll)
Az ARPANET Internetté válásával, amelyben már számos LAN (Local Area Network), rádiós csomagszóró alhálózat, illetve több műholdas csatorna is működött, a végpontok közötti átviteli megbízhatóság csökkent. Ezért egy új szállítási protokollt vezettek be: TCP (Transmission Control Protocol - átvitel vezérlési protokoll). A TCP tervezésénél figyeltek arra is, hogy megbízhatatlan (az OSI terminológia szerint C típusú) alhálózatokkal is együtt tudjon működni. A TCP-vel együtt fejlesztették ki a hálózati réteg protokollját (IP - Internet Protocol) is.
A TCP/IP a legelterjedtebb protokoll a rétegzett hálózati struktúrák közül. Ez a protokoll az Internet alapvető protokollja.
A TCP/IP a különböző rétegekben elhelyezkedő kommunikációs protokollok gyűjteménye. Két meghatározó elem a TCP és az IP.
TCP átvitelvezérlő protokoll
A TCP (Transmission Control Protocol) átvitelvezérlő protokoll az IP-t (Internet Protocol) használva megbízható kapcsolatorientált adatátvitelt biztosít. A TCP fogadja a tetszőleges hosszúságú üzeneteket a felhasználói folyamattól és azokat maximum 64 kbájtos darabokra vágja szét. Ezeket a darabokat egymástól független datagramokként küldi el. A hálózati réteg sem azt nem garantálja, hogy a datagramokat helyesen kézbesíti, sem a megérkezett datagramok helyes sorrendjét. A TCP feladata az, hogy időzítéseket kezelve szükség szerint újraadja őket, illetve hogy helyes sorrendben rakja azokat össze az eredeti üzenetté. Minden TCP által elküldött bájtnak saját sorszáma van. A sorszámtartomány 32 bit széles, vagyis elegendően nagy ahhoz, hogy egy adott bájt sorszáma egyedi legyen.
TCP csomagformátum
A minimális TCP (Transmission Control Protocol) fejrész 20 bájtos.
A Forrásport és a Célport mezők az összeköttetések végpontjait azonosítják. Minden egyes állomásnak maga dönti el, hogy hogyan osztja ki a portjait.
A Sorszám és a Ráültetett nyugta mezők a szokásos funkcióikat hajtják végre. A TCP minden bájtot megsorszámoz, ezért 32 bit hosszúak.
A Fejrész hossz kijelöli, hogy a TCP fejrész hány 32 bites szót tartalmaz. Erre az információra az Opció mező változó hossza miatt van szükség.
Ezután hat jelzőbit következik.
Az Urg jelző akkor 1, ha a protokoll használja.
A Sürgősségi mutató (Urgent pointer) egy eltolási értéket ad meg, amely az aktuális sorszámtól számolva kijelöli a sürgős adatok helyét.
A Syn és Ack biteknek összeköttetés létesítésekor van funkciója. Összeköttetés kérésekor Syn=1, valamint Ack=0 annak jelzésére, hogy a ráültetett nyugta mező nincs használatban. Az összeköttetés válaszban van nyugta, így Syn=1 és Ack= l.
A Fin az összeköttetés lebontására használható, azt jelzi, hogy a küldőnek nincs több adata. Az állomás hibák miatti nem jó állapotba került összeköttetéseit az Rst bit használatával lehet megszüntetni.
Az Eom bit az Üzenet vége (End Of Message) jelentést hordozza.
A TCP-beli forgalomszabályozás változó méretű ablakot használ. 16-bites mezőre van szükség, mivel az Ablak azt adja meg hogy hány bájtot lehet még elküldeni.
Az Ellenőrzőösszeg képzési egyszerű: 16-bites szavakként az adatokat összegzik, majd az összeg 1-es komplemensét veszik. Vételkor a képződött összeghez ezt hozzáadva, hibátlan átvitel esetén nullát kapunk.
Az Opciók mező felhasználható összeköttetés létesítése során a puffer-méret egyeztetésére.
A TCP átvitelvezérlő protokoll az IP-t használva megbízható kapcsolatorientált adatátvitelt biztosít. A TCP fogadja a tetszőleges hosszúságú üzeneteket a felhasználói folyamattól és azokat maximum 64 kbájtos darabokra vágja szét. Ezeket a darabokat egymástól független datagramokként küldi el. A hálózati réteg sem azt nem garantálja, hogy a datagramokat helyesen kézbesíti, sem a megérkezett datagramok helyes sorrendjét. A TCP feladata az, hogy időzítéseket kezelve szükség szerint újraadja őket, illetve hogy helyes sorrendben rakja azokat össze az eredeti üzenetté. Minden TCP által elküldött bájtnak saját sorszáma van. A sorszámtartomány 32 bit széles, vagyis elegendően nagy ahhoz, hogy egy adott bájt sorszáma egyedi legyen.
A Forrásport az összeköttetések egyik végpontját azonosítja.
Az IP adatcsomag szolgáltatásokat végez, de nem garantálja a megbízható átvitelt.
Az Opciók mező rugalmasan alkalmazható biztonsági, forrás általi forgalomirányítási, hibajelentési, hibakeresési, időpont-megjelölési és egyéb információs célokra. A mező biztosításával elkerülhető, hogy a fejrészben levő biteket és mezőket ritkán használt információk számára kelljen lefoglalni.
Az Ellenőrzőösszeg képzési egyszerű: 16-bites szavakként az adatokat összegzik, majd az összeg 1-es komplemensét veszik. Vételkor a képződött összeghez ezt hozzáadva, hibátlan átvitel esetén nullát kapunk.
Az Ablak azt adja meg hogy hány bájtot lehet még elküldeni.
Az Eom bit az Üzenet vége (End Of Message) jelentést hordozza.
Az állomás hibák miatti nem jó állapotba került összeköttetéseit az Rst bit használatával lehet megszüntetni.
A Fin az összeköttetés lebontására használható, azt jelzi, hogy a küldőnek nincs több adata.
Az Ack bitnek az összeköttetés létesítésekor van funkciója.
A Syn bitnek az összeköttetés létesítésekor van funkciója.
Az Urg jelző akkor 1, ha a protokoll használja.
Az Opciók mező felhasználható összeköttetés létesítése során a pufferméret egyeztetésére.
A Fejrész hossz kijelöli, hogy a TCP fejrész hány 32 bites szót tartalmaz.
A ráültetett nyugta mező a szokásos funkciót hajtja végre.
A Sorszám mező a szokásos funkciót hajtja végre.
A Célport mező az összeköttetések egyik végpontját azonosítja.