8. Datagrammok fragmentálása és összerakása


A TCP/IP-t úgy tervezték, hogy különböző hálózatokon is használható legyen. Sajnos a hálózati tervezők nem igazán értenek egyet abban, hogy maximálisan mekkora lehet egy csomag mérete. Az Ethernet hálózatoknál ez 1500 oktet. Az Arpanet maximum 1000 oktet körüli csomagokkal dolgozik. Egyes gyors hálózatoknál a csomagméret ennél jóval nagyobb lehet. Az első ötlet az, hogy az IP egyszerűen a lehető legkisebb csomagmérettel dolgozzon. Ez azonban a hatásfokot jelentősen rontaná. Nagy állományok esetén ugyanis sokkal eredményesebb a nagyobb csomagméret. Ezért a lehető legnagyobb méretet akarjuk elérni, de úgy, hogy a csak kisebb méreteket kezelő hálózatok is részt vehessenek az adatforgalomban. A következő két módszer szerint járnak el. A TCP-t úgy tervezték, hogy képes a datagramm méretet egyeztetni (negotiate). Ez azt jelenti, hogy a TCP kapcsolat felépítésekor mindkét oldal közli a másikkal az általa kezelhető maximális méretet, majd a továbbiakban a kisebbiket használják. Így a nagyobb datagrammokat kezelni képes megvalósítások azokat használják, de ugyanakkor a kisebb datagrammokat ismerő implementációkkal is szót értenek. A probléma még korántsem megoldott. Ugyanis a két oldal nem feltétlenül tudja, hogy mi történik a datagrammokkal útközben. Például a Rutgers és a Berkeley egyetemek közötti adatforgalom esetén valószínű, hogy mindkettő számítógép Ethernet alapú hálózaton helyezkedik el. Ezért mindketten megértik az 1500 oktetes datagrammokat. Útközben az adatok az Arpanet-en keresztül továbbítódnak. Ez a hálózat nem tud 1500 oktetes datagrammokat kezelni, ezért azokat fragmentálnia, tördelni kell. Az IP fejléc mezői jelzik, ha a datagramm fragmentált, és az összerakásra vonatkozóan is elegendő információt tartalmaznak. Ha egy átjáró egy Ethernet alapú hálózatot köt össze az Arpanet-tel, akkor annak képesnek kell lennie 1500 oktetes Ethernet csomagok fogadására és azok Arpanet méretűvé tördelésére. A TCP/IP minden megvalósításának képesnek kell lennie a darabok fogadására és az eredeti datagramm összerakására (reassembly).

A TCP/IP implementációk különböznek egymástól a datagramm méretének megválasztásában, azonban a szabvány szerint legalább 576 oktet nagyságú datagrammokat választanak, ha nem biztosak abban, hogy a nagyobb méretet útközben mindenhol megértik. Ez az eléggé konzervatív megközelítés abból fakad, hogy az összerakást megvalósító kódok sokszor hibásak. A tervezők kerülni igyekeznek a fragmentálást. Mindegyikük másként gondolkodik arról, hogy mikor biztonságos a nagyobb méret. Néhányan csak a lokális hálózatra esküsznek, de vannak olyanok is, akik az egész hálózatra kiengednek ilyen datagrammokat. Az 576 oktet eléggé biztonságos ahhoz, hogy mindenki támogassa.


Vissza a tartalomjegyzékhez