流量控制与滑动窗口是数据链路层的重要内容。当发送方较高的发送速度与接收方较低的接收速度不匹配时会造成传输出错,所以需要进行流量控制。我们需要明白一点,在数据链路层流量控制是点到点的,而在传输层流量控制是端到端的。
- 数据链路层流量控制手段:接收方收不下就不回复确认,当接收方还收得下时就会回复,然后发送方就会接着发送
- 传输层流量控制手段:接收端给发送端一个窗口公告
停止-等待协议
在数据的传输过程中除了会出现比特差错,底层信道还会因为物理线路故障、设备故障等原因导致数据包的丢失并且为了实现流量控制,所以需要停止-等待协议。虽然现在常常使用全双工的通信模式但是为了更清楚的理解停止-等待协议我们在此只考虑一放发送数据另一方接收数据的情况。停止-等待协议用一句话概括就是“发送方每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组”
无差错情况
在这里0帧和1帧只是帧的代号,里面的内容是不同的。我们可以从图中很清楚的看到在无差错的情况下发送方每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
有差错情况
- 数据帧丢失或者检测到帧出错