首页 计算机网络 - 数据链路层1
文章
取消

计算机网络 - 数据链路层1

计算机网络 - 数据链路层1

数据链路层

功能概述

  1. 为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认!
  2. 链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
  3. 组帧
  4. 流量控制。
  5. 差错控制。(帧错、位错)

封装成帧

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。(首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。 帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

QQ截图20220623174712

流量控制

数据链路层的流量控制手段:接收方收不下就不回复确认

停止-等待协议

为了让接收方能够判断所受到的数据分组是否是重复的,需要给数据分组编号,由于停止-等待协议的停等特性,只需要1比特编号就可以了,即编号0或1

可以理解为停止-等待协议是特殊的滑动窗口。发送窗口大小 = 1,接收窗口大小 = 1

情况一:确认否认

v2-2abce5cb7d9582ea392d8e0b017d10d2_r

  1. 发送方给接收方发送数据分组(DATA),
  2. 接收方收到后对其进行差错检测,若没有误码,则接收该数据分组,并给发送方发送确认分组(ACK)
  3. 发送方收到对发送的数据分组(DATA)所对应的确认分组(ACK)后,才能发送下一个数据分组(DATA),假设这个DATA在传输过程中出现了误码
  4. 接收方收到后对其进行差错检测,发现了误码,则丢弃该数据分组,并给发送方发送否认分组(NAK)
  5. 发送方收到对发送的数据分组(DATA)所对应的否认分组(NAK)后,就知道了之前所发送的DATA出现了差错, 而被接收方拒绝,于是,立刻重传该DATA,因此,发送方每发送完一个DATA之后,并不能立刻将该DATA从缓存中删除,只有收到该DATA的ACK之后,才能将DATA从缓存中删除

由此可知,发送方每发送完一个数据分组DATA后,就要停止发送DATA,等待ACK到达之后才能发送下一个DATA

情况二:超时重传

v2-14723de917ff6259c0ec11b0b25732ec_r

情况三:ACK丢失

v2-402e945fb81511be47075c1778a23632_r

接收端丢弃DATA0的数据,重新发送对于DATA0的ACK确认。

情况四:ACK迟到

v2-7a2ce992688a55b1e448e0d3aa650b6a_r

接收端端丢弃重复的DATA0。重新发送ACK0。发送端忽略收到的ACK0

本文由作者按照 CC BY 4.0 进行授权