Sissejuhatus
Me kõik teame IP klassifitseerimise ja mitteklassifitseerimise põhimõtet ning selle rakendamist võrgukommunikatsioonis. IP fragmenteerimine ja taasasamblemine on pakettide edastamise protsessi võtmemehhanism. Kui paketi suurus ületab võrguühenduse maksimaalse edastusühiku (MTU) piiri, jagab IP fragmenteerimine paketi edastamiseks mitmeks väiksemaks fragmendiks. Need fragmendid edastatakse võrgus iseseisvalt ja sihtkohta jõudes pannakse need IP taasasamblemise mehhanismi abil uuesti kokku terviklikeks pakettideks. See fragmenteerimise ja taasasamblemise protsess tagab, et võrgus saab edastada suuri pakette, tagades samal ajal andmete terviklikkuse ja usaldusväärsuse. Selles osas vaatleme lähemalt, kuidas IP fragmenteerimine ja taasasamblemine toimivad.
IP fragmenteerimine ja taaskokkupanemine
Erinevatel andmesideühendustel on erinevad maksimaalsed edastusühikud (MTU); näiteks FDDI andmesideühenduse MTU on 4352 baiti ja Etherneti MTU on 1500 baiti. MTU tähistab maksimaalset edastusühikut ja viitab võrgu kaudu edastatava maksimaalsele paketi suurusele.
FDDI (Fiber Distributed Data Interface) on kiire kohtvõrgu (LAN) standard, mis kasutab edastuskeskkonnana optilist kiudu. Maksimaalne edastusühik (MTU) on maksimaalne paketi suurus, mida saab andmesidekihi protokolli abil edastada. FDDI-võrkudes on MTU suurus 4352 baiti. See tähendab, et maksimaalne paketi suurus, mida saab FDDI-võrgus andmesidekihi protokolli abil edastada, on 4352 baiti. Kui edastatav pakett ületab selle suuruse, tuleb see fragmenteerida, et jagada pakett mitmeks MTU suurusele vastavaks fragmendiks edastamiseks ja vastuvõtjas uuesti kokkupanekuks.
Etherneti puhul on MTU tavaliselt 1500 baiti suurune. See tähendab, et Ethernet suudab edastada kuni 1500 baiti suuri pakette. Kui paketi suurus ületab MTU piirangu, fragmenteeritakse pakett edastamiseks väiksemateks osadeks ja pannakse sihtkohas uuesti kokku. Fragmenteeritud IP-datagrammi saab uuesti kokku panna ainult sihtmasin ja ruuter ei teosta uuesti kokkupanemise toimingut.
Me rääkisime ka varem TCP segmentidest, aga MSS tähistab maksimaalset segmendi suurust (Maximum Segment Size) ja sellel on TCP protokollis oluline roll. MSS viitab TCP ühenduses saadetava maksimaalse andmesegmendi suurusele. Sarnaselt MTU-ga kasutatakse MSS-i pakettide suuruse piiramiseks, aga seda tehakse transpordikihis ehk TCP protokollikihis. TCP protokoll edastab rakenduskihi andmeid, jagades andmed mitmeks andmesegmendiks ja iga andmesegmendi suurust piirab MSS.
Iga andmesideühenduse MTU on erinev, kuna iga erinevat tüüpi andmesideühendust kasutatakse erinevatel eesmärkidel. Sõltuvalt kasutusotstarbest saab majutada erinevaid MTU-sid.
Oletame, et saatja soovib saata Etherneti lingi kaudu edastamiseks suure 4000-baidise datagrammi, seega tuleb datagramm edastamiseks jagada kolmeks väiksemaks datagrammiks. Seda seetõttu, et iga väikese datagrammi suurus ei tohi ületada MTU piirangut, mis on 1500 baiti. Pärast kolme väikese datagrammi vastuvõtmist paneb vastuvõtja need uuesti kokku algseks 4000-baidiseks datagrammiks, lähtudes iga datagrammi järjekorranumbrist ja nihkest.
Fragmenteeritud edastuses muudab fragmendi kadumine kogu IP-datagrammi kehtetuks. Selle vältimiseks võttis TCP kasutusele MSS-i, kus fragmenteerimine toimub TCP-kihis, mitte IP-kihis. Selle lähenemisviisi eeliseks on see, et TCP-l on iga segmendi suuruse üle täpsem kontroll, mis väldib IP-kihi fragmenteerimisega seotud probleeme.
UDP puhul püüame mitte saata MTU-st suuremaid andmepakette. Selle põhjuseks on asjaolu, et UDP on ühendusteta transpordiprotokoll, mis ei paku TCP-ga sarnast usaldusväärsust ja korduvsaatmise mehhanisme. Kui saadame MTU-st suurema UDP andmepaketi, fragmenteerib IP-kiht selle edastamiseks. Kui üks fragmentidest on kadunud, ei saa UDP protokoll seda uuesti edastada, mille tulemuseks on andmete kadu. Seetõttu peaksime usaldusväärse andmeedastuse tagamiseks püüdma kontrollida UDP andmepakettide suurust MTU-s ja vältida fragmenteeritud edastust.
Mylinking™ võrgupaketi vahendajaSuudab automaatselt tuvastada mitmesuguseid tunneliprotokolle (VxLAN/NVGRE/IPoverIP/MPLS/GRE jne), mida saab määrata vastavalt kasutajaprofiilile tunneli voo väljundi sisemiste või välimiste omaduste põhjal.
○ See suudab ära tunda VLAN-i, QinQ ja MPLS-i siltide pakette
○ Suudab tuvastada sisemise ja välimise VLAN-i
○ IPv4/IPv6 pakette saab tuvastada
○ Suudab tuvastada VxLAN, NVGRE, GRE, IPoverIP, GENEVE, MPLS tunnelipakette
○ IP-fragmenteeritud pakette saab tuvastada (toetab IP-fragmenteerimise tuvastamist ja toetab IP-fragmenteerimise taasühendamist, et rakendada L4-funktsioonide filtreerimist kõigile IP-fragmenteerimispakettidele. Rakendab liikluse väljundpoliitikat.)
Miks on IP fragmenteeritud ja TCP fragmenteeritud?
Kuna võrguedastuses fragmenteerib IP-kiht andmepaketi automaatselt, siis isegi kui TCP-kiht andmeid ei segmenteeri, fragmenteerib IP-kiht andmepaketi automaatselt ja edastab selle tavapäraselt. Miks TCP siis fragmenteerimist vajab? Kas see pole mitte liialdus?
Oletame, et on olemas suur pakett, mida TCP-kihis ei segmenteerita ja mis läheb edastamisel kaotsi; TCP saadab selle uuesti, aga ainult terve suure paketina (kuigi IP-kiht jagab andmed väiksemateks pakettideks, millest igaühel on MTU pikkus). Seda seetõttu, et IP-kiht ei hooli andmete usaldusväärsest edastamisest.
Teisisõnu, masina transpordivõrguühendusel, kui transpordikiht andmeid fragmenteerib, siis IP-kiht neid ei fragmenteeri. Kui fragmenteerimist transpordikihis ei teostata, on fragmenteerimine IP-kihis võimalik.
Lihtsamalt öeldes segmenteerib TCP andmeid nii, et IP-kiht pole enam fragmenteeritud ja uuesti edastamise korral edastatakse uuesti ainult väikesed osad fragmenteeritud andmetest. Sel viisil saab parandada edastuse efektiivsust ja usaldusväärsust.
Kui TCP on fragmenteeritud, kas IP-kiht siis mitte fragmenteeritud?
Eelnevas arutelus mainisime, et pärast TCP fragmenteerimist saatjal IP-kihil fragmenteerimist ei toimu. Siiski võib transpordilingil olla teisi võrgukihi seadmeid, mille maksimaalne edastusühik (MTU) võib olla väiksem kui saatja MTU. Seega, isegi kui pakett on saatjal fragmenteeritud, fragmenteeritakse see uuesti, kui see läbib nende seadmete IP-kihti. Lõpuks pannakse kõik killud vastuvõtjal kokku.
Kui suudame määrata kogu lingi minimaalse MTU ja saata andmeid selle pikkusega, siis fragmenteerimist ei toimu, olenemata sellest, millisesse sõlme andmed edastatakse. Seda kogu lingi minimaalset MTU-d nimetatakse tee MTU-ks (PMTU). Kui IP-pakett saabub ruuterisse ja ruuteri MTU on väiksem kui paketi pikkus ning DF (ära fragmenteeri) lipp on seatud väärtusele 1, ei saa ruuter paketti fragmenteerida ja saab selle ainult ära visata. Sellisel juhul genereerib ruuter ICMP (Internet Control Message Protocol) veateate nimega "Fragmenteerimine on vajalik, kuid DF on seatud". See ICMP veateade saadetakse tagasi lähteaadressile koos ruuteri MTU väärtusega. Kui saatja saab ICMP veateate, saab ta paketi suurust MTU väärtuse põhjal reguleerida, et vältida keelatud fragmenteerimise olukorda uuesti.
IP fragmenteerimine on vajalik ja seda tuleks IP-kihil vältida, eriti lingi vaheseadmetes. Seetõttu on IPv6-s keelatud IP-pakettide fragmenteerimine vaheseadmete poolt ning fragmenteerimist saab teha ainult lingi alguses ja lõpus.
IPv6 põhitõed
IPv6 on internetiprotokolli versioon 6, mis on IPv4 järeltulija. IPv6 kasutab 128-bitist aadressipikkust, mis suudab pakkuda rohkem IP-aadresse kui IPv4 32-bitine aadressipikkus. Selle põhjuseks on asjaolu, et IPv4 aadressiruum ammendub järk-järgult, samas kui IPv6 aadressiruum on väga suur ja suudab rahuldada tuleviku interneti vajadusi.
IPv6-st rääkides toob see lisaks suuremale aadressiruumile kaasa ka parema turvalisuse ja skaleeritavuse, mis tähendab, et IPv6 pakub IPv4-ga võrreldes paremat võrgukogemust.
Kuigi IPv6 on juba pikka aega olemas olnud, on selle globaalne kasutuselevõtt endiselt suhteliselt aeglane. See on peamiselt tingitud asjaolust, et IPv6 peab olema ühilduv olemasoleva IPv4 võrguga, mis nõuab üleminekut ja migratsiooni. IPv4 aadresside ammendumise ja IPv6 nõudluse suurenemise tõttu võtavad üha rohkem internetiteenuse pakkujaid ja organisatsioone järk-järgult IPv6 kasutusele ning realiseerivad järk-järgult IPv6 ja IPv4 kahekihilise toimimise.
Kokkuvõte
Selles peatükis vaatlesime lähemalt IP-kihi fragmenteerimise ja taaskokkupanemise toimimist. Erinevatel andmesideühendustel on erinevad maksimaalsed edastusühikud (MTU-d). Kui paketi suurus ületab MTU piiri, jagab IP-kihi fragmenteerimine paketi edastamiseks mitmeks väiksemaks fragmendiks ja paneb need pärast sihtkohta jõudmist IP-kihi taaskokkupanemise mehhanismi abil uuesti kokku terviklikuks paketiks. TCP-kihi fragmenteerimise eesmärk on takistada IP-kihi fragmenteerimist ja edastada uuesti ainult need väikesed andmed, mis on uuesti edastamise ajal fragmenteeritud, et parandada edastuse efektiivsust ja usaldusväärsust. Siiski võib transpordiühenduses olla teisi võrgukihi seadmeid, mille MTU võib olla saatja omast väiksem, seega fragmenteeritakse pakett ikkagi uuesti nende seadmete IP-kihil. IP-kihi fragmenteerimist tuleks võimalikult palju vältida, eriti lingi vahepealsete seadmete puhul.
Postituse aeg: 07.08.2025