5

There is possible to use very big frames with some ethernet cards. One case is 9k frames or jumbo frame and other case is super jumbo frame (as i know, up to 64k).

What is format of frame used for such huge packets?

As I know, for normal frames two formats used widely:

Preamble    Start_byte  dest_mac    src_mac     Ethertype/length    Payload     CRC     Interframe gap
10101010x7  10101011    6 bytes     6 bytes     2 bytes         46–1500 bytes   4 bytes 12 bytes

In one case, the ethertype is used for length, and in second - for packet type. If this field is < 0x0600 (decimal 1536 bytes), this is a length; if >= 0x0600 - it is a type.

So, it looks impossible to store 9000 in this field as length. How length of jumbo and super jumbo frames is stored?

osgx
  • 90,338
  • 53
  • 357
  • 513

1 Answers1

6

The format used for jumbos is the same. Despite this description, the Ethertype field is not normally used to store a length. Normally in the Ethertype field, you will not see a length; you will see a type. Types are specified by IANA here:

https://www.iana.org/assignments/ieee-802-numbers

Usually you'll see one of the following types from the table:

Ethertype         Exp. Ethernet   Description           References
----------------  --------------  --------------------  ----------
  2054   0806        -      -     ARP                       [IANA]
  2048   0800        513   1001   Internet IP (IPv4)        [IANA]
         86DD                     IPv6                      [IANA]

There are two reasons this works:

  • The hardware sending the packet doesn't depend on the Layer 2 length field to know the Layer 1 length.
  • Some Layer 3 packets such as ARP have a known size (at least, for a known combination of hardware/protocol address length, such as Ethernet/IP where it is normally used). IPv4/IPv6 packets have a length field in their own header.
Rob Starling
  • 3,868
  • 3
  • 23
  • 40
mpontillo
  • 13,559
  • 7
  • 62
  • 90
  • so, jumbo frames can be used only when L3 protocol has a length field or has a fixed size? – osgx Oct 28 '11 at 19:24
  • 2
    @osgx, there is nothing preventing you from creating an Ethernet frame at L1 that is larger than specified in the Ethertype/length field. But a network stack wouldn't necessarily interpret it as a large packet. So basically, yes, you need to use a L3 protocol that supports large packets, such as IPv4/IPv6. (ARP is going to be small.) One easy way to do this, assuming you set your interface MTU correctly (and your network drivers are configured for large frames) would be to use `ping` with the `packetsize` parameter. – mpontillo Oct 28 '11 at 19:37