解密IP分片与重组:数据传输中的关键技术

解密,ip,分片,重组,数据传输,关键技术 · 浏览次数 : 23

小编点评

**IP分片与重组** **IP分片** * 当数据包的大小超过网络链路的MTU限制时,IP分片将数据包分割为多个较小的分片进行传输。 * 分片后的IP数据报在重新组装时只能由目标主机进行,路由器不会进行重组操作。 **IP重组** * 当数据包到达目的地后,通过IP重组机制重新组合成完整的数据包。 * 重组过程中,IP数据报会被重新组织成原始的完整数据包。 **MTU(最大传输单元)** * MTU代表网络中可以传输的最大数据包大小。 * FDDI数据链路的MTU为4352字节,以太网的MTU为1500字节。 **MTU与分片** * MTU是数据链路层协议所能传输的最大数据包大小。 * 当数据包的大小超过MTU限制时,IP分片将数据包分割为多个较小的分片。 **TCP分段** * TCP分段的目的是为了让IP层不再进行分片。 * 在发生重传时,TCP会只重传已经分段的小份数据。 * 这可以提高传输效率和可靠性。 **其他** * IP6是Internet协议6版,它采用了128位地址长度,可以提供更多的IP地址。 * 随着IPv4地址的枯竭以及对IPv6的需求增加,越来越多的互联网服务提供商和组织正在逐步采用IPv6。

正文

引言

在上一章节中,我们详细讨论了IP的分类和无分类原则的原理以及其在网络通信中的应用。IP分片与重组是在数据包传输过程中起到关键作用的机制。当数据包的大小超过网络链路的MTU(最大传输单元)限制时,IP分片将数据包分割为多个较小的分片进行传输。这些分片在网络中独立传输,到达目的地后,通过IP重组机制将它们重新组合成完整的数据包。这种分片和重组的过程确保了大尺寸的数据包能够在网络中进行传输,同时保证了数据的完整性和可靠性。在本章节中,我们将深入探讨IP分片与重组的工作原理。

IP 分片与重组

不同的数据链路具有不同的最大传输单元(MTU),例如FDDI数据链路的MTU为4352字节,以太网的MTU为1500字节。MTU代表最大传输单元(Maximum Transmission Unit),指的是网络中可以传输的最大数据包大小。

FDDI(Fiber Distributed Data Interface)是一种高速局域网(LAN)标准,使用光纤作为传输介质。MTU(Maximum Transmission Unit)是指一个数据链路层协议所能传输的最大数据包大小。在FDDI网络中,MTU的大小是4352字节。这意味着在FDDI网络中,数据链路层协议能够传输的最大数据包大小为4352字节。如果要传输的数据包超过这个大小,就需要进行分片,将数据包分割成适合MTU大小的多个分片进行传输,并在接收端进行重组。

对于以太网来说,MTU的大小通常是1500字节。这意味着以太网可以传输最大为1500字节的数据包。如果数据包的大小超过了MTU的限制,那么数据包将被分片为更小的片段进行传输,并在目的地重新组装。分片后的IP数据报在重新组装时只能由目标主机进行,路由器不会进行重组操作。

之前我们还说过TCP报文段,不知道还有没有印象,MSS是最大段大小(Maximum Segment Size)的缩写,它在TCP协议中扮演着重要的角色。MSS指的是在TCP连接中允许发送的最大数据段的大小。与MTU类似,MSS也是用来限制数据包的大小,但是它是在传输层,即TCP协议层进行限制。TCP协议通过将应用层的数据分成多个数据段来传输,而每个数据段的大小受到MSS的限制。

每种数据链路的MTU之所以不同,是因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的MTU也就不同。

假设发送方要发送一个4000字节的大数据报,在以太网链路上传输,就需要将该数据报分片成3个小数据报进行传输。这是因为每个小数据报的大小不能超过MTU限制,即1500字节。接收方在收到这3个小数据报后,会根据每个数据报的序号和偏移量,将它们重组成原始的4000字节的大数据报。

image

在分片传输中,一旦某个分片丢失,则会造成整个IP数据报作废。为了避免这种情况,TCP引入了MSS,即在TCP层进行分片,而不是由IP层进行分片。这样做的好处是,TCP可以更加精确地控制每个数据段的大小,避免了IP层分片可能引发的问题。

