-1

据我目前所了解的,与不透明的 IP 分片不同;其中数据包在源处被分段并仅在目的地处重新组装;透明 IP 分段的中间网络系统,在传输过程中重新组装和分段 IP 数据包。在下面的示例中,两个终端系统 (A) 和 (B) 相互通信,每个终端系统分别是子网 1 和子网 3 的一部分。router1 会重新组装 A 发送的 IP 数据包片段,然后将整个未分段的数据包发送给 router2,后者将在将其发送给 B 之前将其分段?这是透明 IP 分段的工作原理吗?

(A) subnet1 ----- router1 ------ subnet2 ------- router2 ------- subnet3 (B)
4

2 回答 2

0

在正常的 IPv4 分片中,如果下一个接口的 MTU 小于数据包大小,路由器就会对数据包进行分片。分片发生在路由器上,但​​数据包分片的重组是终端系统的责任。

IPv4 RFC 没有直接涵盖路径中两个中间系统之间的分段和重组的使用,因此对于这种情况如何发生没有真正的标准。基本上,一条链路的一端会将数据包分段以适合链路的 MTU,而链路的另一端会将分段重新组装成原始数据包。这并不常见,因为它给路由器带来了很大的负担。在正常的碎片中,重新组装的负担放在了终端系统上。

来自RFC 791,互联网协议

基本的互联网服务是面向数据报的,并在网关处提供数据报的分段,并在目标主机中的目标互联网协议模块处进行重组。当然,也允许在网络内或通过网络网关之间的私有协议对数据报进行分段和重组,因为这对互联网协议和更高级别的协议是透明的。这种透明类型的分片和重组被称为“网络相关”(或内联网)分片,这里不再进一步讨论。

RFC 中对分片的完整描述:

碎片化

当互联网数据报起源于允许大数据包大小的本地网络并且必须遍历将数据包限制为较小大小的本地网络以到达其目的地时,互联网数据报的分段是必要的。

可以将 Internet 数据报标记为“不分段”。如此标记的任何互联网数据报在任何情况下都不应被互联网分割。如果标记为不分段的 Internet 数据报在不分段的情况下无法传递到其目的地,则将其丢弃。

跨局域网的分段、传输和重组对 Internet 协议模块不可见,称为 Intranet 分段,可以使用 [6]。

互联网分段和重组过程需要能够将数据报分解成几乎任意数量的片段,以便以后重新组装。分片的接收方使用标识字段来保证不同数据报的分片不会混在一起。片段偏移字段告诉接收者片段在原始数据报中的位置。片段偏移量和长度决定了该片段所覆盖的原始数据报的部分。more-fragments 标志指示(通过被重置)最后一个片段。这些字段为重组数据报提供了足够的信息。

标识字段用于区分一个数据报的片段与另一个数据报的片段。互联网数据报的原始协议模块将标识字段设置为一个值,该值对于该源-目的地对和协议必须是唯一的,以便数据报在互联网系统中处于活动状态。完整数据报的始发协议模块将more-fragments 标志设置为零,并将片段偏移量设置为零。

为了对长互联网数据报进行分段,互联网协议模块(例如,在网关中)创建两个新的互联网数据报,并将互联网报头字段的内容从长数据报复制到两个新的互联网报头中。长数据报的数据在 8 个八位字节(64 位)边界上分为两部分(第二部分可能不是 8 个八位字节的整数倍,但第一部分必须是)。在第一部分 NFB 中调用 8 个八位字节块的数量(对于 Fragment Blocks 的数量)。数据的第一部分放在第一个新的互联网数据报中,总长度字段设置为第一个数据报的长度。more-fragments 标志设置为 1。数据的第二部分放在第二个新的互联网数据报中,总长度字段设置为第二个数据报的长度。more-fragments 标志携带与长数据报相同的值。第二个新互联网数据报的片段偏移字段设置为长数据报中该字段的值加上 NFB。

这个过程可以推广到 n 路拆分,而不是描述的双向拆分。

为了组装互联网数据报的片段,互联网协议模块(例如在目标主机上)将互联网数据报组合在一起,这些互联网数据报的四个字段都具有相同的值:标识、源、目标和协议。通过将每个片段的数据部分放置在该片段的 Internet 标头中的片段偏移指示的相对位置来完成组合。第一个片段的片段偏移量为零,最后一个片段的更多片段标志重置为零。

于 2017-08-04T14:25:33.200 回答
0

我认为您应该阅读这篇文章,它可以让您了解它是如何工作的。

对我来说,数据包由路由器 1 重组并发送到路由器 2,然后到达 B。在所有情况下,B 都会收到整个 paquet,而不是 A 制作的片段。

于 2017-08-04T11:38:50.590 回答