Jeg sidder og er færdig med at læse op til eksamen på mandag i
Netværk&Protokoller.
Jeg har yderligere gennemgået hele sidste års eksamensopgaver,
MEN jeg kan ikke forstå et vejledende svar til følgende opgave:
Spørgsmålet lyder:
"Hos firmaet X bruges der to forskellige netværksteknologier - den ene
(BigNet) er i stand til at sende IP pakker med en størrelse på 512 bytes
(inkl. IP header), og den anden (SmallNet) er i stand til at sende pakker
med en størrelse på 260 bytes (inkl. header). Hvis en maskine på BigNet skal
sende en IP pakke på 512 bytes (hvor IP pakken indeholder et TCP segment på
472 bytes) til en maskine på SmallNet, hvor mange IP fragmenter splittes IP
pakken så op i, når den sendes, og hvor meget brugerdata indeholder hvert IP
fragment."
Vejledende Løsning lyder: "3 fragmenter, brugerdata: 220, 260, 12"
Jeg mener ikke, at din løsningen er korrekt. Men måske tager jeg fejl.
Jeg tager udgangspunkt i
http://www.oreilly.com/catalog/coreprot/chapter/ch02.html
Her står det klart og tydeligt, at:
"There are a few rules that you must remember when trying to understand how
IP fragments get created:
Fragmentation only occurs on the data portion of a packet.
Packet headers are not included in the fragmentation process. If the
original datagram is 4,464 bytes long, then at least 20 bytes of that
datagram are being used to store header information, meaning that the data
portion is 4,444 bytes long. This 4,444 bytes is what will get fragmented.
Each new fragment results in a new packet that requires its own IP headers,
which consume at least 20 bytes in each new packet generated for a fragment.
The IP software must take this factor into consideration when it determines
the maximum amount of payload data that can be accommodated in each
fragment, and thus the number of fragments that will be required for a
particular MTU.
Fragmentation must occur on an eight-byte boundary. If a datagram contains
256 bytes of data, but only 250 bytes can fit into a fragment, then the
first fragment contains only 248 bytes of data (248 is the largest number
divisible by eight that's less than 250). The remaining 8 bytes (256 - 248 =
8) will be sent in the next fragment.
The Fragmentation Offset field is used to indicate which parts of the
original datagram are in each fragment, by storing the byte count in
quantities of eight-byte blocks. Rather than indicating that the starting
position for a fragment's data is "248 bytes," the Fragmentation Offset
field will show "31 blocks" (248 / 8 = 31). Also, note that the block count
starts with 0 and not 1. This means that the 32nd block will be numbered 31
instead of 32. "
Jeg mener derfor, at svaret på spørgsmålet er: 3 pakker, hvor brugerdata er:
216, 216, 40.
Hver pakker indeholder altså en header på 40 bytes (512 bytes - 472 bytes)
og data på hhv. 216, 216 og 40 bytes.
1. Er det forkert ???
2. Hvordan kan vejledende løsning være, at brugerdata er på 220, 260 og 12?
Jeg håber, at nogen har lyst/tid til at besvare mig.
Med venlig hilsen
Janus Nielsen
Stud. IT (Internetteknologi)