A szállítási réteg (Transport layer)

Feladata az, hogy adatokat fogadjon a viszonyrétegtől, kisebb darabra vágja szét azokat, majd adja tovább a hálózati rétegnek és biztosítsa, hogy minden darab hibátlanul megérkezzék a másik oldalra. Továbbá, mind ezeket hatékonyan kell végrehajtania, ráadásul oly módon, hogy a viszonyréteg elől el kell fednie a hardvertechniká­ban elkerülhetetlenül bekövetkező változásokat. Fontos feladata még a címzések kezelése.

A szállítási szolgálat

A szállítási réteg legfőbb célja az, hogy hatékony, megbízható, és gazdaságos szolgálatot nyújtson a felhasználóinak, általában az alkalmazási rétegben futó folyamatoknak. E cél érdekében a szállítási réteg felhasználja a hálózati réteg által nyújtott szolgálatokat. A szállítási rétegen belül azt a hardver és/vagy szoftver elemet, amely a munkát végzi, szállítási funkcionális elemnek vagy szállítási entitásnak (transport entity) nevezzük.
Kétféle szállítási szolgálat létezik:

  • Összeköttetés alapú szállítási szolgálat: három fázisa van az összeköttetésnek: létesítés, adatátvitel és lebontás.
  • Összeköttetés nélküli szállítási szolgálat

A szállítási réteg létezése lényegében azt teszi lehetővé, hogy a szállítási szolgálat megbízhatóbb lehessen annál a hálózati szolgálatnál, amelyre épül. A szállítási réteg képes felfedezni és kiegyenlíteni az elveszett csomagok és a csonkolt adatok okozta hibákat. Mindezen felül a szállítási szolgálat primitívjei könyvtári függvényhívásokként is megvalósíthatók, és ezzel függetleníthetők a hálózati szolgálat primitívjeitől.
Az alsó 4 réteget tekinthetjük a szállítási szolgáltatónak (transport service provider), míg a magasabb rétegeket tekinthetjük a szállítási szolgálat felhasználójának (transport service user).

A szállítási protokollok elemei

A szállítási szolgálatot, egy a szállítási entitások között használt szállítási protokoll valósítja meg. Többek között a hibakezelést, sorszámozást, és forgalomszabályozást kell végeznie.
A szállítási rétegben a fizikai csatorna helyett az egész alhálózat szerepel.

  • Címzés: A szállítási rétegben a cél explicit címzése kötelező. Amikor egy alkalmazási folyamat egy távoli alkalmazási folyamattal akar összeköttetést létrehozni, meg kell jelölnie, hogy melyik folyamattal akar kapcsolatba lépni. Az általánosságban használt módszer az, hogy külön szállítási címeket definiálunk az egyes folyamatok részére. Az Interneten ezeket a végpontokat portoknak hívják. Mi a TSAP (Szállítási Szolgálatelérési Pont) kifejezést használjuk. Az ezzel rokon végpont az NSAP (Hálózati Szolgálatelérési Pont). Kezdeti összeköttetés-protokoll (Initial Connection Protocol): Minden olyan gépnek van egy folyamatszervere (process server), amely szolgálatokat akar felkínálni a távoli felhasználóknak. Több portot figyel egyszerre összeköttetési kérésekre várva. Ha ezt már nem lehet létrehozni, akkor egy névszolgáltató folyamat működik.
  • Összeköttetés létesítés: Háromutas kézfogás módszer: Ez az összeköttetés-létesítési protokoll nem igényli, hogy mindkét fél azonos sorszámmal kezdje az adást, így a globális időtől eltérő módszer is használható szinkronizálásra.
  • Összeköttetés bontása: Aszimmetrikus és szimmetrikus módon lehet. Az aszimmetrikusnál elég csak az egyik oldalon bontani a vonalat. A szimmetrikusnál külön kell mindkét oldalon bontani a kapcsolatot.
  • Pufferelés és forgalomszabályozás: Az alhálózat adattároló képességének következménye néha katasztrofális lehet, és speciális protokollok használatát teszi szükségessé.
  • Nyalábolás: - Feltöltési multiplexelés: Felfelé nyalábolás,
  • Letöltési multiplexelés: Lefelé nyalábolás.

Az Internet szállítási protokolljai

UDP (User Datagram Protocol – Felhasználói Datagram Protokoll)

Összeköttetés nélküli protokoll. Egy egyszerű protokoll és van néhány sajátos alkalmazása, mint pl.: kliens-szerver-interakciók és a multimédia. Az UDP olyan alkalmazásoknak kínálja a szolgálatát, amelyek összeköttetés kiépítése nélkül akarnak beágyazott IP-datagramokat küldeni.
Olyan szegmenseket használ az átvitelhez, amelyek egy 8 byte-os fejrészből (a fejrészben megtalálható a feladó és a címzett portszáma), valamint a felhasználói adatokból állnak. A két port a végpontok forrás- és célgépen belüli azonosításra szolgál. Amikor az UDP-szegmens megérkezik, akkor az adatmezejét a szállítási entitás kézbesíti a címzett portra kapcsolódó folyamatnak.
Az UDP biztosít egy interface-t az IP-protokoll használatához, azzal a többletszolgáltatással, hogy a portok használatával egyszerre több folyamatot képes demultiplexelni.

TCP (Transmission Control Protocol – Átvitel-vezérlési Protokoll)

Összeköttetés alapú protokoll. Megbízható bytefolyamot biztosít a végpontok között egy egyébként megbízhatatlan összekapcsolt hálózaton. A TCP-nek kell megteremtenie azt a megbízhatóságot, amelyet a legtöbb felhasználó megkíván, és amelyet az IP nem ad meg.
Minden TCP-t támogató gép rendelkezik egy TCP szállítási entitással, amely lehet egy könyvtári eljárás, egy felhasználói folyamat vagy a kernel része. A TCP-folyamokat és az IP-réteg felé használható interface-eket minden esetben a TCP-entitás kezeli. A felhasználói adatfolyamokat a TCP-entitás 64 KB-ot meg nem haladó méretű darabokra szedi szét. Az egyes darabokat önálló IP-datagramokban küldi el. Amikor egy géphez TCP-adatokat tartalmazó datagram érkezik, az a TCP-entitáshoz kerül, amely visszaállítja az eredeti bytefolyamokat.