首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据链路层可以在某些特殊情况下进行IP分段吗?

数据链路层可以在某些特殊情况下进行IP分段吗?
EN

Server Fault用户
提问于 2018-01-01 13:51:56
回答 3查看 928关注 0票数 1

我正在阅读“TCP/IP插图”(第1卷)一书,书中说IP碎片是由网络层完成的。

到目前为止,我就是这样理解这个概念的:网络层(L3)创建"IP数据报“(IP报头+数据),并将该字节数组发送到数据链路层(L2)。如果L2不知道IP数据报结构,并且接收到的字节数组大于最大大小,那么它将不知道如何拆分该字节数组并在每个块中附加IP头,这是其L3's的责任。因此,L2和L3必须以某种方式合作。

令我困惑的是,几页之后,当讨论IP头、IP数据报的总长度和最大大小时,它说:“尽管发送65535字节的IP数据报是可能的,但大多数链路层都会将其分割开来”。

我的“概念”错了吗?L2是否了解IP数据报的结构,从而可以对IP数据报进行分割?如果是这样的话,为什么L2不总是这样做,因为它知道它的MTU?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2018-01-02 17:30:41

IP碎片是一个东西,在IP层切分数据报。重组工作,如果其中一个碎片丢失,可能会重新传输,这意味着要避免碎片。

底层2是分开的,并将每个包(片段)包装在一个帧中。事实上,这就是它作为一般来说,L2(当然不是以太网)不做“碎片)。所能做的所有事情。

确定最优大小的协调性要小得多,更像是猜测,称为路径MTU发现。网络堆栈不太可能尝试最大65535字节。也许ICMP的消息会回来说这个尺寸太大了。虽然路径从一开始就可能是一个以太网接口,所以尝试1400以上的任何操作都可能行不通。

票数 2
EN

Server Fault用户

发布于 2018-01-01 22:10:57

这一措辞具有误导性。IP层知道链路层的最大有效负载大小,所以它会进行分段。

票数 1
EN

Server Fault用户

发布于 2018-01-01 14:03:58

L2不知道IP,但它在帧大小上有自己的限制。任何大于L2帧大小的IP数据报都会被吐出2到更多L2帧。

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

https://serverfault.com/questions/890256

复制
相关文章

相似问题

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