5.5 TCP流量控制&拥塞控制【重点】
5.5 TCP流量控制&拥塞控制【重点】
流量控制:让发送方慢点,要让接收方来得及接收。
流量控制原理——滑动窗口机制
-
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小。
-
即接收窗口rwnd (接收方 设置确认报文段的窗口字段来将rwnd通知给发送方)
-
发送方的发送窗口大小取值为 min{接收窗口rwnd,拥塞窗口cwnd}
例子
A向B发送数据,连接建立时,B告诉A:“我的rwnd=400(字节)”,设每一个报文段100B,报文段序号初始值为1。

- TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知【rwnd=0】,就启动持续计时器。
- 若持续计时器设置的时间到期,就发送一个零窗口探测报文段。 接收方收到探测报文段时给出现在的窗口值。
- 若窗口仍然是0,那么发送方就重新设置持续计时器。
TCP拥塞控制
出现拥塞的条件: 对资源需求的总和 > 可用资源
拥塞控制: 防止过多的数据注入到网络中。 (防止网络性能变坏)
拥塞控制的四种算法
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
假定:
1.数据单方向传送,而另一个方向只传送确认
⒉接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度
发送窗口=Min{接收窗口rwnd,拥塞窗口cwnd}
接收窗口:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。
慢开始和拥塞避免

一个传输轮次: 发送了一批报文段并收到它们的确认的时间。
阶段
慢开始阶段:第n轮次,其拥塞窗口cwnd就是2^n【n是从开始那一刻算0起始,n++】
拥塞避免阶段:24/2=12得到新的ssthresh值,即网络拥塞时的最大窗口数量/2,得到新的最大值。
重复下一回合——
慢开始阶段
拥塞避免阶段
快重传和快恢复

慢开始阶段:第n轮次,其拥塞窗口cwnd就是2^n
快恢复:从新的ssthresh值开始,加法增大,cwnd++
拥塞避免阶段:24/2=12得到新的ssthresh值,
重复下一回合——