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õ legkissebb 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 kissebb 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 kissebbiket használják. Így a nagyobb datagrammokat kezelni képes megvalósítások azokat használják, de ugyanakkor a kissebb 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 vonakozó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
<<
>>