计算机网络-6(第三章)


计算机网络-6

3.4.1 流量控制与可靠传输机制

数据链路层的流量控制

较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

数据链路层额传输控制是点对点的,而传输层的流量控制是端到端的。

数据链路层流量控制手段:接收方收不下就不回复确认。

传输层流量控制手段:接收端给发送端一个窗口公告。

流量控制方法

停止-等待协议

停止-等待协议:每发送一个帧就停止发送给,等待对方的确认,在收到确认收再发送下一个帧。

image-20210510133910871

滑动窗口协议

滑动窗口协议包括:后退N帧协议(GBN),选择重传协议(SR)

image-20210510134445132

停止等待协议也是一种特殊的滑动窗口协议

对比三种协议的窗口大小

停止-等待协议 发送窗口大小=1,接收窗口大小=1;

后退N帧协议(GBN) 发送窗口大小>1,接收窗口大小=1;

选择重传协议(SR) 发送窗口大小>1,接收窗口大小>1;

链路层的滑动窗口协议窗口的大小在传输过程中是固定的。

可靠传输、滑动窗口、流量控制三者关系

可靠传输:发送端发啥,接收端收啥。

流量控制:控制发送速率,使接收方有足够缓冲空间来接收每一个帧。

滑动窗口解决:

  • 流量控制(收不下就不给确认,想发也发不了)
  • 可靠传输(发送方自动重传)

小结

image-20210510135423159

3.4.2 停止-等待协议

为什么要有停止等待协议

除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。

丢包:物理线路故障,设备故障,病毒攻击,路由信息错误等原因,会导致数据包丢失。

研究停止等待协议的前提

虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。

因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。

“停止等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

停止等待协议有几种应用情况?

无差错情况和有差错情况

停止等待协议–无差错情况

image-20210510140749054

停止等待协议–有差错情况

1.数据帧丢失或检测到帧出错

image-20210510141809722

2.ACK丢失

image-20210510141948546

3.ACK迟到

image-20210510142101297

停止等待协议分析

有点:简单

缺点:信道利用率太低

image-20210510142308941

TD数据帧发送时延

RTT往返时延

TA确认帧发送时延

信道利用率

发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

image-20210510142508881

信道吞吐率信道利用率*发送方的发送速率。

一个例题

image-20210510142722089

没有说确认帧的发送时延就不考虑

小结

image-20210510142825141

3.4.3 后退N帧协议

后退N帧协议的滑动窗口

发送窗口:发送方维持一组连续的允许发送的帧的序号。

image-20210510143652491

接收窗口:接收方维持一组连续的允许接收的帧的序号。

image-20210510143701350

发送方和接收方发送数据的过程:

image-20210510144002413

GBN协议中发送方必须响应的三件事

1.上层的调用

上层要发送数据时,发送方先检査发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。

2.后到一个ACK

GBN协议中,对n号帧的确认采用累计确认的方式,表明接收方已经收到n号帧和它之前的全部帧。

3.超时事件

协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果岀现超时,发送方重传所有已发送但未被确认的帧。

GBN协议接收方要做的事

如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。

其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。

运行中的GBN协议

image-20210510150311343

滑动窗口长度

image-20210510150553390

如果采用2个比特对帧编号,那么他的窗口尺寸应该是[1,3],如果窗口尺寸为4,假如现在发送0 1 2 3,全部出错,重新发送0 1 2 3 ,就无法区别现在的0 1 2 3是原来出错的还是未发送的新的。

image-20210510150920191

GBN协议重点总结

1.累计确认(偶尔捎带确认)

累计确认:发送方按序发送n个帧,接收方收到后向接收方发送ACKn,发送方理解为n帧与之前帧都正确接收。

偶然稍待确认:接收方将确认帧加到他想发送的数据内

2.接收方只按序接收帧,不按序无情丢弃

3.确认序列号最大、按序到达的帧

4.发送窗口最大为(2^n) -1,接收窗口大小为1

习题

image-20210510151849768

GBN协议的性能分析

优点:连续发送帧提高了信道利用率

缺点:在重传时必须把原来已经正确传送的数据帧重传,使传输效率降低。

小结

image-20210510152257808


文章作者: 晓莎K
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 晓莎K !
评论
  目录