计算机网络-6
3.4.1 流量控制与可靠传输机制
数据链路层的流量控制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层额传输控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。
流量控制方法
停止-等待协议
停止-等待协议:每发送一个帧就停止发送给,等待对方的确认,在收到确认收再发送下一个帧。
滑动窗口协议
滑动窗口协议包括:后退N帧协议(GBN),选择重传协议(SR)
停止等待协议也是一种特殊的滑动窗口协议
对比三种协议的窗口大小
停止-等待协议 发送窗口大小=1,接收窗口大小=1;
后退N帧协议(GBN) 发送窗口大小>1,接收窗口大小=1;
选择重传协议(SR) 发送窗口大小>1,接收窗口大小>1;
链路层的滑动窗口协议窗口的大小在传输过程中是固定的。
可靠传输、滑动窗口、流量控制三者关系
可靠传输:发送端发啥,接收端收啥。
流量控制:控制发送速率,使接收方有足够缓冲空间来接收每一个帧。
滑动窗口解决:
- 流量控制(收不下就不给确认,想发也发不了)
- 可靠传输(发送方自动重传)
小结
3.4.2 停止-等待协议
为什么要有停止等待协议
除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。
丢包:物理线路故障,设备故障,病毒攻击,路由信息错误等原因,会导致数据包丢失。
研究停止等待协议的前提
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
“停止等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
停止等待协议有几种应用情况?
无差错情况和有差错情况
停止等待协议–无差错情况
停止等待协议–有差错情况
1.数据帧丢失或检测到帧出错
2.ACK丢失
3.ACK迟到
停止等待协议分析
有点:简单
缺点:信道利用率太低
TD数据帧发送时延
RTT往返时延
TA确认帧发送时延
信道利用率
发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
信道吞吐率信道利用率*发送方的发送速率。
一个例题
没有说确认帧的发送时延就不考虑
小结
3.4.3 后退N帧协议
后退N帧协议的滑动窗口
发送窗口:发送方维持一组连续的允许发送的帧的序号。
接收窗口:接收方维持一组连续的允许接收的帧的序号。
发送方和接收方发送数据的过程:
GBN协议中发送方必须响应的三件事
1.上层的调用
上层要发送数据时,发送方先检査发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
2.后到一个ACK
GBN协议中,对n号帧的确认采用累计确认的方式,表明接收方已经收到n号帧和它之前的全部帧。
3.超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果岀现超时,发送方重传所有已发送但未被确认的帧。
GBN协议接收方要做的事
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
运行中的GBN协议
滑动窗口长度
如果采用2个比特对帧编号,那么他的窗口尺寸应该是[1,3],如果窗口尺寸为4,假如现在发送0 1 2 3,全部出错,重新发送0 1 2 3 ,就无法区别现在的0 1 2 3是原来出错的还是未发送的新的。
GBN协议重点总结
1.累计确认(偶尔捎带确认)
累计确认:发送方按序发送n个帧,接收方收到后向接收方发送ACKn,发送方理解为n帧与之前帧都正确接收。
偶然稍待确认:接收方将确认帧加到他想发送的数据内
2.接收方只按序接收帧,不按序无情丢弃
3.确认序列号最大、按序到达的帧
4.发送窗口最大为(2^n) -1,接收窗口大小为1
习题
GBN协议的性能分析
优点:连续发送帧提高了信道利用率
缺点:在重传时必须把原来已经正确传送的数据帧重传,使传输效率降低。