计算机网络理论知识:数据链路层

目录

 

一、概述

1、作用

2、功能

3、常用的校验方式

1、奇偶校验

2、校验和(checksum)

3、循环冗余校验码(cyclic redundancy check, CRC)

二、可靠的数据传输

1、自动重发请求(automatic repeat request,ARQ)

2、停等协议(stop-and-wait)

3、滑动窗口协议

4、回退N协议

5、选择性重传

6、提高滑动窗口协议的效率

三、PPP协议


一、概述

1、作用

物理层的作用是传输线上的比特流;

数据链路层的作用则是:将整个帧从一个网络元素移到到邻近的网络元素,也就是把数据包从一个节点通过链路(直连网络或物理网络)传给相邻的另一个节点。(主机和路由器都可以称为节点,相邻节点之间的通道是链路)

网络层必须依靠数据链路层的服务,在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点,在下一个节点处链路层将数据报上传给网络层。

2、功能

  • 形成帧(framing):能够区分不同的数据包;
  • 错误检测:需要校验码,查看比特错误,常用循环冗余码CRC;
  • 错误控制:处理丢包、重复、错序等情况;
  • 介质访问控制(medium access control):处理多路访问和碰撞的情况

3、常用的校验方式

1、奇偶校验

奇校验:每一行/列上共有奇数个1;偶校验:每一行/列上共有偶数个1;

通过对行和列加同一种校验来检测传输后的数据变化(二维奇偶校验码可以检出所有两位错误,但无法纠正);

2、校验和(checksum)

将数据报的内容按字相加得到一个字大小的校验和。如果相加有进位则要忽略进位并且在0号位加1。所有字相加完成后取反码得到校验和。

由于需要使用加法器实现算法,校验和一般不用于链路层,而是用于更高层。

3、循环冗余校验码(cyclic redundancy check, CRC)

CRC的位数比Generator(除数)的位数少1,在计算时需要先将被除数补上CRC的位数个0

CRC的计算采用的是模2除法,可以理解为异或操作。

链路层常用CRC校验,因为这种校验方式容易使用硬件实现,且检错率高。

二、可靠的数据传输

1、自动重发请求(automatic repeat request,ARQ)

每发送一帧都启动一个超时定时器,如果该帧的确认帧在其超时时间内到达,就删除该定时器,否则重传该帧并重启其定时器。

确认帧(ACK)是一个控制帧,接收方把它发给发送方,表示已经收到了它的数据帧。

ARQ协议的超时时间不能太长,否则如果经常出错,则每次通过超时重传来纠正数据需要的时间也会很长,大大降低了线路的吞吐量。

下面要讲的停等协议和滑动窗口协议都属于ARQ协议。

2、停等协议(stop-and-wait)

只有接收到前一个数据帧的确认,才能发送下一个数据帧。

正常情况下停等协议不需要序号,但为了避免出错,至少需要两个序号

出错的情况有三种:

  • ①数据帧丢失;
  • ②确认帧丢失;
  • ③确认帧在超时之后返回

如果没有序号,则②、③错误会导致重复接收同一个信息;

使用序号后,若接收方收到两个相同序号的数据帧则说明重复接收数据,这时接收方会丢弃这个重复帧,同时向发送方发送一个确认帧。

3、滑动窗口协议

不需要等待已发送的数据帧的确认帧回来就可以连续发送多个帧,其个数由发送窗口来控制。

  • 发送窗口:连续发送数据帧的可用序号范围,主要用于流控制;
  • 发送窗口大小:表示发送缓冲区的发小;
  • 如果接收方发送的确认帧的确认号为N,则表示序号为N以及之前的数据帧都已经全部收到并已交给上层协议;
  • 通过延迟确认,可以少发送确认帧,如果前面的确认帧丢失了,后面到达的确认帧也可以对前面的已经收到的帧进行确认,提高了可靠性。

同一个窗口的最后一个帧发出去后,该窗口发出去的第一个帧的确认帧还没返回。等其返回后,窗口滑动,发送缓冲区增大,可以继续发送,所以我们需要计算的是从第一个帧发出到其确认帧到达发送方这段时间内的吞吐量,因为其到达后又可以开始传输新的窗口的数据了。

4、回退N协议

回退N协议是一种滑动窗口协议,出现超时的时候将重传所有已经发送且未收到确认的帧。

  • 如果传送序号为1-4的数据帧时,其中序号1、2和4传输成功,而3丢失,则4被接收后,接收方仍然返回给发送方一个ACK=2的确认帧,这就说明序号3的传输出现了问题,所以发送方会向接收方重传序号为3及其之后已经传送过的数据帧,所以会出现重复传送。
  • 回退N协议还可能收到落在发送窗口之外的确认帧,因为如果确认帧迟到导致超时重传,这就可能出现发送方收到同一个帧的两个确认帧,其中第二个到达的确认帧可能会落在发送窗口之外。

5、选择性重传

选择性重传协议通过发送NAK帧,要求发送方单独重传丢失的帧。

否定确认帧(NAK):用于表示这一帧之前的数据帧全部收到,并已经交给上层协议,要求发送方重传这一数据帧。每个帧只发送一次NAK。

  • 接收窗口:用于确定应该保存哪些帧,用序号范围表示;如当前接收窗口为[3,4,5,6],则接收方仅会接收3,4,5,6号数据帧并保存,其他序号的数据帧不会被接收;
  • 需要的最少序号个数=发送窗口大小SWS+接收窗口大小RWS。因为如果接收方收到SWS个数据帧,但发回的确认帧全部丢失,则发送方会重传这SWS个数据帧,而这时接收方的窗口已经移动,如果最少序号个数<SWS+RWS则移动后的接收方窗口会包含即将重传的数据帧的序号,导致重复接收数据帧的错误。
  • 选择性重传协议可能会收到落在接收窗口之外的数据帧,当确认帧丢失(或者超时后到达)时,接收窗口已经移动,而发送方误认为数据帧没有发送成功,重新发送数据帧,这时候该数据帧的序号已经在接收窗口之外了。
  • 接收窗口大小没有必要一定要大于发送窗口大小,因为发送方发送的未确认帧最多只有SWS个。
  • 选择性重传协议如果丢失了NAK,也非致命错误,因为还有超时重传机制来确保数据传输的可靠性。

如果回退N协议部分举的例题采用的是选择性重传,且只有第二帧丢失,则接收方依次收到的序号是:3 5 6 7 4 0 1 2 3 4

如果一个数据帧丢失,则接收方发送一个NAK,发送方收到对应的NAK(至此需要至少一个RTT),然后重新发送该帧,再收到接收方的确认帧(至此需要至少2个RTT),所以超时时间要超过2个RTT才不会重复传送。

6、提高滑动窗口协议的效率

  • 选择性确认:接收方把已收到的帧的序号告诉发送方;
  • 捎带确认:通信双方以全双工方式工作,接收方在发送数据给对方时顺便发送确认号;
  • 延迟确认:接收方收到一个帧后等待一段时间再发送,发送的帧可以同时确认已收到的多个帧,减少了确认帧的发送;

三、PPP协议

  • PPP协议是点到点网络的数据链路层协议
  • 提供了连接认证、传输加密和压缩功能,可以为各种网络层协议提供服务;
  • 使用LCP(链路控制协议)确定是否需要身份认证以及确定链路层的参数;
  • 使用IPCP协议获取IP地址;

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值