【发布时间】:2021-10-13 05:57:35
【问题描述】:
我有基本问题。试图了解网络层如何识别何时接收到大于其接口 MTU 配置的数据包并必须对其进行分段的机制。
例如。如果应用程序要传输的数据是 2000 字节,而服务器上的 NIC 的 MTU 为 1500。网络层现在必须进行分段,但它如何知道它必须这样做。传输层是否将完整的 2000 字节数据提供给网络层,然后网络层将其与配置的接口 MTU 进行比较并做出相应决定
【问题讨论】:
-
如果理解上有一点点差距:当网络层绑定一个网络接口(从数据链路层)时,MTU是向上传递的,所以网络层总是知道的。
-
@Zac67 感谢您的回复。那么这是否意味着对于上面的示例,网络层将获取 2000byte 的数据包,然后将其存储在某个缓冲区中,同时根据 MTU 设置将数据包(1500bye)发送到下层。
-
是的,差不多。当网络层从传输层 (L4) 获得对于底层数据链路层 (L2) 来说太大的数据报时,数据包将被分片(除非 L4 禁止分片)。
标签: tcp ip fragmentation