计算机网络(王道)第三章数据链路层 ACK:确认帧

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


导图

/font>

在这里插入图片描述


提示:以下是本篇文章正文内容,

一、概述和功能

在这里插入图片描述

二、封装成帧与透明传输

封装成帧就是加将数据加头加尾,相当于将数据打包
透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况

在这里插入图片描述

2.1.字符计数法

就是在帧的首部做计数,看看数据是否错误
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧
比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误

在这里插入图片描述

2.2 字符填充法

在这里插入图片描述
解决方法:添加转义字符

在这里插入图片描述


2.3 零比特填充法

在这里插入图片描述

2.4 违规编码法

因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突

在这里插入图片描述

三. 流量控制和可靠传输

3.1 流量控制和可靠传输

流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费
可靠传输是发送端发送什么,接收端就要受到什么

3.2 停止等待协议(Stop-and-Wait)

在这里插入图片描述

停止等待协议的无差错情况
注释:因为一次就一个,所以用0和1标记ack就行

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

停止等待协议的特点
1.简单
2.信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费

信道利用率

在这里插入图片描述
在这里插入图片描述

3.3 后退N帧协议(GBN)

因为停止等待协议太浪费时间了,所以尝试采用GBN,发送连续多个数据帧,以增大信道利用率
注释:
累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到,反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传

在这里插入图片描述
注释:此图发送2帧时丢失,所以接收方几首收到后面的帧也是直接丢弃并且发送最晚收到的有效帧1的ACK,直至2帧的超时重传机制被触发进行重传并得到ACK之后,接收方才会接受2帧以及后面的帧

  • 12
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C知道回答: 数据链路层的主要功能包括:同步、流量控制、差错控制、地址识别和访问控制等。 将数据链路层做成可靠的链路层的优点是可以保证数据传输的可靠性,可以检测和纠正传输中的错误,提高数据传输的成功率。缺点是会增加传输的时间和开销,降低传输的效率。 ### 回答2: 数据链路层是OSI模型中的第二层,主要负责将物理层提供的原始比特流转化为可靠的数据传输。数据链路层的主要功能包括: 1. 封装和解封装:将上层传来的数据封装成,方便在物理层进行传输,并在接收端将解开还原为数据。 2. 定界:在比特流中插入特定比特序列作为起始和终止标识,以确保开始和结束的准确位置,实现正确的识别。 3. 同步:在传输过程中维持发送端和接收端的同步,确保数据以正确的速率进入接收端。 4. 检错:通过添加校验码,检测并纠正传输中出现的错误,确保数据的完整性和准确性。 5. 流量控制:保证发送方和接收方之间的数据流量平衡,避免发生数据溢出或丢失。 6. 差错控制:通过确认、重传和丢弃等机制,确保数据的可靠传输,并避免数据重复或丢失。 7. 透明传输:能够透明地传输不同类型的数据,无论是文本还是二进制数据,都能正确无误地传输。 将数据链路层实现为可靠的链路层有以下优点和缺点: 优点: 1. 可靠性:可靠的链路层能够保证数据传输的可靠性,确保数据无错误地传输到目标地址。 2. 丢包补偿:可靠的链路层能够检测丢包情况,并进行重传操作,保证数据不会因为丢包而丢失。 3. 自动重传:可靠的链路层能够自动检测和重传丢失的数据,减少了人工处理的工作量。 缺点: 1. 延时增加:可靠的链路层需要进行确认、重传等操作,会增加传输的延时时间。 2. 占用带宽:可靠的链路层需要进行数据加上校验码等额外操作,会占用一定的带宽资源。 3. 复杂性增加:可靠的链路层需要引入复杂的协议和机制,增加了实现的复杂性和开销。 总的来说,数据链路层以可靠的方式传输数据能够保证数据的准确性和完整性,但也会增加延时、占用带宽和复杂性等问题。在实际应用中,需要根据具体需求权衡各种因素,选择适合的链路层实现方式。 ### 回答3: 数据链路层是OSI模型中的第二层,负责将网络层提供的数据分割成并进行传输。它的主要功能包括如下几点: 1. 封装:数据链路层将来自上层的数据进行封装,即将数据添加头部和尾部,形成数据,以便于传输和识别。 2. 传输控制:负责控制数据的传输顺序,确保数据的有序传输。 3. 同步:通过在数据中添加控制字段,实现发送和接收端的同步,确保发送和接收端能够正确识别的边界。 4. 错误检测和纠正:数据链路层可以通过添加检验和字段来检测数据传输过程中的错误,并进行纠正或丢弃错误的。 5. 流量控制:通过使用ACK和NACK等机制,控制发送端的数据流量,确保接收端能够及时处理数据。 6. 访问控制:数据链路层负责控制多个主机在共享链路上的访问,避免数据冲突和丢失。 将数据链路层设计为可靠的链路层有以下优点和缺点: 优点: 1. 可靠性:通过错误检测、纠正和确认机制,可靠链路层可以提供更高的数据传输可靠性,减少数据丢失和错误。 2. 有序性:可靠链路层的传输控制机制可以确保数据按照正确的顺序进行传输,保证数据的有序性。 缺点: 1. 复杂性:可靠链路层的实现相对复杂,涉及到错误检测、确认、重传等机制,增加了开发和维护的难度。 2. 延迟:由于可靠链路层需要确认机制,并在发生错误时进行重传,可能会增加传输延迟,影响实时性和响应性。 3. 开销:可靠链路层需要为每个数据添加控制信息和确认信息,增加了传输开销,占用了带宽资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值