计算机网络差错检测在哪层,【计算机网络】数据链路层(二):差错检测和纠正...

帧同步虽然可以区分每个数据帧的起始和结束,但是还没有解决数据正确传输的两方面问题:一、如果有帧出现了错误?二、如果有帧丢失了?这都是数据链路层确保向网络层提供可靠数据传输服务解决的问题,也就是数据链路层的差错控制功能。要实现差错控制功能,就必须具备两种能力:一是具备发现差错的能力,二是具备纠正错误的能力。一、差错检测在数据链路层检测数据传输错误的方法一般是通过对差错编码进行校验来实现,常见的有奇偶...
摘要由CSDN通过智能技术生成

帧同步虽然可以区分每个数据帧的起始和结束,但是还没有解决数据正确传输的两方面问题:一、如果有帧出现了错误?二、如果有帧丢失了?这都是数据链路层确保向网络层提供可靠数据传输服务解决的问题,也就是数据链路层的差错控制功能。

要实现差错控制功能,就必须具备两种能力:一是具备发现差错的能力,二是具备纠正错误的能力。

一、差错检测

在数据链路层检测数据传输错误的方法一般是通过对差错编码进行校验来实现,常见的有奇偶校验码(PCC)和循环冗余校验(CRC)。PCC就不用多说了,在最后设置一个奇偶校验位。循环冗余校验是一种根据传输或保存的数据而产生固定位数校验码的方法,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者储存之前计算出来并且附加到数据后面,然后接收端进行检验确定数据是否发生变化。

二、差错纠正

1、反馈检测法,就是在接收端接收完一帧数据后,向发送端发送所接收到的完整数据帧,发送端在收到接收端发送的反馈信息后,通过对比保存在缓存中原来该帧的数据来判断接收端是否正确接收到了该数据帧,如果判断出了错,则发送端向接收端发送一个DEL字符及相应的帧信息,提示接收端删除对应的帧,然后重发该帧;否则表示接收端已正确接收了对应帧。但是如果传输过程中数据全部丢失的话,这种方法就无效了,因为接收端没有接收到这帧数据,自然也就不会向发送端发送反馈信息。为了解决这个问题,通常在数据发送时引入计时器来限定接收端发回反馈信息的时间间隔。当发送端发送一帧数据的同时启动计时器,若在限定时间间隔内没有收到接收端的反馈信息,即计时器超时,则可认为传输的对应帧出错,或丢失,继而发送端知道需要重发该帧,同时,为了避免同一帧数据可能被多次重复传送(计时器规定时间外到达),引发接收端多次收到同一帧并将其递交给网络层的危险,采用对发送的帧进行编号的方法,即同一个帧的编号是一样的,这样接收端便能从帧编号来区分是否是新来的帧。

2、空闲重发请求方案

可以看出,“反馈检测法”中一帧数据会在信道中至少往返传输两次,传输效率低,事实上一般并没有采用这种差错控制方法。而是采用一种称为“自动重发请求”的方法。其实现原理就是先让发送端将要发送的数据帧附加一定的校验码(PCC或CRC等)一起发送,接收端则根据检错码对数据帧进行错误检测,若发现错误,就返回请求重发的响应(不用返回全部的帧,一个信号即可),发送端收到请求重发的响应后,便重新发送该数据帧。

空闲重发请求方案又称停-等(stop andwait)法,该方案规定发送端每发送一帧后就要停下来,然后等待接收端发来的确认消息,仅当接收端确认ACK信息后才继续发送下一数据帧。如果收到的是否认(NACK)消息,表示接收端的数据有错,请求发送端重发,另外,计时器超时时,发送端也会重发对应的帧。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值