Portál AbcLinuxu, 8. června 2024 15:39


Dotaz: Fragmentace datagramu TCP/IP

21.2.2006 21:38 Honzík
Fragmentace datagramu TCP/IP
Přečteno: 1067×
Odpovědět | Admin
Zdravim,
v jedne knize (Velky pruvodce protokoly TCP/IP) jsem nasel tento obrazek popisujici pruchod datagramu velkeho 3500 bajtu routerem ktery ma MTU 1500 bajtu a fragmentaci velkeho datagramu.
U posledniho datagramu pisou ze obsahuje 2 hlavicky IP, nejak jsem to nepobral, muze mi to nekdo vysvetlit?
Dik H.
PS: moc to s linuxem nesouvisi, ale snad to neva
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.2.2006 21:59 XSimi
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mas puvodni datagram-ten je ovsem prilis velky aby prosel prostredim internetu a proto ho router musi poslat na vic casti.... To udela tak ze datagram jednoduse rozcvrti(samozrejme necha puvodni hlavicku) a vytvori novou hlavicku, kterou prida vsem rozdelenym datagramum (bez adresy by nedosel..). No a nová + původni hlavicka = 2 hlavicky. Príjemce si pak tyto casti snadno slozi a ma puvodni zasilany datagram.
21.2.2006 22:26 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
No a nová + původni hlavicka = 2 hlavicky.

Kde jste přišel k této informaci? RFC 791 tvrdí něco naprosto jiného, mé praktické zkušenosti také…

21.2.2006 22:43 Petr Svoboda | skóre: 13 | blog: * | Příbram
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
To že původní hlavička je ponechána IMHO není pravda (viz výše). Je to vidět i na tom obrázku. Jinak dvě hlavičky navíc jsou od toho, že paket je v příkladu fragmentován na tři části, přičemž každá část musí mít svou hlavičku (okopírovanou z původního paketu a samozřejmě příslušně upravenou). Pokud XSimiho příspěvek říká totéž, tak se omlouvám, ale já to pochopil jinak.
21.2.2006 22:46 Petr Svoboda | skóre: 13 | blog: * | Příbram
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
Tak mě Michal Kubeček předběhl a navíc to vysvětlil i lépe. Tak nic. ;-)
21.2.2006 22:31 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten popisek je trochu matoucí, ale výsledek je správně. Původní IP paket má 3520 bytů: 20 bytů IP hlavička a 3500 bytů data (z pohledu IP, tedy včetně TCP hlavičky). První dva fragmenty mají po 1500 bytech, tj. 20 bytů IP hlavička a 1480 bytů data. Takže na třetí vám zbývá 3500-2*1480 = 540 bytů datové části původního paketu, což můžete alternativně napsat jako 3500 - 2*(1500-20) = 3500 - 2*1500 + 2*20. Nebo k tomu můžete dojít tak, že celková velikost těch tří paketů je celková velikost původního paketu plus velikost těch dvou IP hlaviček, které mají tři fragmenty dohromady navíc oproti jednomu původnímu paketu.
houska avatar 22.2.2006 08:41 houska | skóre: 41 | blog: HW
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
Takze jestli jsem to spravne pochopil - u posledniho paketu (nebo datagramu? mam v tom trosku hokej) je velikost 540bajtu, ale ta informace o tom ze ma dve IP zahlavi navic patri k tem trem fragmentovanym paketum jako celku a nikoliv pouze k tomu poslednimu.
vencour avatar 22.2.2006 09:15 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP

Jo, je celej fragmentovanej, ale to se vztahuje jen k tomu hopu mezi těma dvouma routrama, na dalším hopu už zas může jít normálně jako jeden datagram.

Linková = druhá vrstva ... frame, rámec
síťová = třetí vrstva ... pakety, datagramy.

Zkus se více porozhlédnout u Peterky.

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
22.2.2006 11:51 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
Ono to není myšleno tak, že by měl dvě hlavičky, to má samozřejmě jen jednu, ale že je "o dvě IP hlavičky delší" (myšleno o 2*20 = 40 bytů) než kdybyste počítal 3500 - 2*1500.

Zásadní problém je v tom, že mluvíme-li o délce paketu, musíme vždy upřesnit (není-li to jasné z kontextu), o jaké délce je vlastně. Někdy se tím může myslet délka celého ethernetového framu, jindy pouze délka datové části na aplikační vrstvě (a to typicky dělá 56 bytů rozdíl), jindy něco mezi. Totéž pak samozřejmě platí i pro pojem přenosové rychlosti: zatímco poskytovatel ji obvykle měří na síťové vrstvě (tj. včetně IP hlavičky a hlavičky transportního protokolu), uživatele většinou zajímá, kolik dat protlačí HTTP streamem, takže se pak často z neznalosti rozčiluje, že mu to ukazuje méně…

houska avatar 22.2.2006 12:30 houska | skóre: 41 | blog: HW
Rozbalit Rozbalit vše Re: Fragmentace datagramu TCP/IP
Rozumim, parada.
dekuju
PS: kdybych nevedel ze to uz delate, tak bych rekl ze byste to mohl ucit :)

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.