首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当数据包太大时,IEEE802.1ad(也称为VLAN标记,QinQ)是如何有效的?

当数据包太大时,IEEE802.1ad(也称为VLAN标记,QinQ)是如何有效的?
EN

Network Engineering用户
提问于 2014-04-08 02:01:48
回答 1查看 6K关注 0票数 8

最近是我一直在处理MTU的问题。这一切似乎都源于以下事实:新计算机上的以太网适配器默认帧大小为1504字节:

代码语言:javascript
复制
>netsh interface ipv4 show subinterfaces

   MTU  MediaSenseState   Bytes In  Bytes Out  Interface
------  ---------------  ---------  ---------  -------------
  1504                1  3954161316  804790885  Local Area Connection

现在,根据NetworkEngineering.stackexchange.com上的随机人员,任何太大的数据包都将被任何接收网络接口卡(NIC)丢弃,因为以太网数据包太大:

...any帧的MTU大于802.3规格1500 A帧大于设置最大值将被NIC删除-这是一个错误,操作系统永远不会知道它。(超大帧计数器将单击向上,但仅此而已。)

当计算机试图向网关计算机发送数据包时,会产生问题。理想情况下,我将依靠路径MTU的发现。但是,由于正在生成的以太网数据包太大,任何其他机器都无法接收,因此将返回没有IP的机会包太大碎片消息

根本不会有“碎片化”。第二层(以太网)如果表示“所需的碎片”,则没有办法。这是在第三层(IP)的路由器发送ICMP消息时,它必须丢弃数据包,因为它将不适合下一跳接口。

这就引出了我的第二个问题:

  • 为什么有一个规范故意创建无效的以太网帧?这里的意图是什么?考虑到其他网络接口卡无法接收这些新的默认大小的数据包,它们预期会发生什么。

这就引出了我的第一个问题第二。这是以前有人问过的-很多。

  • 4字节QinQ标记是以太网帧头的一部分,还是以太网有效负载的一部分?如果它是报头的一部分,为什么有效负载体增加了4个字节?如果它是以太网有效负载的一部分,那么为什么有效负载MTU会增加4个字节(当我们知道增加4个字节使它成为一个无效的数据包时)?

更大的问题是.

如果我们退后一步,我们有一个更大的问题:

我们该怎么办?

一定有人设计了这个标准。他们期望人们对那些产生这些太大数据包的设备做些什么?

我真的在问你。我想,我们不应该去每一个硬件设备,撤销MTU 1504的增长,并将其恢复到1500:

代码语言:javascript
复制
netsh interface ipv4>set subinterface "Local Area Connection" mtu=1500 store=persistent
Ok.

这将是(而且正在)一个配置噩梦。

是否关闭VLAN标签的想法?除了配置噩梦之外,它根本不起作用:

  • 步骤1:禁用VLAN标记
  • 步骤2:观察它不起作用: netsh接口ipv4在Bytes Out接口中显示子接口MTU MediaSenseState字节

1504 1 238125 245855局域网连接

如果解决这一问题的方法是手动强制所有网卡返回到1500的MTU,那么为什么首先要将其提高到1504字节,并创建无效的数据包呢?

我漏掉了一块拼图。

奖金聊天器

代码语言:javascript
复制
 Without 802.1Q tagging        Without 802.1Q tagging   
+------------------------+    +------------------------+
|Destination MAC: 6 bytes|    |Destination MAC: 6 bytes|
|Source MAC: 6 bytes     |    |Source MAC: 6 bytes     |
|Ethertype: 2 bytes      |    |802.1Q tag: 4 bytes     |
+------------------------+    |Ethertype: 2 bytes      |
|                        |    +------------------------+
|                        |    |                        |
/ Payload: 1500 bytes    /    / Payload: 1500 bytes    /
|                        |    |                        |
|                        |    |                        |
+------------------------+    |                        |
| Frame Check Sequence:  |    +------------------------+
|                 4 bytes|    | Frame Check Sequence:  |
+------------------------+    |                 4 bytes|
                              +------------------------+

网络图

代码语言:javascript
复制
+------------------+      +----------------+     +------------------+
| Realtek PCIe GBe |      | NetGear 10/100 |     | Realtek 10/100   |
|       (on-board) |      |     Switch     |     |     (on-board)   |
|                  |      +----------------+     |                  |
| Windows 7        |           ^    ^            |                  |
|                  |           |    |            |                  |
| 192.168.1.98/24  |-----------+    +------------| 192.168.1.10/24  |
| MTU = 1504 bytes |                             | MTU = 1500 bytes |
+------------------+                             +------------------+

您还可以替换任何您喜欢的配置,生成大于允许的最大1500字节的数据包:

代码语言:javascript
复制
+------------------+      +----------------+     +------------------+
| Realtek PCIe GBe |      | NetGear 10/100 |     | Realtek 10/100   |
|       (on-board) |      |     Switch     |     |     (on-board)   |
|                  |      +----------------+     |                  |
| Windows 7        |           ^    ^            | MTU = 1500 bytes |
| MTU = 16384bytes |           |    |            |                  |
|                  |-----------+    +------------|                  |
+------------------+                             +------------------+

我试图找到一个网站,可以解决我的技术,概念,逻辑,基本的理论问题,当一些设备故意生成无效的数据包时,以太网如何工作。

当我试图将无效的以太网数据包发送到另一个以太网设备时,就会担心:

  • 计算机生成以太网数据包源MAC: xx-xx目的地MAC: yy- Destination : 0x0800有效载荷:...1504字节.(或者可能是...16384字节,任何大于1500的.)CRC: 4字节

此数据包无效,因为它太大,无法被目标802.3u设备接收。因为目标的主机操作系统从未看到数据包,而且由于以太网没有向发送方报告无效数据包的功能,“大”数据包就丢失了。

奖金聊天器

来自思科的交换机间链路和IEEE802.1Q帧格式

帧大小接口的默认最大传输单元(MTU)是1500字节。将外部VLAN标记附加到以太网帧后,数据包大小将增加4个字节。因此,建议您适当地增加提供商网络上每个接口的MTU。建议的最小MTU为1504字节。

同时:

IEEE 802.3以太网标准只要求支持1500字节的MTU帧.

EN

回答 1

Network Engineering用户

发布于 2014-04-09 00:38:55

我可以试着回答你的概念问题。

我找不到一个真正的报价,但似乎很清楚,.1ad和.1q从来没有打算被个人电脑或其他终端主机处理。它们(通常)仅由基础设施设备处理。我不知道设计师们在想些什么,但是很难想象QinQ包会在现实生活中进入个人电脑。基础设施设备(路由、交换机等)上的以太网接口可以处理较大的数据包。

因此,数据包只对个人电脑无效,在理论上是不应该看到它们的。

票数 3
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/7260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档