TCP的定义是一个可靠的面向流的传输协议。
【可靠】就包括俩方面,一个是保证数据是完整的(重传机制),一个就是保证数据流量能在彼此的接受范围内。
本篇主要学习的滑动窗口及拥塞控制等内容主要都是关于流量控制的。
TCP是双全工协议,发送方和接收方分别维护着一个独立的发送缓冲区和接收缓冲区,由于对等性(A发B收和B发A收),我们以A发送B接收的情况作为例子;
滑动窗口
发送窗口概念
发送缓冲区的数据分为四种:
- 已发送,已收到ACK
- 已发送,未收到ACK
- 未发送,但允许发送
- 未发送,但不允许发送
其中类型2和3都属于发送窗口。
接收方的缓存数据分为3类:
- 已接收
- 未接收但准备接收
- 未接收而且不准备接收
其中类型2属于接收窗口。
总结:发送窗口是发送缓存中的一部分,是可以被TCP协议发送的那部分,窗口大小代表了设备一次能从对端处理多少数据;
滑动机制
每次成功发送数据之后,发送窗口就会在发送缓冲区中按顺序移动,将新的数据包含到窗口中准备发送;