TCP

A HupWiki-ből...

Tartalomjegyzék

Bevezető

Transmission Control Protocol

Az Internet-en használt kapcsolatorientált kommunikációs protokoll, ellentétben az UDP -vel. Gyakran használják, mert könnyen kezelhető, viszont ezt a hatékonyságban kell megfizetni.

Történet

Az ArpaNet idején alkották meg, fejlesztését az USA kormánya támogatta, később szabadon felhasználható és terjeszthető protokollá vált, melyet ma is előszeretettel alkalmaznak a gondos megtervezés miatt.

Referenciák

Leírása a 7-es számú szabványban van, ami megegyezik a 793-as rfc-vel.

Leírás

Az interneten használt TCP/IP modell, az alábbi rétegekből épül fel:

  • Egyéb felső szint, mint pl. az alkalmazás
  • TCP
  • Internet Protokoll
  • Kommunikációs hálózat

(Vö. az ISO 7 rétegű OSI modelljével)

A TCP egy megbízható folyamat-folyamat közti kommunikációra alkalmas protokoll célját szolgálja. Tudása:

  • Alapvető adatátvitel: Egy oktettekből álló folytonos adatfolyam átvitelére látja el, úgy hogy a bájtokat szegmensekre bontja szét. Időnként szükség lehet arra, hogy meggyőződjünk róla, hogy minden elküldött adatot a túloldal megkapott, ezért a TCP definiál egy push műveletet, mely arra szolgál, hogy minden még el nem küldött adatot elküldjünk, illetve meggyőződjünk róla, hogy minden elküldésre szánt adat megérkezett. A fogadó oldal ebből a push műveletből semmit sem érzékel.
  • Megbízhatóság: A TCP dolga az elveszett, megsérült, megduplázódott, nem helyes sorrendben érkezett csomagok érzékelése, és ezek kiküszöbölése. Ezt úgy éri el, hogy minden egyes kiküldött oktetthez tartozik egy sorszám, és a fogadó oldalnak pozitív megerősítést kell adjon a megérkezett oktettekről. Ha egy bizonyos időn belül nem jön pozitív megerősítés, akkor az adatot újraküldi a küldő oldal. Mindamellet ez a sorszám arra is jó, hogy a fogadó oldal a nem helyes sorrendben jött adatokat helyesen sorba tudja rendezni és észlelje a duplázódásokat. Az adatok sérülésének észrevételére pedig ellenörzőösszeget használ.
  • Adatfolyam vezérlés: A TCP egy úgynevezett ablakot használ az adatfolyamvezérlésre. A küldő oldal egyszerre pozitív megerősítés nélkül nem küldhet több oktettet, mint amekkora a fogadó ablaka.
  • Multiplexitás: Mint említettük a TCP folyamat-folyamat közti kommunikációra szolgál, azonban egy Hoszton több folyamat is futhat, és több is akarhat párhuzamosan kommunikálni, így a TCP a hoszton ún. portokat használ. A kapcsolat kommunikációnál használt hálózati címe, és a TCP port együtt adják az ún. socket-et és a socketekből álló egyértelmű párokkal azonosítjuk a kapcsolatot. Minden egyes hoszt saját feladata, hogy a feladatok számára portokat biztosítson egy hozzárendeléssel(bind()).
  • Kapcsolatok: A megbízhatóságot, és az adatfolyamvezérlést már említettük. Ezek arról szólnak, hogyan kell létrehozni és karbantartani a kapcsolatokat. Ezen információk együttese alkotja a kapcsolatot, beleértve a socket-et, a sorszámot és az ablakméretet. Amikor két folyamat kommunikálni szeretne, előbb létre kell hozni a kapcsolatot és ha a kommunikációt befejezettnek tekintik, akkor azt le kell zárni és a használt erőforrásokat fel kell szabadítani. Lévén a kommunikációt egy nem feltétlenül megbízható alapokra helyezett hálózaton kell lefolytatni, így a kapcsolat létrehozásához kézfogási (Handshake) mechanizmusokat kell beépíteni.
  • Megelőző biztonság: A TCP-t használó esetekben, ha nincs minden érték előre megadva, akkor a TCP gondoskodik helyes default értékek használatáról, és beállításáról. (Pl. kapcsolódó kliens esetén automatikusan kap portot, ha nem adunk meg külön ablakméretet, akkor az OS TCP kezelő része ad meg ilyet, stb.)

Lásd még: