数据链路层: 可靠性传输 六个协议

可靠性传输
1. 差错控制

发送方将数据帧发送, 但是当发送方发送的是一个 1的时候此时接受方却接受的是一个 0.

(1)校验

接收方如果帧校验接受到的帧没有问题, 则对发送方发送一个肯定性的确认, 当对这个数据帧进行校验发现这个帧有问题的时候, 此时接受方一种是将这个数据帧扔掉, 另一种就是告诉发送方接收的数据帧有问题, 此时向发送方发送一个否定性确认消息.

(2)差错检测和校正

检错就是如果发现数据帧传输的有问题, 则将接受的数据帧扔掉, 校正就是如果接收方发现接收到的数据帧有问题, 就将这个数据帧进行较正最常用的校验码是CRC校验码

(2)重发

在发送方定一个定时器, 当发送端在发送数据的时候定义个时间, 当发送端发送数据后如果在定时器时间以内发视频内发送端接收到了一个确认回复, 则发送端认为接收端接受到数据, 如果发送端在定时器以内没有接收到任何接受方的确认消息, 此时发送端就认为接收端没有接受到数据.

(3)帧的编号

一个帧中包含了数据真正的数据, 帧的校验码, 帧的序号, 确认号, 校验信息, 帧头, 帧尾. 接收方在接收到帧的时候向发送方发送一个确认消息, 而这个消息可能也会在中途丢失, 此时当定时器到达时间的时候, 发送方就会再次发送一个帧, 此时为了防止帧的重复接受, 数据帧中应该包含一个编号来标示数据帧的序号. 在接受的时候, 接收方也必须发送给发送方自己接受到了那个帧, 因此数据帧中也应该包含一个确认号, 来识别接受方接受的是那个数据帧.

2. 流量控制

发送方发送数据的速度太快, 而接收方接受数据的速度太慢, 此时发送方就需要降低自己的发送速度.当发送方发送数据速度非常快, 而接受方接收数据的速度又特别的满, 此时在接收方设置一个缓冲区, 当缓冲区满达到一定限度的时候, 此时的接受方就给发送方发送一个信息, 告诉发送方让其暂停发送等候通知.

基本数据链路协议

wait_for_evet(&event)
其中参数 event 就是需要等待的事件
每一层都是一个对应的进程, 它们都是处于一个等待的状态, 对于发送方来说, 网络层有数据要交给数据链路层, 数据链路层对应的进程就要等待网络层将准备好的数据交给自己, 然后数据链路层将数据进行封装交给物理层, 物理层将数据发送出去, 对于接收方, 数据链路层时刻准备着物理层将数据交给自己, 然后数据链路层将数据进行解包再将数据交给网络层.

1. 无限制的单工协议
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值