首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以太网帧的“线内”大小是多少? 1518还是1542?

以太网帧的“线内”大小是多少? 1518还是1542?
EN

Server Fault用户
提问于 2012-08-28 20:25:03
回答 4查看 29.7K关注 0票数 24

根据这里的桌子,它说MTU = 1500字节,而有效负载部分是1500 - 42字节或1458字节(<-这实际上是错误的!)。现在,您必须添加IPv4和UDP头,它们是28个字节(20个IP +8个UDP)。这将我的最大可能应用程序消息留给1430字节!但通过在互联网上查找这个号码,我看到了1472个数字。我是不是做错了这个计算?

我只想找出我可以在没有碎片风险的情况下通过线路发送的最大应用程序消息。它肯定不是1500,因为这包括帧头。有人能帮忙吗?

混淆之处在于,有效负载实际上可以高达1500字节,这就是MTU。那么,对于1500的有效载荷,导线的尺寸是多少呢?从那个表中,它可以高达1542字节。

因此,我可以发送的最大应用程序消息是1472 (1500-20 (ip) -8 (udp)),最大的线路大小是1542。当事情实际上很简单的时候,事情怎么会变得如此复杂,这让我感到惊讶。如果表上写着1542,我不知道有人是怎么得出1518这个数字的。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2012-08-28 21:19:35

维基百科上的图表太可怕了。希望我要写的更清楚。

802.3以太网中的最大有效负载是1500个字节。

这是您试图通过连线发送的数据(以及MTU所指的数据)。

[payload] <- 1500字节

有效负载封装在以太网帧中(该帧添加源/目的地MAC、VLAN标记、长度和CRC校验和)。这总共是22个字节的额外“内容”。

[SRC+DST+VLAN+LENGTH+[payload]+CRC] <- 1522字节

帧是通过电线传输的--在你的以太网卡完成之前,它基本上会站起来,大声喊叫,以确保没有其他人在使用电线(CSMA/CD) --这是前导和帧开始分隔符(SFD) --额外的8个字节,所以现在我们有了:

[Preamble+SFD+[Ethernet Frame]] <- 1530字节

最后,当以太网收发器发送帧时,在允许发送其下一帧之前,它需要在802.3之前发送12字节的静音(“帧间间隙”)。

[Preamble+SFD+[Ethernet Frame]+Silence] <- 1542字节在线路上传输。

序言、SFD和帧间间隙不算作帧的一部分。它们是以太网协议本身的支持结构。

MTU适用于有效载荷--它是您可以插入数据包的最大数据单元。因此,具有1500个字节的MTU的以太网数据包实际上是一个1522字节的帧,而线路上的一个1542字节(假设有一个vLAN标记)。

所以,对你的问题的答案--我能在没有碎片的情况下发送超过802.3个以太网的最大数据包是什么?-1500个字节的有效载荷数据。

然而,以太网层可能不是您的限制因素。要发现在此过程中是否有什么东西限制MTU小于1500字节的有效负载数据,请使用以下方法之一:

  • Windows:ping hostname -f -l sizeofdata ( John提到的技术)
  • BSD:ping -D -s sizeofdata hostname
  • Linux:ping -M do -s sizeofdata hostname

工作的sizeofdata的最大值是MTU (在数据所使用的特定路径上)。

票数 33
EN

Server Fault用户

发布于 2012-08-28 20:35:27

这取决于您在帧中的数据量。如果将1500个字节的数据放在一个帧中,那么您的总帧大小将为1518字节。有了1472字节的数据,最终总帧大小将达到1500。

http://en.wikipedia.org/wiki/Ethernet_框架

话虽如此,如果您真的对测试碎片很感兴趣,那么测试这一点的一个好方法就是使用带有几个标志的良好的旧ping:

ping主机名-f -l大小数据

如果数据包是分段的,-f标志将导致ping失败。这里要理解的关键是“相当大的数据”是您可以在消息中不进行分段的数据量--因此,如果您发送1500的有效负载,那么您将在超过1500个字节时开始分段。但是,将其调低到1472 (1500 -- 18字节的开销),您将看到pings通过。

票数 3
EN

Server Fault用户

发布于 2015-10-29 10:34:56

对于基本的Ethernet_II帧,帧大小为1518字节(连接或断开)。它由每个目标地址和源地址的6个字节、有效负载的46-1500字节之间的类型字段(在您的例子中是整个IP数据包及其IP报头和UDP报头)和FCS的4个字节组成。此外,还限制了帧的大小(64字节)。这就是为什么范围是从46个字节(添加到两个地址和类型和FCS,你得到64个字节- 46+6+6+2+4=64)。

如果该帧位于支持多个vlan的网络上,并且需要使用vlan标记标记该帧,则在类型字段之前添加一个额外的字段。这是4个字节。这意味着有效负载的大小范围可以在底部减少4个字节,至少仍然有64个字节。因此,42岁。(因此42+6+6+2+4 +4表示vlan标记= 64)

因此,当范围被写入时,1500-42 is并不意味着1500减去42,它意味着从1500到42字节之间的任何内容都是有效的。如果是连线,这个被标记的帧可以高达1522字节(如果只使用一个标记,或者如果使用两个标记,则为1526 )。所有这些都不能解释数字1542。

要达到这个数字,您需要考虑如何在以太网上发送帧。以太网局域网上没有时钟,因此帧的发射机发送一系列1's和0's来设置时钟。这就是序言。并不是每个听众都会“听到”所有的序言,但大多数人应该听到其中的某些部分。为了表示序言的结尾,最后发送的8位中的一位被翻转,所以它不再是10101010,而是变成10101011。这个字节称为帧分隔符(SDF)的开始。这在技术上并不适用于从线路上捕获,因此通常不计算序言和1字节SDF的7字节,但如果它们是我们最初的1518字节,现在将是1526字节。还是没有1542年..。

在帧被发送后,电线上有一种强制的沉默,称为帧间间隙。这相当于12个字节的传输。这也不是计数或捕获,但如果是,它将使我们到1538字节。从1538到1542的唯一方法是说帧被标记了(也就是说,它确实包含了4字节的plan标记)。终于1542年了。

这都是术语上的。线路上的标准帧为1518字节(就任何捕获设备而言)。被标记的帧(单个标签)是线路上的1522字节。它们占用线路上1538字节或1542字节的传输空间。

希望这有助于澄清..。

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

https://serverfault.com/questions/422158

复制
相关文章

相似问题

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