- tcp序号是两个方向的,每个方向有自己的序列号
- 依次发出的两个tcp数据包的序号可能相同、可能加1、也可能加更多,规则:
- 如果上个数据包不需要确认,则下个数据包的序号不增加
- 如果上个数据包没有数据,但是也需要确认,如SYN,则下个数据包的序号加1
- 如果上个数据包有n个数据,则下个数据包的序号加n
- 确认号比较简单,就是要确认的数据包的序号加1
- 确认包可以是包含在响应的数据包中的
- 不是每个数据包都要对应一个确认包的,一个确认包可以确认好几个数据包的,如:
- 由于接收方buffer比较大(就是tcp的win比较大),发送方连续发送了3个数据包,这时候,接收方可以只确认最后一个数据包就足以说明前两个数据包都已经收到了