计算机网络--Ch3.数据链路层(三)

147 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的27天,点击查看活动详情

五.流量控制与可靠传输机制

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

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

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

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

1.流量控制的方法

image-20220925150711664

image-20220925150725638

2.可靠传输、滑动窗口、流量控制

image.png

Summary:

流量控制、滑动窗口、可靠传输

2.1停止-等待协议
2.1.1.为什么要有停止-等待协议?

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

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

2.1.2.研究停等协议的前提?

虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据 (接收方)。 ​ 因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。 ​ “停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

2.1.3.停等协议有几种应用情况?

无差错情况&有差错情况

image-20220925152229653

image-20220925152254047

image-20220925152307505

image-20220925152319266

2.1.4停等协议性能分析

image-20220925152408482

2.2.1信道利用率

image-20220925152441532

image-20220925152456598

Sunnmary:

停止-等待协议

六.后退N帧协议(GBN协议)

1.停止-等待协议的弊端

image-20220926205055938

2.滑动窗口

image-20220926205647696

3.GBN发送方必须响应的三件事

3.1上层的调用

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

3.2收到了一个ACK

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

3.3超时事件

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

4.GBN接收方要做的事

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

这句话的意思是:假如现在收到了0 1 2号帧 收到4 5号帧,4,5就丢弃掉,收到0,1,2号后,需要等待接受3号帧

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

5.运行中的GBN

image-20220926212638786

6.滑动窗口长度

image-20220926213115703

7.GBN协议性能分析

优点

因连续发送数据帧而提高了信道利用率

缺点

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

Summary:

1.累积确认(偶尔销带确认) 2.接收方只按顺序接收帧,不按序无情丢弃 3.确认序列号最大的、按序到达的帧 4.发送窗口最大为(2^n)-1,接收窗口大小为1

image-20220926214641834