对于UDP协议来说,我们尽量不要发送一个大于MTU的数据报文。这是因为UDP是面向无连接的传输协议,它不提供像TCP那样的可靠性和重传机制。如果我们发送一个大于MTU的UDP数据报文,它将被IP层进行分片传输。一旦其中某个分片丢失,UDP协议无法进行重传,导致数据的丢失。因此,为了确保数据的可靠传输,我们应尽量将UDP数据报文的大小控制在MTU之内,避免分片传输。

为什么IP层会分片,TCP还要分段

由于在网络传输中,IP层会自动对数据包进行分片,即使TCP层不对数据进行分段,数据包也会被IP层自动分片并正常传输。因此,TCP为什么还需要进行分段呢?难道这不是多此一举吗?

假设有一份较大的数据在TCP层不进行分段,在传输过程中发生了丢包现象,TCP会进行重传,但重传的单位却是整个大份数据(尽管IP层会将数据切分为多个小包,每个小包的长度为MTU)。这是因为IP层并不关心数据的可靠性传输。

换句话说,在一台机器的传输层到网络层这条链路上,如果传输层对数据进行分段,那么IP层就不会再进行分片。如果传输层没有进行分段,那么IP层就有可能进行分片。

简单来说,TCP对数据进行分段的目的是为了让IP层不再进行分片,并且在发生重传时只重传已经分段的小份数据。这样可以提高传输效率和可靠性。

TCP分段了,IP层就一定不会分片了吗

在上述讨论中,我们提到了在发送端进行TCP分段后,IP层就不会再进行分片。然而,在整个传输链路中,可能还存在其他网络层设备,这些设备的最大传输单元(MTU)可能小于发送端的MTU。因此,即使数据包在发送端已经进行了分段,但在经过这些设备的IP层时,仍会再次进行分片。最终,所有的分片将在接收端进行组装。

如果我们能够确定整个链路上的最小MTU,并以此长度发送数据,那么无论数据传输到哪个节点,都不会发生分片。这个整个链路上的最小MTU被称为路径MTU(PMTU)。当IP数据包到达某个路由器时,如果该路由器的MTU小于数据包长度,并且设置了DF(Do not Fragment)标志为1,该路由器将无法对数据包进行分片,只能将其丢弃。在这种情况下,路由器会生成一个ICMP(Internet Control Message Protocol)错误消息,称为“分片需要但被禁止(Fragmentation Needed But DF Set)”。该ICMP错误消息将被发送回源地址,并携带路由器的MTU值。发送端收到该ICMP错误消息后,可以根据其中的MTU值来调整发送的数据包大小,以避免再次发生被禁止分片的情况。

IP分片是一种不得已的行为,我们应尽量避免在IP层进行分片,特别是在链路中的中间设备上进行分片。因此,在IPv6中,已经禁止了中间设备对IP报文进行分片,分片只能在链路的起始和终点进行。

IPv6 基本认识

IPv6是Internet协议第6版,它是IPv4的继任者。IPv6采用128位地址长度,相比IPv4的32位地址长度,可以提供更多的IP地址。这是因为IPv4的地址空间正在逐渐枯竭,而IPv6的地址空间非常庞大,可以满足未来互联网的需求。

当谈论IPv6时,除了提到更多的地址空间外,它还带来了更好的安全性和扩展性,这意味着IPv6相比于IPv4能提供更加出色的网络体验。

虽然IPv6已经存在很长时间,但其在全球范围内的部署仍然相对较慢。这主要是因为IPv6需要与现有的IPv4网络兼容,需要进行过渡和迁移。然而,随着IPv4地址的枯竭以及对IPv6的需求增加,越来越多的互联网服务提供商和组织正在逐步采用IPv6,并逐渐实现IPv6与IPv4的双栈运行。

总结

本章节中,我们深入探讨了IP分片与重组的工作原理。不同的数据链路具有不同的最大传输单元(MTU),当数据包的大小超过MTU限制时,IP分片将数据包分割为多个较小的分片进行传输,到达目的地后通过IP重组机制重新组合成完整的数据包。TCP分段的目的是为了让IP层不再进行分片,并在发生重传时只重传已经分段的小份数据,提高传输效率和可靠性。然而,在整个传输链路中可能存在其他网络层设备,它们的MTU可能小于发送端的MTU,因此数据包仍会在这些设备的IP层进行再次分片。我们应尽量避免在IP层进行分片,特别是在链路中的中间设备上进行分片。

