Portál AbcLinuxu, 24. dubna 2024 09:58


Dotaz: Jak se u linuxu fragmentuje paket

14.4.2014 20:31 Martin | skóre: 3
Jak se u linuxu fragmentuje paket
Přečteno: 300×
Odpovědět | Admin
Měl bych dotaz:

Jak se u linuxu fragmentuje paket, jak se reálně generuje a podle jakého algoritmu?

Hledal jsem všude možně a nic jsem nebyl schopen najít. našel jsem si normy RFC 791 a RFC 815 ale nejsem z toho vůbec chytrý.

Prosím poraďte, nebo mě nasměrujte správným směrem.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.4.2014 20:48 Jiří Veselský | skóre: 30 | blog: Jirkovo | Ostrava
Rozbalit Rozbalit vše Re: Jak se u linuxu fragmentuje paket
Odpovědět | | Sbalit | Link | Blokovat | Admin

Kladete příliš obecnou otázku, takže se na ni nedá moc jednoduše odpovědět. Jednoduchá odpověď zní, že se paket (rámec/datagram/segment, podle protokolu, dále prostě jen paket) fragmentuje pokud možno co nejméně :)

Obecně platí, že se velikost paketu řídí hodnotou MTU odchozího rozhraní.

Asi byste měl upřesnit, čeho konkrétně se váš dotaz týká. Jde vám o lokálně generovaný provoz? Jakým protokolem, jakou službou? Nebo vám jde o zpracování routovaného provozu? Nebo o něco jiného?

15.4.2014 21:53 Martin | skóre: 3
Rozbalit Rozbalit vše Re: Jak se u linuxu fragmentuje paket
Jedna se o vypracováni jedné male části práce. Jednalo se mu o zachytávaní přes Wiresharek a ohledně fragmentovaných paketů to již zpracované mam i nalezeni těch norem a tak dále.

Jednalo by se především o všeobecné informace k tomuto. Osobně jsem si to téma zvolil že by mi přišlo zajímavé a rad bych se o tom dozvěděl vice. Jenom tato část vrtá hlavou.
14.4.2014 22:20 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Jak se u linuxu fragmentuje paket
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jednak fragmentace není věc linuxu, ale IP protokolu a podle stejných pravidel fragmentuje linux, windows i třeba IBM mainframe s z/OS. Fragmentace je proto, že každá přenosová technologie fyzické vrstvy má limit velikosti datového rámce. Přenést větší paket nejde po té konkrétní technologii nejde a ta velikost se označuje jako MTU. TCP se dá nařezat na libovolně malé IP pakety, tak tam fragmentace není nutná, ale UDP paket se odesílá vždy v jednom IP paketu, proto aby bylo možné přenést i větší UDP a tím IP pakety, se druhý řádek (bity 32-63) IP hlavičky se věnuje fragmentaci.

Všechny fragmenty jednoho paketu mají stejný "Identification" a podle toho, kde začínají, tak mají odpovídající hodnotu začátku "Fragment offset". Vzhledem k tomu, že IP paket je do velikosti 2^16 bytů, kdežto pole Fragment offset má jen 13 bitů (díky 3 rezervovaným bitům mezi), tak offset je v kroku 8 bytů. Toď vše, paket se rozstříhá a pak se sestaví. RFC 815 popisuje algoritmus pro efektivní skládání s tím, že se vytvoří seznam těch částí, které chybí a postupně se díry zaplňují.
15.4.2014 21:57 Martin | skóre: 3
Rozbalit Rozbalit vše Re: Jak se u linuxu fragmentuje paket
Jinak mi to bylo trochu divné ohledně fragmentace pod OS že je na to nějaký standart který platí pro všechny OS stejné.

Díky za bližší objasnění. Hned jsem se posunul o krůček dál.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.