第五章 运输层 ---TCP的流量控制与拥塞控制(重要)

TCP的流量控制与拥塞控制

  • 5.4 TCP的流量控制
    • 问题:若rwnd在过程中丢失了,发送方接收不到窗口大小,会造成死锁,如何解决?
    • 问题:若rwnd本身已经是0了,要怎么接收零窗口探测报文并对其发回确认呢?
    • 问题:若零窗口探测报文丢失还能打破死锁吗?
    • 例题
    • 总结
  • 5.5 TCP的拥塞控制
    • TCP四种拥塞算法
      • 慢开始
      • 拥塞避免
      • 快重传算法
      • 快恢复算法
    • 例题

5.4 TCP的流量控制

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第1张图片
大写ACK是tcp报文段首部中的标志位,取值1表示这是一个TCP确认报文段。
小写ack是TCP报文段首部中的确认号字段。取值201表示201之前的数据已全部正确接收,希望收到后续数据.
rwnd代表接收窗口字段,代表接收窗口大小为300。
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第2张图片

问题:若rwnd在过程中丢失了,发送方接收不到窗口大小,会造成死锁,如何解决?

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第3张图片

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第4张图片
当发送窗口被调控为0后,发送方启动持续计时器,若rwnd在过程中丢失了,等到持续计时器时间到了,会向接收方发送零窗口探测报文。若返回的rwnd仍为0,则重启持续计时器,但如果不是0,就可以打破死锁的局面。

问题:若rwnd本身已经是0了,要怎么接收零窗口探测报文并对其发回确认呢?

TCP规定,即使接收窗口为0,也必须接收零窗口报文段、确认报文段、紧急数据报文段。

问题:若零窗口探测报文丢失还能打破死锁吗?

可以,因为该报文有重传计时器。

例题

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第5张图片

总结

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第6张图片

5.5 TCP的拥塞控制

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第7张图片

TCP四种拥塞算法

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第8张图片

慢开始

cwnd时,使用该算法。
开始cwnd=1
传输轮次+1时,cwnd=1+1=2
传输轮次再次+1时,cwnd=2+2=4
以指数级增长,以此类推。
当慢开始门限值等于拥塞窗口值时改用拥塞避免算法。
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第9张图片

拥塞避免

cwnd>=ssthresh时,使用该算法,cwnd不再以指数级增长,而是以线性加一的方式进行拥塞避免。
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第10张图片
若部分报文段丢失,会导致超时重传,误认为产生了拥塞
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第11张图片
需进行以下工作:
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第12张图片
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第13张图片
快重传算法可以提升传输速率。

快重传算法

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第14张图片
例如,M3发送过程中丢失了,后面的数据报发送过去后发现不是按序到达的,会对M3进行重复确认,当连续三次发送方收到重复确认后立即重传M3报文,接收方接受后对收到的最后一个报文进行确认,告诉发送方这之前的所有报文均以接收完毕。
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第15张图片

快恢复算法

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第16张图片
第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第17张图片

例题

第五章 运输层 ---TCP的流量控制与拥塞控制(重要)_第18张图片

你可能感兴趣的:(计算机网络,tcp/ip,网络,网络协议)