71.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_center,t_50,x_10,y_10

之前的文章我们有讲解TCP拥塞避免的方式,这些都是通过发送端来实现,那么接受方有什么方式解决拥塞问题?

技术图解

接收方的拥塞避免方式,叫做快速重传。快速重传如何操作?我们以下图为例简单说一下:

71-1.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_center,t_50,x_10,y_10

看图说话

接收方收到了M1和M2后都分别发出了确认。现在假定接收方没有收到M3但接收到了M4。接收方不能确认M4,因为M4是收到的失序报文段。根据可靠传输原理,接收方可以什么都不做。但按照快重传算法规定,接收方应及时发送对M2重复确认,这样做可以让发送方及早知道报文段M3没有到达接收方。

发送方在收到三次重复确认之后,会立即重新发送M3。并且判定网络可能出现拥塞,然后把ssthresh设置为cwnd一半,最后重新进入拥塞避免阶段。


 评论