互联网真的能以 1500 字节运行吗?

Does the internet really works at 1500 bytes?

MTU(最大传输单元)是可以传输的最大帧大小。 当我们谈论 MTU 时,它通常是硬件级别的上限,适用于较低级别的层 - 数据链路层和物理层。

现在,考虑到 OSI 层,无论上层的效率有多高或它们应用了什么样的魔法酱料,数据-link 层将始终构建大小 < 1500 字节的帧(或任何 MTU)和“互联网”中的任何内容都将始终以该帧大小传输。

互联网的传输速率真的限制在 1500 字节吗?现在,我们看到 10-100 Mbps 甚至 Gbps 的速度。我想知道这样的速度,帧是否仍然以 1500 字节的速度传输,这意味着在接收方有很多很多的碎片和重组。在这种规模下,上层如何实现效率?!

[编辑]

根据以下评论,我重新提出我的问题:

如果数据层以 1500 字节帧传输,我想知道接收方的上层如何处理如此庞大的传入数据帧。

例如:如果互联网速度为 100 Mbps,则上层必须处理 104857600 bytes/second 或 104857600/1500 = 69905 frames/second。网络层也需要重新assemble这些帧。网络层如何能够处理如此规模的问题。

If data-layer transmits at 1500 byte frames, I want to know how is upper layer at the receiver able to handle such huge incoming data-frames.

1500 个八位字节是一个合理的 MTU(最大 传输单元),这是 data-link 协议负载的大小。请记住,并非所有帧都是该大小,它只是帧有效负载的最大大小。有很多东西的有效载荷要小得多。例如,VoIP 的负载非常小,通常小于各种协议的开销。

帧和数据包一直丢失或丢失,通常是故意的(参见 RED,随机早期检测)。数据单元越大,丢帧或丢包时丢失的数据越多,使用可靠的协议,如TCP,必须重新发送的数据也越多。

此外,对帧或数据包大小进行合理限制可防止一台主机独占网络。主持人必须轮流。

For ex: If internet speed in 100 Mbps, upper layers will have to process 104857600 bytes/second or 104857600/1500 = 69905 frames/second. Network layer also need to re-assemble these frames. How network layer is able to handle at such scale.

你的陈述有几个问题。

首先,100 Mbps 是每秒 12,500,000 字节。要计算每秒的帧数,您必须考虑 data-link 开销。对于以太网,您有 7 个八位字节的 Preabmle、一个 1 个八位字节的 SoF、一个 14 个八位字节的帧头、有效负载(46 到 1500 个八位字节)、一个四个八位字节的 CRC,然后是一个 12 个八位字节的 Inter-Packet 间隙。以太网开销为 38 个八位字节,不包括有效负载。到现在每秒多少帧,您需要知道每个帧的有效载荷大小,但您似乎错误地假设每个帧的有效载荷最大为 1500 个八位字节,但事实并非如此。对于最大帧大小,您每秒可获得超过 8,000 帧。

接下来,网络层不重组帧有效载荷。帧的有效载荷是一个 network-layer 数据包。网络数据包的有效载荷是transport-layer数据单元(TCP段、UDP数据报等)。传输协议的有效负载是应用程序数据(请记住,OSI 模型只是一个模型,操作系统不实现单独的会话层和表示层;只有应用层)。传输协议的有效负载呈现给应用程序进程,它可以是应用程序数据或 application-layer 协议,例如HTTP.

带宽(在您的示例中为 100 Mbps)是主机将位序列化到线路上的速度。这是 NIC 硬件及其使用的 physical/data-link 协议的功能。

which would mean lots and lots and lots of fragmentation and re-assembly at the receiver.

数据包碎片基本上已经过时了。它仍然是 IPv4 的一部分,但是在 IPv6 中已经消除了路径中的分片,聪明的企业不允许因分片攻击而出现 IPv4 数据包分片。如果包头中没有设置DF位,IPv4包可能会被分片,路径中的MTU会比原来的MTU收缩得更小。例如,由于隧道开销,隧道将具有较小的 MTU。如果设置了 DF 位,则对于下一个 link 上的 MTU 来说太大的数据包将被丢弃。数据包分段在路由器上非常耗费资源,必须执行一组步骤才能对数据包进行分段。

您可能会混淆 IPv4 数据包分段和重组与 TCP 分段,这是完全不同的东西。