[oclug] ping
rjordan at CR1004964-A.slnt1.on.wave.home.com
rjordan at CR1004964-A.slnt1.on.wave.home.com
Thu Jan 18 23:27:44 EST 2001
>
> IP Header
>
> 0 31
> |-------------------------------------------------------------------| ---
> |version | hdr len|Type of Service | Total length of datagram | |
> | 4 bit | 4 bit | 8 bit | 16 bit | |
> |----------------------------------|--------------------------------| |
> | identification |flags | fragment offse | |
> | 16 bit | 3 bit| 13 bit | |
> |----------------------------------|--------------------------------| |
> | time to live | protocol | checksum | |
> | 8 bit | 8 bit | 16-bit | 20 bytes
> |-------------------------------------------------------------------| |
> | Source IP Address | |
> | 32 bit | |
> |-------------------------------------------------------------------| |
> | Destination IP Address | |
> | 32 bit | |
> |-------------------------------------------------------------------| ---
> | Options (Optional) |
> \ [variable size] \
> ---------------------------------------------------------------------
> | Data |
> \ \
> ---------------------------------------------------------------------
>
> The limiting factor is the length field of the header which is 16bits.
> Therefore, 2^16=65536 is the maximum size of an IP datagram, and this
> includes the header. That being said, an IP datagram of this size
> will usually be fragmented along the way. The MTU (Maximum
> Transmission Unit) for Ethernet is 1500bytes, so an IP datagram
> of 2^16bytes would need to be fragmented to fit in an Ethernet frame.
> If ping is implemented using ICMP (as opposed to UDP), the IP datagram
> will have an additional ICMP message field, which for ping is 8bytes.
> so 2^16 - 20*8 - 8*8 = 65312 will be the maximum size of data that
Err, for some dumb reason, I partially converted to bits.
That should read:
2^16 -20 -8 = 65508
-Ross
More information about the OCLUG
mailing list