8. fejezet: A TCP/IP protokoll és az Internet
Mivel az Internet hatalmas léptekkel fejlődik, ezért egy külön fejezetet szenteltünk az Internet hálózattal kapcsolatos legfontosabb ismeretek összefoglalására. Itt természetesen már felhasználjuk az előbbiekben szereplő ismereteket.
Az Internet kisebb kiterjedésű számítógépes hálózatok (LAN-ok) összekapcsolásából álló globális számító-gépes rendszer. A rendszer alapjait a hatvanas évek elején az USA-ban alakították ki a Védelmi Minisztérium támogatásával indított ARPA kutatási program keretében, ezért kezdetben a neve ARPANET volt. Azt vizsgálták, hogy milyen módon valósítható meg az egymástól távol lévő számítógépeken keresztül történő adattovábbítás. A cél egy olyan kommunikációs rendszer kialakítása volt, amely akkor is tovább működik ha egy-egy része valamilyen ok miatt kiesik. Az adatok átvitelére csomagkapcsolt átvitelt használtak. Az egyszerű kommunikációt megvalósító levelezésen vagy adatbázisok elérésén túl ma már különféle multimédia-alkalmazások is használhatók.
110. ábra: TCP/IP és az OSI modell
A későbbiekben már Internet-nek nevezett hálózat — bár a rétegmodell szemlélettel 1960-as években tervezték — nem követi az OSI hét rétegű felépítését. A hálózati modell négy rétegből áll:
Alkalmazási szint (Application) Itt vannak a felhasználói és a hálózati kapcsolatot biztosító programok
Hoszt-hoszt réteg (Transport) Az OSI modell szállítási hálózati rétegének felel meg. A létesített és fennálló kapcsolat fenntartását biztosítja. Két rétegprotokollból áll: az egyik a Transmission Control Protocol (TCP) azaz a továbbítást szabályozó eljárás, a másik az összekötetés mentes szállítási protokoll User Datagram Protocol (UDP)
Hálózatok közötti (Internet ) Az OSI modell hálózati rétegének felel meg, ez a réteg végzi az a csomagok útvonal kijelölését a hálózatok között. Ennek a rétegnek a protokollja az Internet Protocol (IP), az üzenetvezérlő protokoll cím meghatározó eljárása, a foglalt címet meghatározó eljárás. A rétegben előforduló események és hibák jelzésére szolgál az Internet Control Message Protocol (ICMP), az Internet Vezérlőüzenet Protokoll.
Hálózat elérési (Network Interface) Az OSI modell két alsó szintjének felel meg, és ez biztosítja a kapcsolatot a csomópontok között. (Pl.: Ethernet, Token-Ring, Token-Bus).
Az információ áramlása két csomópont között az 111. ábrán látható.
111. ábra: A TCP/IP csomópontok közti információáramlás
TCP/IP protokoll
Az Internet szállítási rétege: a TCPAz eredeti ARPANET-ben az alhálózattól virtuális áramkör szolgálatot vártak el (azaz tökéletesen megbízhatót). Az első szállítási réteg protokoll az NCP (Network Control Protocol - hálózatvezérlési protokoll) elvileg egy tökéletes alhálózattal való együttműködésre épült. Egyszerűen átadta a TPDU-kat a hálózati rétegnek és feltételezte, hogy a megfelelő sorrendben kézbesítődnek a célnál. A tapasztalat azt mutatta, hogy az ARPANET-en belül ez a protokoll kielégítően működik.
Ahogy azonban az ARPANET Internetté vált, amelyben már számos LAN, rádiós csomagszóró alhálózat; valamint több műholdas csatorna is működött, azaz a végpontok közötti átviteli megbízhatóság csökkent. Ezért egy új szállítási protokollt,- a TCP-t (Transmission Control Protocol - átvitel vezérlési protokoll) vezettek be. A TCP tervezésénél már figyelembe vették azt, hogy megbízhatatlan (az OSI terminológia szerint C típusú) alhálózatokkal is tudjon együttműködni. A TCP-vel együtt fejlesztették a hálózati réteg protokollját (IP) is.
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 TCP által használt fejrész a 112. ábrán látható. A minimális TCP fejrész 20 bájtos. A FORRÁSPORT és a CÉLPORT mezők az összeköttetések végpontjait (TSAP-címek az OSI terminológia szerint) azonosítják. Minden egyes hosztnak magának kell eldöntenie, hogy miképpen allokálja (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Ó-t (Urgent pointer). Ez valójában 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. A hoszt 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ű forgó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 algoritmusa 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ő különféleképpen használható fel, pl. összeköttetés létesítése során a puffer-méret egyeztetésére.
Az Internet hálózati rétege: az IP
A hálózati réteg IP protokollja a 80-as években jelent meg. A protokoll összeköttetés mentes. A szállított csomagok a datagramok, amely a forrás hoszt-tól a cél hosztig kerülnek továbbításra, esetleg több hálózaton is keresztül. A hálózati réteg megbízhatatlan összeköttetés mentes szolgálatot biztosít, így az összes megbízhatósági mechanizmust a szállítási rétegben kell megvalósítani, ami biztosítja a két végállomás közötti megbízható összeköttetést.
Az IP működése a következő: A szállítási réteg az alkalmazásoktól kapott üzeneteket maximum 64 kbájtos datagramokra tördeli, amelyek az útjuk során esetleg még kisebb darabokra lesznek felvágva. Amikor az összes datagram elérte a célgépet, ott a szállítási réteg ismét összerakja üzenetté. A datagram két részből áll: egy fejrészből és egy szövegrészből. A fejrészben 20 bájt rögzített, és van egy változó hosszúságú opcionális rész is.
A VERZIÓ mező a protokoll verzióját azonosítja, így a protokoll módosítását is ezzel figyelembe lehet venni. Az IHL adja a fejrész teljes hosszát 32 bites egységekben (20bájt+opció rész). Minimális értéke:5. (Nincs opció.)
A SZOLGÁLAT TÍPUS mező teszi lehetővé a hoszt számára, hogy kijelölje az alhálózattól kívánt szolgálat típusát. Különféle sebességek és megbízhatósági fokok különböző kombinációi között lehet választani. Ez azért fontos mert különféle optimális átvitelt lehet megvalósítani. Például digitalizált kép- vagy hang továbbításakor a gyors átvitel sokkal fontosabb, mint az esetleges átviteli hibák javítása. Ha azonban adat- vagy programfájlokat továbbítunk akkor a pontos átvitel a fontosabb, és nem a gyorsaság.
A TELJES HOSSZÚSÁG mező a teljes datagram hosszát tartalmazza (fejrész+adat). A maximális hosszúság 65 536 bájt.
Az AZONOSÍTÁS mező alapján állapítja meg a célhoszt, hogy egy újonnan érkezett csomag melyik datagramhoz tartozik. Egy datagram minden egyes darabja ugyanazzal az Azonosítás mező értékkel rendelkezik.
Ezután egy nem használt bit, majd két 1-bites mező következik. A DF mező a Don't Fragment (ne tördelj !) kifejezés rövidítése. Ha ez a bit 1 értékű, akkor az átjárók nem tördelhetik a datagramot, mert a célállomás képtelen azt ismét összerakni. Ha a datagram nem vihető keresztül a hálózaton, akkor vagy kerülő utat kell választani, vagy el kell dobni.
Az MF mező neve a More Fragments (több darab) rövidítése. A széttördelt datagramdarabokat jelzi, kivéve az utolsót. A Teljes hosszúság mező mintegy második ellenőrzésként használható, vajon nem hiányzik-e datagramdarab, és hogy az egész datagram összeállt-e.
Ehhez a kapcsolódik a DATAGRAMDARAB-ELTOLÁS mező, ami azt jelöli ki, hogy az adott darab hol található a datagramban. Minden datagramdarab hosszúságának, (kivéve az utolsót), 8 bájt egész számú többszörösének kell lennie, amely az elemi datagramdarab hosszúsága. Mivel e mező 13 bit hosszú, ezért maximálisan 8192 darabból állhat egy datagram, amelyből a maximális datagramhossz 8*8192=65 536 bájt.
Az ÉLETTARTAM mező lényegében egy 8 bites számláló, amely a csomagok élettartamát tartalmazza másodpercben. Amikor értéke nullává válik, akkor az adott csomag megsemmisül. Így a maximális élettartam 255 s lehet.
Amikor a hálózati réteg összerak egy teljes datagramot, tudnia kell, hogy mit tegyen vele.
A PROTOKOLL mező kijelöli, hogy a datagram a különféle szállítási folyamatok közül melyikhez tartozik. A TCP a leggyakoribb választás, de léteznek egyebek is.
A FEJRÉSZ ELLENŐRZŐ ÖSSZEGE csak a fejrész ellenőrzésére szolgál. Egy ilyen ellenőrzőösszeg azért hasznos, mert a fejrész a darabolások miatt változhat az átjárókban.
A FORRÁSCÍM és a CÉLCÍM hálózati számot és a hosztszámot adják meg (ld. később!!!).
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.
Forgalomirányítás
Az ARPANET eredetileg az elosztott forgalomirányítási algoritmust használta. Ez egyrészt néhány csomag tartós hurokba kerülését okozta, másrészt nem használt alternatív utakat. Mikor a hálózat nagy méretűvé növekedett, akkor a forgalomirányító táblák kicserélésével előálló forgalom már olyan nagy volt, hogy akadályozta a normál forgalmat is.
Ezért a megváltoztatott jelenlegi algoritmusban minden egyes IMP belsőleg fenntart egy adatbázist, amely az egyes vonalakon való késleltetéseket tartalmazza. Erre az adatbázisra alapozva minden IMP kiszámolja a közte és az összes többi IMP közötti legrövidebb utat. A számítás mértékéül a késleltetést használja. Mivel minden egyes IMP a legrövidebb út algoritmust (majdnem) ugyanarra az adatbázisra alapozva futtatja, ezért az utak konzisztensek és kevés hurok alakul ki. A forgalom és a topológia változásaihoz való alkalmazkodás érdekében minden IMP 10 másodperces átlagolási idővel méri vonalain a késleltetést. E mérések eredményét egy aktuális sorszámmal ellátva minden IMP megkapja. Az információ köröztetéséhez az IMP-k az elárasztásos algoritmust használják.
1.fejezet: A hálózatok célja, alkalmazása, alapfogalmak
2.fejezet: Fizikai átviteli jellemzők és módszerek
3.fejezet: Közeg-hozzáférési módszerek
4.fejezet: Adatkapcsolati protokollok
8.fejezet folytatása: Címzési rendszer, Összeköttetés mentes szállítási protokoll: az UDP, az Internet vezérlése: az ICMP protokoll, Hálózat elérési réteg, a UNIX hálózatkezeléséről röviden, Példa az alkalmazási rétegre: Az Internet szolgáltatások, WWW, Ellenőrző kérdések