我对一个事实有点困惑。根据该规范,以太网帧最大大小为1518字节,IPv4报头中的IPv4数据包大小长度字段可以达到65535字节。
所以我的问题是:怎么可能有一个IP包的最大长度大于一个以太网帧,因为每个人都知道,IPv4包封装成以太网帧。
我只有一个猜测就是碎片化。
请解释一下。
发布于 2016-06-15 14:21:26
您认为IPv4总是被以太网封装是有缺陷的。不要混淆网络层。以太网是一种层-2协议,可以携带任意数量的第三层协议,而不仅仅是IPv4协议.另一方面,IPv4作为一种第三层协议,可以由任意数量的第二层协议承载,它不关心哪一层协议。一些承载IPv4的第二层协议比以太网具有更大的最大MTU大小。
以太网和IPv4是在大约同一时间开发和发布的,但由非常不同的组开发和发布。当时并不明显的是,这两种协议最终都会成为其网络层的主导协议。以太网是一种局域网协议,主要用于IPX,而IPv4通常用于WANs连接大型大学计算机。
IPv4可以被路径中的路由器分割,IPv6不能,但它指定最小的MTU为1280。最近出现了PMTUD,它在沿着路径发送数据包之前在路径中发现最小MTU,以便在发送之前可以调整数据包大小以适应路径的最小MTU。
发布于 2016-06-15 18:31:41
( a)以太网不是唯一的第二层传输.
b)知识产权支持碎片化。(这是个坏主意,但它支持它。)
( c)许多供应商忽略了标准的这一特定部分,并允许“巨型框架”。因为它不是任何标准的一部分,所以没有设定的数字--从2k到16k不等。
发布于 2023-02-26 19:01:12
简而言之,碎片的确切定义是答案的一部分。
首先,正如一些人所回答的,这些是来自以太网和IP (IPv4)的规范。由于有比以太网更多的第二层(数据链路层)协议,并且假定以太网的其他用途,这些标准被写成不相互依赖。因此,如果第二层支持IP有效负载,则为IP指定的65535字节最大值可能是相同大的,但可能不能大于65535字节。在以太网上,以太网实现成为限制因素,而不是规范。
另一个因素可能是分裂。如果一个实现了支持65535字节帧的高速串行电缆协议,该协议被连接到以太网局域网上的网关上,那么这些大帧中的IP分组必须从串行电缆中分割成多个IP分组并重新组装。
虽然以上是对你的问题的一个完整的直接回答,但对这一领域的误解是我最讨厌的,所以我想解释一下你没有要求的信息,以便更充分地解释这一切是如何运作的。
从概念上讲,通信是以ISO的OSI模型为模型的,低层封装了编号较高的层。这就给了我们这个概念:

然而,这个图表是不正确的。
让我们考虑用双绞线连接两台计算机的以太网卡。一台计算机正在运行一台web服务器,而另一台计算机则从该服务器打开一个网页。我们在以太网上有HTTP over TCP,over IP。
物理层(第1层)是通过电线上的电荷循环进行通信的电缆。
数据链路层(第二层)是以太网,它接受物理计费服务,并在局域网上实现广播帧的帧服务,并接收寻址到适当计算机的帧。这些帧中的每一个都具有以太网报头,后面跟着帧有效负载。
网络层(第三层)是IP。IP层提供IP分组服务,通过IP跳将分组传送到分组的目标地址。此IP分组封装在以太网帧的有效负载中。在该数据包中是一个IP报头,后面是IP数据包有效负载。
传输层(第4层)是TCP。TCP提供字节/比特流服务。字节在一端写入,TCP允许在另一端读取字节。TCP中断这些字节的流以适应IP数据包。每个IP数据包有效负载以TCP报头开始,后面跟着流中的字节。
以太网、IP和TCP的头在每个帧中重复,给出了这个图:

接下来,我们有了应用层(第7层),即HTTP。HTTP请求和响应具有HTTP头。但是,头并不是在每个帧中重复的。它也可以比单帧更大。这里的原始图表是错误的。
您的问题的答案是,您所引用的数字来自规范,这可能与IP over以太网的特定组合的实际关注点不匹配。该对可能有一个额外的限制,将IP分组限制在比规范允许的最大值更小的范围内。
但是,为了澄清,您正确地认为IP数据包、IP报头和IP有效负载必须适合以太网帧。TCP段( TCP报头和TCP段有效负载)必须适合IP数据包。TCP提供了一个跨IP数据包的流。HTTP报头和请求或响应主体(不要与body标记混淆)在跨多个IP数据包的TCP上进行流。
https://networkengineering.stackexchange.com/questions/32286
复制相似问题