首页 文章资讯内容详情

环绕概念和 TCP 序列号

2026-06-03 1 花语

什么是TCP?

传输控制协议(TCP)是一种网络通信协议,允许通过Internet发送数据包。

TCP是一种OSI传输层协议,用于通过支持网络和Internet传送和确保消息传递来连接远程计算机。

传输控制协议是Internet协议族(有时称为TCP/IP族)的成员,是数字网络通信中使用最广泛的协议之一。

TCP主要用于确保不同节点之间的端到端数据传递。

TCP与Internet协议协同工作,后者确定远程节点的逻辑位置,而TCP传输并确保数据到达其预定目的地。

TCP在传输数据之前在源节点和目标节点之间建立连接,并保持连接直到对话完成。

TCP将海量数据分解成更小的数据包,并确保数据在到达目标节点后保持完整性。

什么是序列号?

32位序列号字段指定分配给段的第一个数据字节的编号。TCP是一种以流形式传输数据的协议。要传输的每个字节都进行编号以确保连通性。每一方在连接建立期间使用随机数生成器生成初始序列号(ISN),通常在每个方向上都不同。正如我们所知,TCP序列号是32位长。

因此,它具有有限数量的序列号(范围从0到(232-1)=4Giga),这意味着我们将使用唯一序列号传输不超过4GB的数据。

它有助于分配与通过TCP连接发送的其他数据字节兼容的序列号。每个连接都有自己的ISN,由设备分隔。

环绕概念

当有相当大的流量时,所有的序列号都可能用完。每个数据包的序列号必须是唯一的;然而,因为它是有限的(4Giga),序列号在某个时候会用完。当可访问时,先前使用的序列号可以根据需要重用,这种序列号的重用被称为环绕一个想法。

环绕被定义为“在所有序列号都用完后一遍又一遍地使用序列号,以保持数据传输的连续性”。

这使您可以传输越来越多的数据,而不必担心要发送多少数据。因为序列号可以重复使用,所以可以存储的数据量没有限制。

何时以及如何使用Wraparound?

比如我下载了一个4GB+2字节的软件,但是可以访问的序列号只有4GB,剩下的2个字节就接收不到序列号了。在这些情况下,序列号会被包装,这意味着它们会根据需要重复使用。随机初始序列号对这种包装有影响。一开始我们可能会收到较少数量的序列号,但是一旦所有序列号都用完,序列号将重置为0。

我们将从我们开始使用序列号的任何地方获得232个序列号。因此,我们可以争辩说TCP序列号的包装思想涉及根据需要回收序列号。

环绕时间

环绕时间是环绕所需的时间。它表示如果我们从序列号0(或任何其他数字)开始,我们将在多长时间后再次使用相同的序列号。开始重用相同序列号所需的时间,或根据需要重复序列号所需的时间,称为“环绕时间”。

可用的序列数和带宽定义了环绕时间。利用比特(序列号)的速率称为带宽。消耗的速度越快,序列号消耗的越快。

$$\mathrm{Wraparound\:Time=\frac{Total\:Sequence\:Number}{Bandwidth}=\frac{232}{Bandwidth}}$$

如何减少环绕时间?

环绕时间与带宽成反比,与序列数(数据流动的速率)成正比。

可用的序列号越多,环绕时间就越长。

环绕时间越长,带宽越低。

因此,为了降低环绕时间,我们必须-

减少序列号或

增加可用带宽(可能)