【问题标题】:header of jumbo ethernet frame and of super jumbo frame巨型以太网帧和超级巨型帧的标头
【发布时间】:2011-10-27 16:47:43
【问题描述】:

有些以太网卡可以使用非常大的帧。一种情况是 9k 帧或巨型帧,另一种情况是超级巨型帧(据我所知,最高 64k)。

这么大的数据包使用的帧格式是什么?

据我所知,对于普通帧,有两种广泛使用的格式:

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

在一种情况下,ethertype 用于长度,在第二种情况下 - 用于数据包类型。如果此字段 = 0x0600 - 它是一种类型。

因此,在此字段中存储 9000 作为长度似乎是不可能的。存储巨型帧和超级巨型帧的长度是多少?

【问题讨论】:

    标签: networking ethernet


    【解决方案1】:

    用于 jumbos 的格式是相同的。尽管有此描述,但 Ethertype 字段通常不用于存储长度。通常在 Ethertype 字段中,您不会看到长度;你会看到一个类型。类型由 IANA 在此处指定:

    http://www.iana.org/assignments/ethernet-numbers

    通常您会从表格中看到以下类型之一:

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

    这有两个原因:

    • 发送数据包的硬件不依赖Layer 2 长度字段来了解Layer 1 长度。
    • 一些Layer 3 数据包,例如ARP,具有已知的大小(至少对于硬件/协议地址长度的已知组合,例如通常使用的以太网/IP)。 IPv4/IPv6 数据包在它们自己的标头中有一个长度字段。

    【讨论】:

    • 那么,巨型帧只有在L3协议有长度字段或者固定大小的情况下才能使用?
    • @osgx,没有什么可以阻止您在 L1 创建大于 Ethertype/length 字段中指定的以太网帧。但是网络堆栈不一定会将其解释为一个大数据包。所以基本上,是的,您需要使用支持大数据包的 L3 协议,例如 IPv4/IPv6。 (ARP 会很小。)如果您正确设置了接口 MTU(并且您的网络驱动程序配置为大帧),那么一种简单的方法是使用 pingpacketsize 参数。跨度>
    猜你喜欢
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2019-05-28
    • 1970-01-01
    • 2012-05-01
    • 2017-12-26
    • 1970-01-01
    相关资源
    最近更新 更多