计算机网络重要知识点摘录(考研用)——第三章:数据链路层

计算机网络重要知识点摘录(考研用)——第三章:数据链路层

 本文参考于《2021年计算机网络考研复习指导》(王道考研),《计算机网络》

 3.1.3 帧定界、帧同步与透明传输

  两个工作站之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送。 将一段数据的前后分别添加首部和尾部,就构成了帧。首部和尾部中含有很多控制信息,它们的一个重要作用是确定帧的界限,即帧定界。而帧同步指的是接收方应能从接收到的二进制比特流中区分出帧的起始与终止。 如在HDLC通信规程中,用标识为F(01111110)来标识帧的开始和结束。通信过程中,检测到帧标识位F即认为是帧的开始,然后一旦检测到帧标识位F即表示帧的结束。HDLC标准帧格式如图:
在这里插入图片描述

  如果在数据中恰好出现与帧定界符相同的比特组合(会误以为“传输结束”而丢弃后面的数据),那么就要采取有效的措施解决这个问题,即透明传输。 透明传输就是不管所传数据是什么样的比特组合,都应当能在链路上传送。

3.2 组帧

 3.2.1 字符计数法

  字符计数法是指在帧头部使用一个计数字段来标明帧内字符数。 目的结点的数据链路层收到字节计数值时,就知道后面跟随的字节数,从而可以确定帧结束的位置(计数字段提供的字节数包含自身所占用的一个字节)
在这里插入图片描述
  这种方法最大的问题在于如果计数字段出错,即失去了帧边界划分的依据,那么接收方就无法判断所传输帧的结束位和下一帧的开始位,收发双方将失去同步, 从而造成灾难性后果

 3.2.2 字符填充的首尾定界符法

  字符填充法使用一些特定的字符来定界一帧的开始(DLE STX)与结束(DLE ETX)。 为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可以在特殊字符前面填充一个转义字符(DLE)来加以区分 (注意,转义字符是ASCII码中的控制字符,是一个字符,而非“D”“L”“E”三个字符的组合),以实现数据的透明传输。接收方收到转义字符后,就知道其后面紧跟的是数据信息,而不是控制信息。
在这里插入图片描述

  如上图所示的字符帧,帧的数据字段出现DLE字符,发送方在每个DLE字符前再插入一个DLE字符,接收方收到数据后会自己删除这个插入的DLE字符,结果仍得到原来的数据。这也正是字符填充法名称的由来。

 3.2.3 零比特填充的首尾标志法

在这里插入图片描述

  如上图所示,零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。它使用一个特定的比特模式,即01111110来标志一帧的开始和结束。 为了不使信息位中出现的比特流01111110被误判为帧的首尾标志,发送方的数据链路层在信息位中遇到5个连续的1时,将自动在其后插入一个0;而接收方做该过程的逆操作,即每收到5个连续的1时,自动删除后面紧跟的0,以恢复原信息。

  零比特填充法很容易由硬件来实现,性能优于字符填充法

 3.2.4 违规编码法

  在物理层进行比特编码时,通常采用违规编码法。例如,曼彻斯特编码方法将数据比特1编码成“高-低”电平对,将数据比特0编码为“低-高”电平对,而“高-高”电平对和“低-低”电平对在数据比特中是违规的(即没有采用)。可以借助这些违规编码序列来定界帧的起始和终止。 局域网IEEE 802标准就采用了这种方法。
  违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于采用冗余编码的特殊编码环境

  由于字节计数法中计数字段的脆弱性和字符填充法实现上的复杂性与不兼容性,目前较常使用的组帧方法是比特填充法和违规编码法。

