数据段重新排序

当服务使用 TCP 传送数据时,数据段到达目的地的顺序可能是混乱的。 因此,为了让目的设备理解原始消息,将重组这些数据段,使其恢复原有顺序。 每个数据包中的数据段报头中都含有序列号,便于进行数据重组。

在会话建立过程中,将设置初始序列号 (ISN)。 此 ISN 表示该会话中传输到接收应用程序的字节起始值。 在会话过程中,每传输一定字节的数据,序列号就随之增加。 通过这样的数据字节跟踪,可以唯一标识并确认每个数据段, 还可以标识丢失的数据段。

通过指明所接收数据段的重组和重新排序方式,数据段序列号可以确保数据传输的可靠性,如图所示。

接收方的 TCP 进程将数据段中的数据存入缓存区, 而数据段则按照正确的序列号顺序进行排列,重组后发送到应用层。 对于序列号不连续的数据段,将被保留以备后期处理。 等缺失的数据段到达后,再来按顺序处理这些数据段。