DTE和DCE速度之间存在很大差异,这样在数据的传送与接收过程当中很可能出现收方来不及接收的情况,这时就需要对发送方进行控制。
解决
停止等待协议:
概念:当源主机发送一个帧后,即停止发送,扽等待对方的应答。如果收到目的主机的肯定应答,则接着发送下一个帧。如果收到否定应答或者超过规定的时间没有收到肯定应答,则重发该帧。当源主机发送一个帧后,即停止发送,扽等待对方的应答。如果收到目的主机的肯定应答,则接着发送下一个帧。如果收到否定应答或者超过规定的时间没有收到肯定应答,则重发该帧。
存在的问题:假设源主机发送一个帧,并且目的主机确认它,但这个确认丢失或者迟到了。在这两种情况下,源主机超时并重发这个数据帧,但目的主机却认为这是下一个数据帧,因为它正确的接收并确认了上一个数据帧。这就引起重发数据帧的问题。
解决:停止等待协议的头部通常包含1bit的顺序号,即顺序号可取0和1,并且每一帧交替使用顺序号。因此,当源主机重发帧0时,目的主机可确定它是一个帧0的重复帧,而不是帧1。
缺点:它允许源主机每次在链路上只有一个未确定的帧,这可能远远低于链路的容量。
滑动窗口协议:
概念:允许源主机连续发送多个数据帧而不需要等待目的地主机应答的算法。
每个要发出的数据帧都包含一个序列号,范围是从0~2的n次方-1。
限制连续发送数据帧数据的方法:
- 发送窗口:源主机允许发送而未得到确认的一组数据帧的序号集合。决定发送窗口大小的因素有两个:第一个因素是接收方所通告的窗口大小;第二个因素是发送方的拥塞窗口限制,即拥塞窗口。发送窗口的大小取决二者之间的较小者。
- 接收窗口:目的地主机允许接收的数据帧序号的集合。