数据链路层

链路
就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路
指把视线通信协议的硬件和软件加到链路上,就构成了数据链路。
:在数据链路层上传输的数据包,又称为帧,也就是说,数据链路层以帧为单位传输和处理数据。

数据链路上所面临的三大问题:
封装成帧,差错检测,可靠传输

封装成帧:数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
帧头和帧尾中包含有重要的控制信息,作用之一就是帧定界(为了使接收方从比特流中提取出一个个帧)
透明传输:数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
1.面向字节的物理链路使用字节填充的方法来实现透明传输
在这里插入图片描述

2.面向比特的物理链路使用比特填充的方法实现透明传输。
在这里插入图片描述
为了提高帧的传输效率,应当是帧的数据部分的长度尽可能大些,同时考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
在这里插入图片描述
差错检测
实际的通信链路都不是理想的,比特的传输过程中可能会产生差错:1可能会变成0,而0也可能变成1.这称为比特差错
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决重要问题之一。

检测方法
1.奇偶检测:在待发送的数据后面添加1位奇偶校验位,使整个数据中1的个数为奇数或者为偶数。
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)。
2.循环冗余校验CRC
其具有很好的检错能力, 虽然计算比较复杂,但非常易于用硬件来实现,因此被广泛应用于数据链路层。

差错检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。

可靠传输
数据链路层向上提供的服务类型:
1.不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做
2.可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。

实现机制:
停止等待协议SW
情况一:确认与否认
在这里插入图片描述
情况二:超时重传
接受方收不到数据分组,就不会发送ack或nak。如果不采取其他措施,发送方就会一直处于等待接收方ack或nak的状态。
为了解决该问题,可以在发送方发送完一个数据分组的时候,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接受方的任何ack或nak,则重传原来的数据分组,这就是超时重传。
在这里插入图片描述
情况三:确认丢失
为了让接收方能够判断所受到的数据分组是否是重复的,需要给数据分组编号。
在这里插入图片描述
情况四:确认迟到
为了让发送方能够判断所受到的ack分组是否是重复的,需要给ack分组编号。
在这里插入图片描述
该协议的缺点:当往返时延远大于数据帧发送时延的时候,信道利用率非常低,若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低。

回退N帧协议GBN
在这里插入图片描述
该协议在流水线传输的基础上利用发送窗口来显示发送方连续发送数据分组的数量,是一种很连续arq协议,在协议的工作过程中发送窗口和接受窗口不断向前滑动,因此这类协议又称为滑动窗口协议。

该协议的缺点:
1.当通信线路质量不好的时候,其信道利用率并不比sw协议高。
2.接受窗口尺寸只能为1,因此接收方只能按序接受正确达到的数据分组。一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接受而丢弃,这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。

选择重传协议SR
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值