Egészen eddig hallgatólagosan csupán egyetlen homogén hálózatot feltételeztünk, amelyben minden gép minden egyes rétegben ugyanazt a protokollt használja. Sajnos azonban ez a feltételezés túlzottan optimista. Sok különböző hálózat létezik, beleértve a PAN-okat, LAN-okat, MAN-okat és WAN-okat is. Foglalkoztunk az Ethernettel, a kábeltévés internettel, valamint rögzített és mobiltelefon-hálózatokkal, a 802.11-gyel, 802.16-tal, és számos egyéb hálózattal. Minden rétegben számos protokoll használata elterjedt ezekben a hálózatokban. A következő szakaszokban gondosan szemügyre vesszük azokat a kérdéseket, amelyek akkor merülnek fel, ha kettő vagy több hálózatot kapcsolunk össze internetwork vagy csak egyszerűen internet kialakítása érdekében.
Sokkal egyszerűbb lenne a hálózatokat csatlakoztatni, ha mindenki ugyanazt a hálózatkezelési technikát használná. Gyakran az a helyzet, hogy van egy domináns hálózattípus, mint például az Ethernet. Egyesek szerint a sokféle technika meg fog szűnni, amint mindenki rájön, hogy milyen csodálatos az [ide mindenki a saját kedvenc hálózatát írhatja]. Erre azonban nem számíthatunk. A történelem azt mutatja, hogy ez csak vágyálom. A különböző hálózatok különböző problémákkal küszködnek, például az Ethernet és a műholdas hálózatok valószínűleg mindig különbözni fognak. A meglévő rendszerek újrafelhasználása, mint például adathálózatok futtatása kábeltévén, telefonhálózaton és erősáramú vezetékeken olyan megszorításokkal jár, amelyek azt okozzák, hogy a hálózatok képességei különbözőek lesznek. A heterogenitás itt van és itt is marad.
Ha mindig lesznek különböző hálózatok, akkor egyszerűbb lenne, ha nem kéne összekapcsolnunk azokat. Ez azonban szintén valószínűtlen. Bob Metcalfe kifejtette, hogy az N csomóponttal megvalósított hálózat értéke egyenlő a csomópontok között létesíthető kapcsolatok számával, vagyis [Gilder, 1993]. Ez azt jelenti, hogy a nagy hálózatok értékesebbek, mint a kicsik, mivel számos összeköttetést tesznek lehetővé, így mindig lesz ösztönzés a kisebb hálózatok egyesítésére.
Az internet az elsődleges példa az összekapcsolásra. A hálózatok összekapcsolásának célja, hogy a felhasználók kommunikálni tudjanak egymással. Amikor egy internetszolgáltatónak (ISP) fizetünk a szolgáltatásért, lehet, hogy a fizetség a használt vonal sávszélességétől függ, de valójában az internetre csatlakozó más hosztokkal való csomagcsere lehetőségéért fogunk fizetni. Az internet nem lenne nagyon népszerű, ha csak az ugyanabban a városban lévő hosztoknak lehetne csomagot küldeni.
Mivel a hálózatok gyakran fontos dolgokban különböznek, a csomagok hálózatok közötti küldése nem mindig egyszerű. Foglalkoznunk kell a heterogenitás problémájával, és a skálázási problémákkal, mivel az eredményül kapott internet nagyon nagyra nő. Kezdetnek megnézzük, hogy a hálózatok miben különböznek, hogy lássuk, mivel állunk szemben. Ezután megnézzük azt a megoldást, amelyet az IP (Internet Protocol) – az internet hálózati réteg protokollja – olyan sikeresen használ, beleértve a hálózatokon keresztül alkalmazott alagúttechnikát, az összekapcsolt hálózatokban használt útválasztó technikát, valamint a csomagtördelési technikákat is.
A hálózatok sok mindenben különbözhetnek egymástól. A különbségek egy része a fizikai és az adatkapcsolati rétegben van, mint például az eltérő modulációs eljárások vagy keretformátumok. Ezekkel most nem foglalkozunk. Ehelyett az 5.38. ábrán felsorolunk néhány olyan különbséget, melyek a hálózati rétegben fordulhatnak elő. Az teszi a hálózatok összekapcsolását nehezebbé, szemben az egyetlen hálózaton belüli működéssel, hogy ezek a különbségek el vannak rejtve, nem láthatók.
Amikor egy adott hálózaton lévő forrásgép által küldött csomagoknak legalább egy idegen hálózaton át kell haladniuk, mielőtt elérnék a célhálózatot, számos probléma jelentkezhet a hálózatok közti interfészeken. Először is a forrásnak meg kell tudnia címezni a célt. Mit teszünk, ha a forrás egy Ethernet-hálózaton van, a cél pedig egy WiMAX-hálózaton? Feltételezve, hogy egyáltalán meg tudunk adni WiMAX-címet egy Ethernet-hálózatról, a csomagoknak egy összeköttetés nélküli hálózatról kell átmenniük egy összeköttetés-alapú hálózatra. Ehhez szükség lehet rövid időre egy új összeköttetés kialakítására, amely késleltetést involvál, és sok többletterhelést, ha az összeköttetést nem használják fel több csomaghoz.
Több speciális különbséghez kell alkalmazkodni. Hogyan továbbítana egy többesküldéses csomagot néhány tagot tartalmazó csoporthoz egy olyan hálózaton keresztül, amelyik nem támogatja a többesküldést? A különböző hálózatok által használt különböző maximális csomagméretek szintén jelentős problémát okozhatnak. Hogyan továbbítana egy 8000 bájtos csomagot egy olyan hálózaton keresztül, amelynek maximális mérete 1500 bájt? Ha egy összeköttetés-alapú hálózat csomagjait összeköttetés nélküli hálózat viszi át, akkor a csomagok sorrendje megváltozhat. Ez olyasvalami, amire az adó valószínűleg nem számított és (kellemetlen) meglepetésként érheti a vevőt is.
Ezek a különbségek némi erőfeszítéssel elfedhetők. Például, két hálózatot összekapcsoló átjáró különálló csomagokat állíthat elő minden célhoz a többesküldés jobb hálózati támogatása helyett. Elképzelhető, hogy a nagy csomagot feldarabolja és darabokban küldi el, majd újra egyesítésre kerül. A vevők pufferelhetik a csomagokat és sorrendben kézbesíthetik azokat
A hálózatok olyanok dolgokban is különbözhetnek, amelyeket nehéz kiegyenlíteni. A legegyértelműbb példa a szolgáltatás minősége. Ha az egyik hálózatban jó a szolgáltatás minősége, a másik hálózat pedig nem nyújt garantált minőségű szolgáltatást, akkor nem lehet sávszélesség- és késleltetési garanciát vállalni a valós idejű végpontok közötti forgalomra. Valójában ezek csak akkor érhetők el, ha a nem garantált minőségű hálózat kis kihasználtsággal működik, vagy alig használják, ami a legtöbb internetszolgáltatónak nem célja. A biztonsági mechanizmusok problémásak, de legalább titkosítás alkalmazható a bizalmasság és adatintegritás biztosítása érdekében azokon a hálózatokon, amelyek még nem tartalmaznak ilyet. Végül a számlázási különbségek meglepő számlákat eredményezhetnek, ha a normál használat hirtelen megdrágul, amint azt a mobilinternetes előfizetéssel szerződött mobiltelefon-használók (keserűen) megtapasztalhatták.
A különböző hálózatok összekapcsolására két alapvető lehetőség áll rendelkezésre: létrehozhatunk olyan eszközöket, amelyek lefordítják vagy átalakítják a csomagokat, amikor az egyik hálózatról a másikra kerülnek, vagy jó számítástechnikusként megpróbálhatjuk megoldani a problémát egy közvetett átjárást biztosító réteg hozzáadásával és egy, a különböző hálózatok fölötti közös réteg kialakításával. Az eszközök mindkét esetben a hálózatok közötti határra kerülnek.
Cerf és Kahn [1974] még a kezdet kezdetén egy általános réteg kialakítása mellett érvelt, hogy az a meglévő hálózatok közötti különbségeket elrejtse. Ez a megközelítés nagyon sikeresnek bizonyult, és az általuk ajánlott réteget valójában szétválasztották TCP- és IP-protokollra. Majdnem négy évtizeddel később az IP képezi a modern internet alapját. Ezért Cerf és Kahn megkapta a 2004-es Turing-díjat, amelyet informálisan az informatika Nobel-díjának neveznek. Az IP egy univerzális csomagformátumot biztosít, amelyet minden útválasztó felismer, és amely majdnem az összes hálózaton átküldhető. Az IP elérését kiterjesztették a számítógép-hálózatokról a telefonhálózatokra. Szenzorhálózatokon és egyéb apró eszközön is fut, amelyeket régen túl erőforrás-szegényesnek gondoltak ahhoz, hogy támogassák az IP-t.
Számos különböző eszközt mutatunk be a következőkben, amelyek hálózatokat kapcsolnak össze, mint például az ismétlők, elosztók (hubok), kapcsolók, hidak, útválasztók és átjárók. Az ismétlők és az elosztók csak a biteket mozgatják a vezetékek között. Ezek többnyire analóg eszközök, és semmit nem tudnak a magasabb szintű protokollokról. A hidak és kapcsolók az adatkapcsolati rétegben működnek. Segítségükkel kialakíthatók hálózatok, csak egy kis protokollfordítást kell végezni, például a 10, 100 és 1000 Mb/s-os Ethernet-kapcsolók közötti folyamatban. Ebben a fejezetben a hálózati rétegben működő csatlakoztató eszközökre koncentrálunk, név szerint az útválasztókra. A magasabb szintű csatlakoztató eszközökkel, az átjárókkal később foglalkozunk.
Először tekintsük meg, hogy magasabb szinten hogyan köthetők össze a különböző hálózatok egy közös hálózati réteggel. Egy 802.11-es, MPLS- és Ethernet-hálózatból álló összekapcsolt hálózat látható az 5.39.(a) ábrán. Tételezzük fel, hogy a 802.11-es hálózaton lévő forrásgép csomagot kíván küldeni az Ethernet-hálózaton lévő célgépnek. Mivel ezek a technikák különböznek, és egy harmadik típusú hálózat (MPLS) választja el őket, a hálózatok határain további feldolgozás szükséges.
Mivel általában a különböző hálózatok címzési formája is különbözhet, a csomag tartalmaz egy hálózati rétegbeli címet, amely bármelyik hosztot azonosítani tudja a három hálózaton. Az első határt akkor éri el a csomag, amikor a 802.11 hálózatról átmegy az MPLS-hálózatra. A 802.11 összeköttetés nélküli szolgáltatást biztosít, az MPLS pedig összeköttetés-alapút. Ez azt jelenti, hogy egy virtuális áramkört kell kiépíteni a hálózaton. Ha a csomag végighaladt a virtuális áramkör mentén, akkor eléri az Ethernet-hálózatot. Elképzelhető, hogy ezen a határon a csomag túl nagynak bizonyul a továbbküldéshez, mivel a 802.11 nagyobb kereteket tud kezelni, mint az Ethernet. A probléma megoldása érdekében a csomag feldarabolásra kerül, és minden darab külön kerül elküldésre. Amikor a darabok elérik a címzettet, összerakják azokat. Ezután a csomag befejezi útját.
Azt a protokollt, amely ezt az utazást feldolgozza, az 5.39.(b) ábra mutatja. A forrás a szállítási rétegből kap adatokat és csomagot állít elő egy közös hálózati rétegbeli fejrésszel, amely ebben a példában az IP. A hálózati fejrész tartalmazza a végső célcímet, amely meghatározza, hogy a csomagot az első útválasztón keresztül kell küldeni. Így a csomag beágyazódik a 802.11-es keretbe, amelynek célcíme az első útválasztó, majd ehhez továbbítódik. Az útválasztó a csomagot eltávolítja a keret adatmezőjéből, és a 802.11-es keretfejrészt eldobja. Az útválasztó megvizsgálja a csomagban lévő IP-címet és megkeresi azt az útválasztó táblázatban. A cím alapján eldönti, hogy elküldi a csomagot a második útválasztónak. Az útvonal ezen részéhez MPLS virtuális áramkört kell létesíteni a második útválasztóhoz, és a csomagot be kell ágyazni egy MPLS-keretbe, amely átviszi a csomagot ezen a virtuális áramkörön. A virtuális áramkör túlsó végén lévő eszköz eldobja az MPLS-fejrészt, és kiveszi a hálózati címet a következő hálózati rétegbeli ugrás meghatározásához. Minthogy ez a cím magának a címzettnek a címe, ezért nem kell a csomagot továbbküldeni. Mivel a csomag túl hosszú ahhoz, hogy átküldhető legyen az Ethernet-hálózaton, két darabra kell osztani. Mindkét rész bekerül egy-egy Ethernet-keret adatmezőjébe, és továbbítódik a cél Ethernet-címére. A címzett az Ethernet-fejrészt leválasztja minden keretről, és a csomagtartalom újból összeáll. A csomag végül eléri a címzett hálózati eszközt.
5.39. ábra - (a) Különböző hálózatokon átmenő csomag. (b) Hálózati és adatkapcsolati rétegbeli protokoll szerinti feldolgozás
Figyeljük meg, hogy az útválasztóval és a kapcsolóval (vagy híddal) megvalósított esetek lényegesen különböznek. Az útválasztó kiveszi a csomagot a keretből és a csomagban lévő hálózati címet használja fel a küldési célcím meghatározására. Kapcsoló (vagy híd) esetén a teljes keretet továbbítja a MAC-cím alapján. A kapcsolóknak nem kell ismerniük a csomagok kapcsolásához használandó hálózati réteg protokollt, az útválasztóknak viszont igen.
Sajnálatos módon a hálózatok összekapcsolása nem olyan egyszerű, mint ahogy hangzik. A hidak bevezetésének az volt a célja, hogy különböző típusú hálózatokat, vagy legalábbis különböző típusú LAN-okat kössenek össze. Ezt úgy érték el, hogy az egyik LAN-ból származó kereteket lefordították a másik LAN-hoz tartozó keretekre. Ez azonban nem működött túl jól, ugyanazon ok miatt, ami miatt a hálózatok összekapcsolása is nehéz: a LAN-ok jellemzői közötti különbségeket nehéz elrejteni, mint például az eltérő maximális csomagméreteket, valamint a prioritási osztállyal rendelkező, illetve nem rendelkező LAN-okat. Manapság a hidakat főként arra használják, hogy azonos típusú hálózatokat kapcsoljanak össze az adatkapcsolati rétegben, és az útválasztókat pedig arra, hogy különböző hálózatokat kapcsoljanak össze a hálózati rétegben.
A hálózatok összekapcsolása nagyon sikeres nagy hálózatok kialakításánál, de csak akkor működik, ha van egy közös hálózati réteg. Az idők során számos hálózati protokoll létezett. Nem egyszerű, hogy mindenki egyetlen formátumot használjon, mivel a vállalatok abban látják a kereskedelmi előnyt, ha saját formátumuk van, amelyet maguk ellenőrizhetnek. Példák az IP mellett, amely most majdnem univerzális hálózati protokoll: az IPX, az SNA és az AppleTalk. Ezek közül a protokollok közül jelenleg egyiket sem használják széles körben, de mindig lesznek más protokollok. A legszemléletesebb példa jelenleg valószínűleg az IPv4 és IPv6. Annak ellenére, hogy ezek az IP változatai, nem kompatibilisek egymással (különben semmi szükség nem lett volna az IPv6 kialakítására).
Az olyan útválasztót, amely több protokollt is képes kezelni, többprotokollos útválasztónak (multiprotocol router) nevezzük. Az ilyen útválasztónak vagy le kell fordítania a protokollokat, vagy át kell engednie a kapcsolatot egy magasabb protokollrétegnek. Egyik megoldás sem teljesen kielégítő. A magasabb rétegű, mondjuk TCP-alapú összeköttetéshez az összes hálózatnak TCP-t kell használnia (ami nem feltétlenül teljesül). Ez korlátozza a hálózat használatát azokra az alkalmazásokra, amelyek TCP-t használnak (amelyek nem tartalmaznak számos valós idejű alkalmazást).
A másik megoldási lehetőség a csomagok lefordítása a hálózatok között. Hacsak a csomagformátumok nem állnak közeli rokonságban, és használnak azonos információs mezőket, akkor az ilyen átalakítás mindig hiányos lesz, és gyakran kudarcra van ítélve. Az IPv6-cím például 128 bit hosszú. Ez nem fér el egy 32 bites IPv4-címmezőben, bármennyire is próbálja ezt az útválasztó megoldani. Az IPv4 és IPv6 ugyanazon hálózaton való futtatása bizonyítottan a legnagyobb probléma volt az IPv6 bevezetésénél. (Igazság szerint az ügyfeleket nem sikerült arról meggyőzni, hogy miért is szeretnék egyáltalán az IPv6-ot használni.) Nagyobb problémák várhatók az alapjaiban különböző protokollok közötti fordításnál, mint például az összeköttetés nélküli és összeköttetés-alapú hálózati protokollok fordításánál. Ezek miatt a problémák miatt a konverziót ritkán kísérlik meg. Még az IP is csak arra volt jó, hogy közös alapként szolgáljon. Kis igényt támaszt a futtató hálózattal szemben, de ennek eredményeképpen csak garancia nélküli szolgáltatást (best-effort) nyújt.
Két különböző hálózat együttműködését kezelni általános esetben túlságosan bonyolult. Ám van egy elterjedt sajátságos eset, amelynél az együttműködés még különböző hálózati protokollok esetén is megoldható. Ez az az eset, amikor a forrás- és célhosztok azonos típusú hálózatokon vannak, de van közöttük egy másfajta hálózat. Példaként gondoljunk egy nemzetközi bankra, amelynek van egy IPv6-hálózata Párizsban, egy IPv6-hálózata Londonban. és az irodákat az IPv4-es internet köti össze. Ezt a helyzetet szemlélteti az 5.40. ábra.
A megoldást erre a problémára egy olyan módszer jelenti, amelyet alagút típusú átvitelnek (tunneling) neveznek. Ahhoz, hogy a párizsi irodában lévő hoszt egy IP-csomagot küldjön a londoni irodában lévő hosztnak, a párizsi irodában lévő hoszt összeállít egy csomagot, amely tartalmazza a londoni IPv6-címet, és azt elküldi egy többprotokollos útválasztónak, amely összeköti a párizsi IPv6-hálózatot és az IPv4-internetet. Amikor az útválasztó megkapja az IPv6-csomagot, becsomagolja ezt egy IPv4-fejrésszel, amely a londoni IPv6-hálózathoz csatlakozó többprotokollos útválasztó IPv4-oldalát címezi meg. Így az útválasztó behelyez egy (IPv6) csomagot egy (IPv4) csomagba. Amikor a beágyazott csomag megérkezik, a londoni útválasztó kibontja az eredeti IPv6-csomagot és továbbküldi a címzett hosztnak.
Az IPv4-interneten keresztülhaladó útvonalat tekinthetjük úgy is, mint egy nagy alagutat, amely az egyik többprotokollos útválasztótól a másikig tart. Az IPv6-csomag egyszerűen az alagút egyik végétől a másikig utazik, kényelmesen a kis dobozában. Egyáltalán nem kell foglalkoznia az IPv4-gyel. Ugyanígy a Párizsban és Londonban levő hosztoknak sem. Csak a többprotokollos útválasztóknak kell tudniuk kezelni az IPv4- és IPv6-csomagokat egyaránt. Valójában az egyik többprotokollos útválasztótól a másikig vezető teljes útvonal olyan, mint egyetlen adatkapcsolat feletti ugrás.
Nézzünk egy hasonlatot az alagút típusú átvitel világosabbá tételére: vegyünk egy embert, aki az autójával Párizsból Londonba utazik. Franciaországon belül az autó saját erejéből mozog, de amikor eléri a La Manche csatornát, berakják egy nagy sebességű vonatba és átszállítják Angliába a Csalagúton keresztül (az autóknak nem szabad behajtani a Csalagútba). Valójában az autót mint rakományt szállítják, ahogy ez az 5.41. ábrán látható. A másik oldalon az autót kiengedik az angol utakra és ismét önjáró lesz. A csomagok alagút típusú átvitele egy idegen hálózaton keresztül ugyanígy működik.
Az alagút típusú átvitelt gyakran használják izolált hosztok és hálózatok más hálózatokkal való összekötéséhez. A hálózat lényegében az alaphálózat fölé van terítve, ezért elfedő (overlay) hálózatnak hívják. Egy új képességekkel ellátott hálózati protokoll bevezetése közös érdek, ahogy azt az „IPv6 IPv4-en keresztül” példánk is mutatja. Az alagút típusú átvitel hátránya, hogy azon a hálózaton, amelyen az alagútat kiépítették, egyik hoszt sem érhető el, mivel a csomagok nem tudnak kiszabadulni az alagút közepén. Az alagutaknak ez a korlátozása azonban VPN-ek (Virtual Private Networks – virtuális magánhálózat) esetén előnnyé válik. A VPN egyszerűen egy réteg, amelyet a biztonság növelésére használnak. A VPN-eket a 8. fejezetben vizsgáljuk meg.
Egy interneten keresztüli útválasztás ugyanazt az alapproblémát veti fel, mint az egyetlen hálózaton belüli útválasztás. Kiindulásként a hálózatok belsőleg különböző útválasztó algoritmusokat használhatnak. Az egyik hálózat például kapcsolatállapot-alapú útválasztást, a másik pedig távolságvektor-alapú útválasztást használ. Mivel a kapcsolatállapot-alapú algoritmusoknak ismerniük kell a topológiát, de a távolságvektor-alapú algoritmusoknak nem, ez a különbség önmagában is megbonyolítja a legrövidebb útvonal megtalálását az interneten.
A különböző operátorok által futtatott hálózatok nagyobb problémákhoz vezetnek. Először, az operátorok eltérő elképzeléssel rendelkezhetnek azzal kapcsolatban, hogy mi a jó útvonal a hálózaton. Előfordulhat, hogy az egyik operátor a legkisebb késleltetésű útvonalat akarja használni, a másik pedig a legolcsóbbat. Ennek eredményeképpen az operátorok különböző mennyiséget használnak a legrövidebb útvonal költségének beállításához (késleltetési időt szemben a pénzbeli költségekkel). A súlyozások nem lesznek összehasonlíthatók a hálózaton, így a legrövidebb útvonalakat nem jól határozzák meg.
Ami még rosszabb, elképzelhető az is, hogy az egyik operátor azt akarja, hogy a másik ne is tudja a hálózaton lévő útvonalak részleteit, talán mivel a súlyok és útvonalak érzékeny információt hordozhatnak (mint például a költség), amelyek versenyképes üzleti előnyt eredményezhetnek.
Végül az összekapcsolt hálózat lényegesen nagyobb lehet bármely benne lévő hálózatnál. Ilyenkor olyan útválasztó algoritmusra lehet szükség, amely jól skálázható hierarchia használatával, még abban az esetben is, ha egyik egyéni hálózatnak sem kell hierarchiát használnia.
Ezek a megfontolások egy kétszintű útválasztó algoritmust eredményeznek: minden hálózaton belül egy körzeten belüli vagy belső útválasztó protokollt (intradomain vagy interior gateway protocol) használnak (a „gateway” egy régebbi szóhasználat az „útválasztóra”). Ez lehet kapcsolatállapot-alapú protokoll, amelyet már leírtunk. Az összekapcsolt hálózatot alkotó hálózatokon a körzetek közötti vagy külső útválasztó protokoll (interdomain vagy exterior gateway protocol) kerül felhasználásra. A hálózatok használhatnak különböző körzeten belüli protokollokat, de ugyanazt a körzetek közötti protokollt kell használniuk. Az interneten a körzetek közötti útválasztó protokollt BGP-nek (Border Gateway Protocoll – határátjáró protokoll) hívják. Ezt a következő szakaszban tárgyaljuk.
Van még egy fontos bevezetendő kifejezés. Mivel minden hálózat a többitől függetlenül működik, gyakran hivatkoznak rájuk autonóm rendszerekként (Autonomous System, AS). Erre jó elméleti modell egy ISP-hálózat. Valójában az ISP-hálózat több AS-ből állhat, amennyiben ezt több hálózatként kezelik vagy több hálózatból lett összeszedve. De a különbség általában nem jelentős.
A két szint általában nem szigorúan hierarchikus, mivel nagyon nem optimális útvonalak alakulhatnak ki, ha egy nagy nemzetközi hálózat és egy kis regionális hálózat alkotna egyetlen hálózatot. A hálózatok útvonalaival kapcsolatban azonban viszonylag kevés információ került kiadásra az összekapcsolt hálózat útvonalainak megkereséséhez. Ez segít a bonyodalmak megoldásában. Javítja a skálázhatóságot és lehetővé teszi, hogy az operátorok szabadon válasszanak útvonalakat a saját hálózataikban a saját választott protokollal. Ehhez nem kell összehasonlítani a súlyokat a hálózatokon, vagy érzékeny adatokat kitenni a hálózaton kívülre.
Eddig nagyon kevés szót ejtettünk az összekapcsolt hálózatban lévő útvonalak meghatározási módjáról. Az interneten fontos tényező az ISP-k közötti üzleti megállapodás. Minden ISP felszámíthat pénzt a többi ISP-nek a forgalom átviteléért. Másik tényező, hogy ha az összekapcsolt hálózatok útválasztásához gyakran át kell lépni nemzetközi határokat, akkor a különböző jogszabályokat is figyelembe kell venni, mint például Svédország szigorú személyiségjogi törvényeit a svéd állampolgárok személyi adatainak Svédországból történő kivitelére vonatkozóan. Ezek a nem műszaki tényezők bekerülnek az útválasztási politikába (routing policy), amely megszabja az autonóm hálózatok által használt útvonalak kiválasztásának módját. A BGP leírásakor foglalkozunk az útválasztási politikákkal is.
Minden hálózat megszab valamilyen maximális csomagméretet. Ezeknek a határoknak különféle okai lehetnek. Néhány ezek közül a következő:
Hardver (például egy Ethernet-keret hossza).
Operációs rendszer (például minden puffer 512 bájtos).
Protokollok (például a csomaghossz mezőben a bitek száma).
Igazodás valamilyen nemzeti vagy nemzetközi szabványhoz.
Az a kívánság, hogy a hibák által okozott újraadások valamilyen szintre csökkenjenek.
Az a kívánság, hogy egyetlen csomag se foglalhassa le a csatornát túl sokáig.
Mindezen tényezők eredménye, hogy a hálózattervezők nem választhatnak tetszésük szerinti maximális csomagméretet. A maximális adatmezőhossz Ethernet esetén 1500 bájt, 802.11 esetén pedig 2272. Az IP nagyvonalúbb, 65 515 bájtos csomagokat engedélyez.
A hosztok általában nagy csomagok átvitelét részesítik előnyben, mivel ez csökkenti a csomag többletterhét, mint amilyen például a fejrész bájtjaira pazarolt sávszélesség. Nyilvánvaló hálózat-összekapcsolási probléma jelentkezik, amikor egy nagy csomag olyan hálózaton akar keresztülhaladni, amelynek a maximális csomagmérete túl kicsi. Ez állandó probléma, és a megoldást erre az interneten szerzett tapasztalatok alapján találták meg.
Egy lehetséges megoldás az, ha eleve elkerüljük a probléma felmerülését. Ezt azonban egyszerűbb mondani, mint megoldani. A forrás általában nem tudja, hogy a csomag milyen útvonalon megy a célig, így azt különösen nem tudja, hogy milyen kicsiknek kell lenni azoknak a csomagoknak, amelyeket ott elfogadnak. Ezt a csomagméretet az útvonal legnagyobb átvihető adategységének hívjuk (Maximum Transmission Unit, MTU). Még ha a forrás tudja is az útvonal MTU-ját, akkor is a csomagok útválasztása független az összeköttetés nélküli hálózaton, mint például az internet. Az útválasztás azt jelenti, hogy az útvonalak hirtelen változhatnak, amely váratlanul módosíthatja az útvonal MTU-ját.
Alternatív megoldás erre a problémára, ha megengedjük az útválasztóknak, hogy a csomagokat darabokra (fragments) tördeljék, és minden darabot önálló hálózati rétegbeli csomagként küldjenek el. De mint ahogy azt minden kisgyermekes szülő tudja, egy nagy tárgy kisebb darabokká alakítása lényegesen könnyebb, mint a visszairányú folyamat. (A fizikusok még egy nevet is adtak ennek a jelenségnek: a termodinamika második főtétele.) A csomagkapcsoló hálózatoknak is gondjaik vannak a darabok újbóli összerakásával.
Két ellentétes stratégia létezik a darabok eredeti csomaggá történő visszaállítására. Az első stratégia az, hogy a „kiscsomagos” hálózat által okozott darabolást átlátszóvá kell tenni az utána következő hálózatok számára, amelyeken a csomagnak át kell haladnia a végső célcím felé. Ezt a lehetőséget az 5.42.(a) ábra mutatja. Ebben a megoldásban, amikor egy túlméretes csomag érkezik meg a útválasztóra, az útválasztó feldarabolja ezt a csomagot, és az összes darabot ugyanannak a kimenő útválasztónak, a
-nek címezi. Ez az útválasztó a darabokat újra összerakja egy csomaggá. Így a kiscsomagos hálózaton történő áthaladás átlátszó lesz. A következő hálózatok nem is tudnak arról, hogy darabolás történt.
Az átlátszó darabolás egyszerű, de van néhány problémája. Egyrészt, a kimeneten levő útválasztónak tudnia kell, mikor kapta meg az összes részt, tehát vagy egy számlálómezőt vagy egy „csomag vége” bitet kell megadni. Másrészt, mivel az összes csomagnak ugyanazon az útválasztón keresztül kell távoznia ahhoz, hogy újból össze lehessen azokat állítani, az útvonalak korlátozottak. Azzal, hogy nem engedjük meg, hogy egyes darabok más-más útvonalat kövessenek a végső célcím felé, némi teljesítőképesség-vesztéssel kell számolni. Ennél jelentősebb az útválasztó által esetlegesen elvégzendő munka. Szükség lehet a darabok pufferelésére, amint azok megérkeznek, és el kell dönteni, hogy ezeket mikor kell eldobni, ha nem az összes darab érkezik meg. A munka egy része felesleges lehet, ha a csomag egy sor kiscsomagos hálózaton megy keresztül, és ismételten fel kell darabolni, majd újra össze kell állítani.
A másik darabolási stratégia az, hogy tartózkodjunk a közbeeső útválasztóknál az összerakástól. Ha egyszer egy csomagot feldaraboltunk, minden darabot úgy kezelünk, mintha az egy eredeti csomag lenne. Az útválasztók átviszik a darabokat, ahogy az az 5.42.(b) ábrán látszik. Az összeállítás csak a címzett hoszton történik meg.
A nem átlátszó darabolás fő előnye, hogy kevesebb munkát követel meg az útválasztóktól. Az IP így működik. A kialakítás megköveteli, hogy a darabok oly módon legyenek számozva, hogy az eredeti adatfolyam újból összeállítható legyen. Az IP által használt kialakítás minden darabhoz megad egy csomagszámot (amelyet minden csomag tartalmaz), egy abszolút bájteltolást a csomagban, és egy jelzőt, amely jelzi, hogy ez a csomag vége-e. Erre mutat példát az 5.43. ábra. Ez a kialakítás egyszerű, és vannak vonzó tulajdonságai. A darabok belehelyezhetők egy pufferbe a címzett hoszton, az összeállítás helyén, még abban az esetben is, ha a csomagok nem sorrendben érkeznek. A darabok továbbdarabolhatók, ha azok olyan hálózaton mennek keresztül, ahol még kisebb az MTU. Ezt az 5.43.(c) ábra mutatja. Elképzelhető, hogy a csomagot újbóli küldés (ha nem érkezett meg az összes darab) esetén másképpen darabolják fel. Végül, a darabok tetszőleges méretűek lehetnek, akár egészen kicsik is (például csomagfejrész + 1 bájt). Az összes esetben a cél egyszerűen a csomagszámot és a darabeltolást használja az adatok megfelelő elhelyezéséhez, és a csomag-vége jelzőt, ha az egész csomag megérkezett.
Sajnos ezzel a kialakítással is van néhány gond. A többletteher több lehet, mint átlátszó darabolás esetén, mivel a darabok fejrészei olyan adatkapcsolaton kerülnek átvitelre, ahol lehet, hogy nincs is rájuk szükség. De a legfőbb probléma a darabok megléte. Kent és Mogul [1987] azzal érvelt, hogy a darabolás és a fejrész által okozott többletterhelés rontja a teljesítőképességet, mivel egy teljes csomag elveszik, ha bármelyik darab elveszik, és a darabolás nagyobb terhet ró a hosztokra, mint azt eredetileg gondoltuk.
5.43. ábra - Darabolás, ha az elemi darabméret 1 bájt. (a) Eredeti csomag, amely 10 adatbájtot tartalmaz. (b) A darabok egy olyan hálózaton való keresztülhaladás után, ahol a maximális csomagméret 8 adatbájt + fejrész. (c) A darabok egy 5 adatbájt + fejrész csomagméretű útválasztón való áthaladás után
Ez visszavezet minket az eredeti megoldáshoz, mely szerint szabaduljunk meg a hálózaton történő darabolástól. A modern internet is ezt a stratégiát követi. Ezt a folyamatot útvonal-MTU felderítésének (path MTU discovery) [Mogul és Deering, 1990] nevezzük. Ez a következőképp működik. Az IP-csomagokban a fejrészbitek úgy vannak beállítva, hogy jelezzék, hogy nincs engedélyezve a darabolás. Ha egy útválasztó túl nagy csomagot kap, akkor hibacsomagot állít elő, azt visszaküldi a forrásnak, és eldobja a csomagot. Ezt az 5.44. ábra mutatja. Amikor a forrás megkapja a hibacsomagot, a benne lévő információ alapján újra feldarabolja a csomagot az útválasztó által kezelhető méretű darabokra. Ha az egyik útválasztónak az útvonal mentén még kisebb az MTU-ja, akkor a folyamat megismétlődik.
Az útvonal-MTU felderítésének előnye, hogy a forrás tudja, hogy milyen hosszú csomagokat küldjön. Ha az útvonalak és az útvonal MTU-ja változik, akkor új hibacsomag aktiválódik és a forrás alkalmazkodik az új útvonalhoz. A darabolásra azonban a forrás és a cél között továbbra is szükség van, kivéve, ha a magasabb rétegek ismerik az útvonal MTU-t és a megfelelő mennyiségű adatot átadják az IP-nek. A TCP és az IP jellemzően együtt kerül megvalósításra (TCP/IP-ként), az ilyen típusú információ átadása érdekében. Ez más protokollok esetén nem feltétlenül van így, de a darabolás a hálózatról átkerült a hosztokba.
Az útvonal-MTU felderítésének hátránya, hogy adódhatnak indulási késleltetések a csomag küldésénél. Nagyobb körülfordulási késleltetésre lehet szükség az útvonal megvizsgálásához és az MTU megkereséséhez, mielőtt az adatokat a célhoz kézbesítenék. Ez felveti a kérdést, miszerint vannak-e jobb kialakítások. A válasz valószínűleg „igen”. Tételezzünk fel olyan kialakítást, amelyben az útválasztó egyszerűen csonkítja az MTU-t meghaladó csomagokat. Ez biztosítja, hogy a cél a lehető leggyorsabban megismerje az MTU-t (a kézbesített adatok mennyiségéből) és megkapja az adatok egy részét.