流量控制与可靠传输机制

数据链路层的流量控制

较高的发送速度较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。

流量控制的方法

停止-等待协议

“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
分别有两种应用情况:
无差错情况:
流量控制与可靠传输机制_第1张图片
有差错情况:
1.数据帧丢失或检测到帧出错
流量控制与可靠传输机制_第2张图片
发完一个帧后,必须保留它的副本。
数据帧和确认帧必须编号。
2.ACK丢失
流量控制与可靠传输机制_第3张图片
3.ACK迟到
流量控制与可靠传输机制_第4张图片

停等协议性能分析

信道利用率太低!!!
流量控制与可靠传输机制_第5张图片
补充:
流量控制与可靠传输机制_第6张图片

例题:一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为多少?
流量控制与可靠传输机制_第7张图片

后退N帧协议(GBN)

滑动窗口
流量控制与可靠传输机制_第8张图片
GBN发送方必须响应的三件事
1.上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会儿再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
2.收到一个ACK
GBN协议中,对n号帧的确认采用累计确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
3.超时事件
如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方要做的事
1.如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
2.其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
运行中的GBN
假设发送窗口尺寸为4。
流量控制与可靠传输机制_第9张图片
注:若采用n个比特对帧编号,那么发送窗口的尺寸W应满足,大于等于1,小于等于2的n次方-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
重点总结
1.累计确认(偶尔捎带确认)。
捎带确认是因为数据传送的两方是相互的,接收方也可以发送数据给发送方,然后接收方要发送数据时可以将确认帧放到要发送的数据里一并发送给发送方。
2.接收方只按顺序接收帧,不按序无情丢弃。
3.确认序列号最大的、按序到达的帧。

GBN协议性能分析

优点:因连续发送数据帧而提高了信道利用率。
缺点:在重传时必须把原来已经正确传送的数据帧重传,使传送效率较低。

例题

例题1
在这里插入图片描述
由于已经收到3号帧的确认,因此3号帧以前的帧都可以确保已经被接收方成功接收,故需要重发的帧是4-7,因此选C。

例题2

流量控制与可靠传输机制_第10张图片

选择重传协议(SR)

滑动窗口
流量控制与可靠传输机制_第11张图片

SR发送方必须响应的三件事
1.上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
2.收到一个ACK
如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认处帧处。如果窗口移动了并且有序号在窗口内未发送的帧,则发送这些帧。
在这里插入图片描述
如上图所示,当接收到ACK2后,由于三号已经收到确认信息,因此滑动窗口的下界会移到4号。
3.超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
SR接收方要做的事
流量控制与可靠传输机制_第12张图片
运行中的SR

注:发送窗口最好等于接收窗口(大了会溢出,小了没意义)。大小最大为2的(n-1)次方。
重点总结
1.对数据帧逐一确认,收一个确认一个。
2.只重传出错帧。
3.接收方有缓存。

例题

在这里插入图片描述
只有0,2帧需要重传,故需要重传的帧数为2。因此答案为A。

可靠传输

发送端发啥,接收端收啥。

你可能感兴趣的:(计网,服务器,网络,运维)