互联网真的可以1500字节工作吗?

问题描述

MTU(最大传输单位)是可以传输的最大帧大小。 当我们谈论MTU时,它通常是硬件级别的上限,是针对较低层的-DataLink和Physical层。

现在,考虑到OSI层,上层的效率有多高或应用哪种魔术酱都无关紧要,数据链路层将始终构造大小小于1500字节的帧(或MTU不管是多少) ),“互联网”中的所有内容将始终以该帧大小进行传输。

Text

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

[编辑]

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

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

例如:如果Internet速度为100 Mbps,则上层将必须处理104857600字节/秒或104857600/1500 = 69905帧/秒。网络层还需要重新组装这些框架。网络层如何以这种规模进行处理。

解决方法

如果数据层以1500字节帧传输,我想知道 接收器的上层能够处理如此巨大的传入 数据帧。

1500个八位位组是一个合理的MTU(最大传输单元),它是数据链路协议有效负载的大小。请记住,并非所有帧都具有该大小,这只是帧有效负载的最大大小。有效负载较小的东西很多很多。例如,VoIP的有效负载非常小,通常小于各种协议的开销。

帧和数据包总是在故意丢失或丢失的情况下出现(请参阅RED,随机早期检测)。数据单元越大,丢失帧或数据包时丢失的数据就越多,并且使用可靠的协议(例如TCP),必须重新发送更多的数据。

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

例如:如果互联网速度为100 Mbps,则上层将必须 处理104857600字节/秒或104857600/1500 = 69905 帧/秒。网络层还需要重新组装这些框架。 网络层如何以这种规模进行处理。

您的陈述有几个问题。

首先,100 Mbps是每秒12,500,000字节。要计算每秒的帧数,必须考虑数据链接的开销。对于以太网,您有7个八位位组Preabmle,一个1个八位位组SoF,一个14个八位位组帧标头,有效负载(46到1500个八位位组),四个八位位组CRC,然后是12个八位位组间分组间隙。以太网开销为38个八位位组,不计算有效负载。现在到每秒多少帧,您将需要知道每个帧的有效负载大小,但是您似乎错误地认为每个帧的有效负载是最大1500个八位位组,这是不正确的。您可以获得每秒超过8,000帧的最大帧大小。

接下来,网络层不重组帧有效载荷。帧的有效载荷是一个网络层数据包。网络数据包的有效载荷是传输层数据单元(TCP段,UDP数据报等)。传输协议的有效负载是应用程序数据(请记住,OSI模型只是一个模型,并且OS并不实现单独的会话和表示层;仅实现了应用程序层)。传输协议的有效载荷被提供给应用程序过程,它可以是应用程序数据或应用程序层协议,例如: HTTP。

带宽(在您的示例中为100 Mbps)是主机可以将位串行化到线路上的速度。这取决于NIC硬件及其使用的物理/数据链接协议。

这意味着很多很多的碎片和 在接收器上重新组装。

数据包分段基本上已经过时了。它仍然是IPv4的一部分,但是路径中的分段已在IPv6中消除,并且智能业务不允许由于分段攻击而导致IPv4数据包分段。如果未在数据包头中设置DF位,则IPv4数据包可能会碎片化,并且路径中的MTU缩小的程度将小于原始MTU。例如,由于隧道开销,隧道的MTU较小。如果DF位置1,则对于下一个链路上的MTU太大的数据包,该数据包将被丢弃。数据包分段在路由器上非常耗费资源,因此必须执行一组步骤才能对数据包进行分段。

您可能将IPv4数据包分段和重组与TCP分段混淆,这完全不同。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...