与解密IP分片与重组:数据传输中的关键技术相似的内容:

解密IP分片与重组:数据传输中的关键技术

本文介绍了IP分片与重组的工作原理及其在数据传输中的重要性。IP分片将大数据包分割为小分片进行传输,重组则将其重新组合为完整数据包。这种技术能适应不同网络链路的传输单元限制,提高传输效率和可靠性。随着IPv4地址枯竭,IPv6的采用越来越普遍,了解IP分片与重组对于网络优化和IPv6部署至关重要。

[转帖]纯真IP库QQWry.dat文件解析

https://zhuanlan.zhihu.com/p/360624952 纯真IP数据库文件QQWry.dat的获取与解密,基于二进制的文件结构分析以及代码示例。 QQWry.dat文件是显IP版QQ的数据库文件,用于获取对方IP及位置,纯真IP数据库也采用了这个格式,并沿用至今。 纯真IP库是

解密网络通信的关键技术(下):DNS、ARP、DHCP和NAT,你了解多少?

本文探讨了动态主机配置协议(DHCP)和网络地址转换(NAT)技术的工作原理和应用。DHCP通过简化IP地址配置过程实现了动态地址分配,而NAT则解决了IPv4地址紧缺问题。我们还介绍了DHCP中继代理和NAT中的网络地址与端口转换(NAPT)概念。然而,这些技术也存在一些限制,如无法主动建立连接和...

[转帖]《Linux性能优化实战》笔记(十九)—— DNS 解析原理与故障案例分析

一、 域名与 DNS 解析 域名主要是为了方便让人记住,而 IP 地址是机器间的通信的真正机制。以 time.geekbang.org 为例,最后面的 org 是顶级域名,中间的 geekbang 是二级域名,而最左边的 time 则是三级域名。点(.)是所有域名的根,所有域名都以点作为后缀。 把域

[转帖]nginx的ip_hash算法

概念 根据用户请求的ip,利用算法映射成hash值,分配到特定的tomcat服务器中。主要是为了实现负载均衡,只要用户ip固定,则hash值固定,特定用户只能访问特定服务器,解决了session的问题。 源码分析 ip_hash算法的处理代码位于src\http\modules\ngx_http_u

[转帖]通过DNS实现高可靠的负载均衡和访问提速

https://www.jianshu.com/p/251811ef1405 1. DNS简介 DNS (Domain Name System,域名系统),其主要作用就是将主机名解析成ip地址的过程,完成了从域名到主机识别ip地址之间的转换。 DNS是一个分布式、分层次的主机名管理架构,通过配置DN

【AIGC】只要10秒,AI生成IP海报,解放双手!!!

众所周知,各大厂目前都在AIGC的领域探索实践,也有非常多的外部设计师制作了大量的AIGC相关授课,很多同学因为不清楚具体能得到什么价值或者收获而停止了脚步。今天我来为大家分享一下经过实际探索且落地的Stable diffusion的IP海报生成流程,内容很干请上车坐稳

从浏览器输入域名开始分析DNS解析过程

摘要:DNS(Domain Name System)是域名系统的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,用于 TCP/IP 网络。 本文分享自华为云社区《DNS那些事——从浏览器输入域名开始分析DNS解析过程》,作者: 砖业洋__ 。 我们就从在浏览器输入域名开始分析。 1. D

netty系列之: 在netty中使用 tls 协议请求 DNS 服务器

简介 在前面的文章中我们讲过了如何在netty中构造客户端分别使用tcp和udp协议向DNS服务器请求消息。在请求的过程中并没有进行消息的加密,所以这种请求是不安全的。 那么有同学会问了,就是请求解析一个域名的IP地址而已,还需要安全通讯吗? 事实上,不加密的DNS查询消息是很危险的,如果你在访问一

解密网络通信的关键技术(上):DNS、ARP、DHCP和NAT,你了解多少?

在当今互联网时代,我们每天都在与各种技术打交道。但你是否了解这些技术背后的关键角色?DNS域名解析、ARP协议、DHCP动态获取IP地址以及NAT网络地址转换,它们是网络通信的支柱。DNS帮助我们将域名转换为IP地址,ARP协议获取下一跳的MAC地址,DHCP协议动态分配IP地址,而NAT则将私有I...