Veröffentlicht 15. November 201113 j Hi Leute, ich habe mal eine (wahrscheinlich) blöde Frage aber ich stehe irgendwie auf dem Schlauch. Und zwar muss ich eine Facharbeit über das Thema TCP/IP schreiben und bin gerade bei der Fragmentierung angelangt. Ein IP-Paket muss ja immer dann fragmentiert werden, falls es die Größe der MTU überschreitet. Ich verstehe aber nicht warum das dann immer ein Vielfaches von 8 Byte sein muss. Und wie hängt das mit dem Fragment Offset Feld zusammen? Hier mal ein Beispiel dazu: The TCP/IP Guide - IP Message Fragmentation Process Vielleicht kann mir auch jemand anhand des Beispiels das erklären. Danke schonmal im Voraus :-)
16. November 201113 j Die Lösung steht doch da auf Seite 3 recht unten schon. [...]Fragments are specified in units of 8 bytes, which is why fragment length must be a multiple of 8.[...] [...]Jedes Datagramm, das fragmentiert wurde, erhält und enthält statt des Datagramm-Headers des Originalpaketes einen sog. Fragmentheader, der unter anderem den sogenannten Offset der in diesem Paket versendeten Datenportion in Relation zum Originalpaket angibt. Der Fragment-Offset (13 bit im IP-Header) wird dabei in 8-Byte-Blöcken angegeben, also wenn das erste Datagramm 1000 Byte Nutzdaten enthält, dann ist der Fragment-Offset des zweiten Paketes 125 (= 1000 Byte / 8 Byte). Somit kann nur das letzte Fragment eine Nutzdaten-Menge haben, die nicht ein Vielfaches von 8 Byte ist. Weiterhin ist zu beachten, dass der Fragment-Offset bei 0 beginnt (der Eintrag im ersten Fragment) und deswegen der Offset des zweiten Paketes im genannten Beispiel 125 und nicht etwa 126 ist. Bei allen Fragmenten, außer dem letzten, wird das More-Fragments-Flag gesetzt. Ins Längen-Feld des IP-Headers wird bei allen Fragmenten die Länge des jeweiligen Fragments eingetragen, und für jeden Header wird die IP-Header-Prüfsumme separat berechnet, während der Rest des Headers dem Originalheader vor der Fragmentierung entspricht.[...] Quelle Das sollte deine Frage beantworten, oder?
16. November 201113 j Autor danke erstmal für die antwort :-) aber meine frage war eher wieso das gerade 8 bytes sind? oder sollte man das einfach so hinnehmen?
16. November 201113 j Hi, wenn ich nichts überlesen habe, dann "ist das einfach so" :cool:. Siehe RFC 791 ab Seite 23 letzter Abschnitt.
17. November 201113 j Willkürlich wird er wohl nicht gewählt worden sein damals, aber eine Begründung, wieso gerade 8 Byte habe ich auch bisher nirgends gefunden. Ich denke mal, das hat mit Blockgrößen und Window Size u.s.w. zu tun und ist halt ein Vielfaches von 2. Vielleicht gehts auch noch auf die eresten Modems zurück oder auf diese Dinger, auf die man noch den Hörer legte zum "online" gehen. Komme grad nicht auf den Namen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.