TCP/IP协议族学习笔记(三):流量控制及阻塞控制
一、流量控制
1.1概念:当发送方和接收方通过一段链路进行数据通信,相当于发送方的应用进程与接收方的应用进程之间通过链路进行通信。发送方的应用进程将待发送的应用报文交付给发送进程,发送进程一方面将应用报文封装成协议数据单元(数据包),存入发送缓存;另一方面,将数据包取出进行发送。
接收方的接收进程一方面将数据包存入接收缓存,一方面凑够缓存中取出数据包,从其中提取应用报文送给接收方。
假设发送方源源不断的发送数据,如果原计算机的上层应用产生数据的速度比目的计算机上层应用吸收数据的速度快。则接收方就会被这种数据淹没。
1.2 流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。流量控制的基本方法是由接收方控制发送方发送数据的速率。常见的方式有以下两种:
1.2.1 停止-等待流量控制 :
发送方每发送一帧,都必须停止发送,等待接收方发回的针对该帧的确认,之后才能发送下一帧。
接收方每接收一帧都要给发送方发回一个确认,表示可以接收下一帧。传输效率很低。
1.2.2 滑动窗口流量控制:
发送方维护一个发送窗口,发送窗口的大小W表示在未收到接收方发来确认的情况下,最多还可以发送多少个帧;只有接收窗口向前滑动时,发送窗口才有可能向前滑动;
接收方维护一个接收窗口,只有当接收到的帧的序号落入接收窗口内才收下该帧,将窗口向前滑动一个位置,并给发送方发回确认;若接收到的帧的序号落在接收窗口之外,则一律将其丢弃。
注意:1. TCP的窗体单位是字节,不是报文段。
2. 死锁
假设B在向A发送了零窗体报文段后不久&#