TCP(传输控制协议)的序号(Sequence Number)单位是字节(byte)。
详细说明
-
序号的作用:
- TCP 是一种面向字节流的协议,它通过序号来确保数据包按顺序到达并且不重复。每个字节在 TCP 连接中都有一个唯一的序号,序号标识数据流中的每个字节。
-
序号的初始值:
- TCP 序号并不是从 0 开始的。在建立连接时,双方会通过三次握手过程选择一个随机的初始序号(ISN,Initial Sequence Number),这个初始序号是一个 32 位的数字。
-
序号的单位:
- TCP 序号单位为字节,这意味着序号对应的是字节数而不是数据包数。例如,如果一个 TCP 报文段包含 100 个字节的数据,且序号是
1000
,那么下一次传输数据时,序号将增加 100,即变为1100
。
- TCP 序号单位为字节,这意味着序号对应的是字节数而不是数据包数。例如,如果一个 TCP 报文段包含 100 个字节的数据,且序号是
-
序号递增:
- 每发送一个字节的数据,序号都会增加 1。由于序号是 32 位的整数,当达到最大值(2^32 - 1,即 4,294,967,295)时,序号会回绕到 0 继续增长。
示例
假设一方发送了一个包含 500 个字节的数据包,起始序号为 1000,那么这个数据包覆盖的字节范围是 1000 到 1499,下一个数据包的起始序号将是 1500。
这种以字节为单位的序号设计,使得 TCP 能够对丢失和乱序的数据包进行精确控制和重传。