3.3 差错控制

 3.3.1 检错编码
  1.奇偶检验码

  奇偶检验码是奇校验码和偶校验码的统称,是一种最基本的检错码。它由n-1位信息元和1位校验元组成,如果是奇校验码,那么在附加一个校验元后,码长为n的码字中1的个数为奇数;如果是偶校验码,那么在附加一个校验元后,码长为n的码字中1的个数为偶数。 它又分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶检验

  2.循环冗余码

  循环冗余码(Cyclic Redundancy Code,CRC)又称多项式码,任何一个由二进制位串组成的代码都可以与一个只含有0和1两个系数的多项式建立一 一对应关系。一个k位帧可以视为从Xk-1到X0的k次多项式的系数序列,这个多项式的阶数为k-1,高位是Xk-1项的系数,下一位是Xk-2的系数,依次类推。例如,1110011有7位,表示成多项式是X^6 + X ^5 + X ^ 4+X+1,而多项式 X ^5 + X ^ 4+X ^2+X对应的位串是110110
  给定一个mbit的帧或报文,发送器生成一个r bit的序列,称为帧检验序列FCS。这样所形成的帧将由m+r比特组成。发送方和接收方事先商定一个多项式G(x)(最高位和最低位必须为1),使这个带校验码的帧刚好能被预先确定的多项式G(x)整除。接收方用相同的多项式去除收到的帧,如果无余数,那么认为无差错。
  假设一个帧有m位,其对应的多项式为M(x),则计算冗余码的步骤如下:
  (1)加0。假设G(x)的阶为r,在帧的低位端加上r个0
  (2)模2除。利用模2除法,用G(x)对应的数据串去除(1)中计算出的数据串,得到的余数即为冗余码(共r位,前面的0不可省略)
  多项式以2为模运算。按照模2运算规则,加法不进位,减法不借位,它刚好是异或操作。 乘除法类似于二进制的运算,只是在做加减法时按模2规则进行。
  设G(x)=1101(即r=3),待传送数据M=101001(即m=6),经模2除法运算后的结果是:商Q=110101(商没有意义),余数R=001。所以发送出去的数据为101001 001(即2rM+FCS),共有m+r位:
在这里插入图片描述

 3.3.2 纠错编码

  以数据码1010为例:
  (1)确定海明码的位数
  设n为有效信息的位数,k为校验位的位数,则信息位n和校验位k应满足:
  n+k<=2^k-1(若要检测两位错,则需再增加1位校验位,即k+1位)
  海明码位数为n+k=7<=2^3-1成立,设信息位为D4D3D2D1(1010),检验位为P3P2P1,对应的海明码为H7H6H5H4H3H2H1

  (2)确定校验位的分布
  规定校验位Pi在海明位号为2i-1的位置上,其余各位为信息位,因此有:H1为P1,H2为P2,H4为P3。海明码各位的分布如下:
在这里插入图片描述
  (3)分组以形成校验关系
  每个数据位用多个检验位进行校验,但要满足条件:被校验数据位的海明位号等于校验该数据位的各校验位海明位号之和。 另外,校验位不需要再被校验。
在这里插入图片描述
在这里插入图片描述
  (4)校验位取值
  校验位Pi的值为第i组(由该校验位校验的数据位)所有位求异或。
在这里插入图片描述

  1010对应的海明码为1010 0 1 0

  (5)海明码的校验原理
  每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶检验检查,构成k个校验方程:
在这里插入图片描述
  若S3S2S1的值为000,则说明无错;否则说明出错,且这个数就是错误位的位号。 如S3S2S1=001,说明第1位出错,即H1出错,直接将该位取反就达到了纠错的目的

3.4 流量控制与可靠传输机制

 3.4.1 流量控制、可靠传输与滑动窗口机制
  1.停止-等待流量控制基本原理

  发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。 每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中, 因而传输效率很低。


  在停止-等待协议中,发送方每发送一帧,都需要在收到接收方的确认帧后,才能进行下一帧的发送,而发送方收到的确认帧也一定是自己刚刚发出去的数据帧的确认帧,因此确认帧(如用ACK0和ACK1)不需要加序号标记


  2.滑动窗口流量控制基本原理

  在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。 发送窗口用来对发送方进行流量控制,而发送窗口的大小WT代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。 同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。 在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
在这里插入图片描述
在这里插入图片描述

  发送端每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧(即窗口内的帧全部是已发送但未收到确认的帧)时,发送方就会停止发送,直到收到接收方发送的确认帧使窗口移动,窗口内有可以发送的帧后,才开始继续发送。

  接收端收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接收窗口之外,则一律丢弃。

  滑动窗口有以下重要特性:
  (1)只有接收窗口向前滑动(同时接收方发送了确认帧)时,发送窗口才有可能(只有发送方收到确认帧后才一定)向前滑动
  (2)从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别:
  停止-等待协议:发送窗口大小=1,接收窗口大小=1
  后退N帧协议:发送窗口大小>1,接收窗口大小=1
  选择重传协议:发送窗口大小>1,接收窗口大小>1
  (3)接收窗口的大小为1时,可保证帧的有序接收

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

happy19991001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值