首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解旗帜是IP_MF,会发生什么?

如何理解旗帜是IP_MF,会发生什么?
EN

Network Engineering用户
提问于 2019-08-21 13:58:06
回答 1查看 1.2K关注 0票数 1

对于长度超过接口MTU的数据包,需要进行分段处理。与IP报头中的碎片有关的字段如下:

标识-用于确认不同的片段是否属于同一个IP数据包。

标志-其中IP_MF表示也有片段,它们是中间片段。

片段偏移-表示整个消息中该片段的偏移地址。

我有一个问题,如何理解旗帜是IP_MF,会发生什么?是否将标志= IP_MF的IP碎片划分为其他碎片(我称之为子分段)?如果是,那么子碎片与标志为IP_MF的IP碎片有什么关系呢?

EN

回答 1

Network Engineering用户

回答已采纳

发布于 2019-08-21 14:27:34

除了最后一个片段之外,所有片段都设置了更多的片段标志。一个数据包有可能被分割成两个以上的片段,除了最后一个碎片之外,每个碎片必须设置标志,以告诉目标主机预期会有更多的碎片。

例如,路由器可以在MTU为4500的串行接口上接收全尺寸的数据包,并需要将其发送到具有1500 MTU的以太网接口。这将导致多个片段,除最后一个片段外,所有这些片段都将设置MF标志。

完整的IPv4碎片处理过程(IPv6不允许中间设备碎片分组)在RFC 791,因特网协议中解释。这是主要的解释,但整个RFC都有关于碎片的详细信息(碎片是IPv4的主要特性之一):

互联网数据报的碎片化是必要的,因为它起源于一个允许大数据包大小的本地网络,并且必须遍历一个本地网,将数据包限制到较小的大小才能到达其目的地。一个互联网数据报可以标记为“不要碎片”。任何被如此标记的互联网数据报,在任何情况下都不能被互联网分割。如果标记为“不碎片”的internet数据报无法在不对其进行分段的情况下传递到其目的地,则应将其丢弃。在internet协议模块不可见的本地网络之间的分段、传输和重组称为intranet碎片,可以使用6。互联网碎片和重组过程需要能够将数据报分解成几乎任意数量的碎片,然后再重新组装。碎片的接收方使用识别字段来确保不同数据报的碎片不混合。片段偏移字段告诉接收方片段在原始数据报中的位置。片段偏移量和长度决定了该片段所覆盖的原始数据报的部分。多片段标志(通过重置)指示最后一个片段。这些字段提供了足够的信息来重新组装数据报。识别字段用于区分一个数据报的碎片和另一个数据报的碎片。因特网数据报的起始协议模块将标识字段设置为必须对该源-目的地对和协议唯一的值,以便该数据报在因特网系统中活动。完整数据报的起始协议模块将更多的片段标志设置为零,将片段偏移设置为零。为了分割长因特网数据报,因特网协议模块(例如,在网关中)创建两个新的因特网数据报,并将因特网头字段的内容从长数据报复制到两个新的互联网报头中。长数据报的数据在8位组(64位)边界上被分成两部分(第二部分可能不是8位字节的整数倍数,但第一部分必须是)。在第一部分NFB中调用8个八进制块的数量(对于片段块的数量)。数据的第一部分放置在第一新的因特网数据报中,总长度字段被设置为第一数据报的长度。多片段标志设置为1。数据的第二部分放置在第二新的因特网数据报中,总长度字段被设置为第二数据报的长度。多片段标志与长数据报具有相同的值。第二个新的因特网数据报的片段偏移字段设置为该字段在长数据报+ NFB中的值。这个过程可以推广到n路分裂,而不是所描述的双向分裂.为了组装internet数据报的片段,internet协议模块(例如,在目标主机上)组合互联网数据报,所有这些数据报对于四个字段都具有相同的值:标识、源、目的地和协议。组合是通过将每个片段的数据部分放置在片段偏移量在该片段的internet头中所指示的相对位置来完成的。第一个片段的碎片偏移为零,最后一个片段将多个碎片标志重置为零。

也有可能,碎片将需要在以后的道路上进一步支离破碎。执行进一步分段的路由器将以同样的方式对碎片进行分割。

这里有一些有答案的问题可以解释这一点。例如:这个问题这个问题

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

https://networkengineering.stackexchange.com/questions/61034

复制
相关文章

相似问题

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