[笔记]计算机网络_数据链路层_数据链路层概述

大的要来力(悲)

数据链路层是历年考试重点,要求在了解数据链路层基本概念的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议、PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最小帧长的概念、二进制指数退避算法 等等各种贵物,此外中继器、网卡、集线器、网桥和局域网交换机的原理及区别也要重点掌握。

——P62

概述

数据链路层的功能

数据链路层是在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

1.为网络层提供服务

对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层,数据链路层通常可以为网络层提供如下服务:

  1. 确认的连接服务:适用于实时通信或误码率较低的通信信道,如以太网
  2. 有确认的连接服务:适用于误码率较高的通信信道,如无线通信
  3. 有确认的面向连接服务:适用于通信要求(可靠性,实时性)较高的场合
2.链路管理

数据链路层连接的建立、维持与释放的过程称为链路管理,它主要用于面向连接的服务。

3.帧定界、帧同步与透明传输

将一段数据的前后分别添加首部和尾部就构成了帧。首部和尾部包含许多控制信息,它们一个重要的作用是确定帧的界线,即帧定界。

而帧同步指的是接收方应能从接收到的二进制比特流中区分出帧的起始和终止。

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

4.流量控制

流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。

5.差错控制

使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制,通常这些错误可分为位错和帧错。

数据链路层本章的重点

  • 对于使用点对点信道传输的数据链路层,研究的三个重要问题是:封装成帧->差错检测->可靠传输。(这一块看的是https://b23.tv/9WbtgxP)
  • 对于使用广播信道的数据链路层(共享式局域网),又涉及了其他内容,如以太网的媒体接入控制协议CSMA/CD,也就是载波监听多点接入碰撞检测,用来解决信道中的信号碰撞的问题(协调各主机争用总线的问题)。

在这种共享信道的局域网,一个主机发送的帧会到达所有主机,那么其他主机是如何知道收到的帧是不是发送给自己的?这就又涉及到了将帧的目的地址加到帧中一同运输,例如以太网版本2的MAC帧格式。

  • 而现在更加常见的,使用点对点链路和链路层交换机的交换式局域网,随着交换技术的成熟在有线局域网领域已经差不多完全取代了共享信道式的局域网,那么网络中的交换机又是如何转发帧的?这又涉及到了网桥和交换机的工作原理
  • 另外,由于无线局域网的广播属性,无线局域网使用的仍然是共享信道,又涉及到了802.11无线局域网使用的媒体接入控制协议CSMA/CA

一、封装成帧

就是在一段数据的前后分别添加上首部和尾部。首部和尾部的一个重要作用就是前面所说的帧定界。

每一种链路层都规定了所能传送的帧的数据部分的长度上限——最大传输单元MTU(Maximum Transfer Unit)。

通常用以下四种方法实现组帧。

1.字符计数法

帧头部使用一个计数字段来标明帧内字符数,从而确定帧结束的位置。

这种方式最大的问题是一旦计数字段出错,即失去了帧边界划分的依据(后边全都乱套了),收发双方将失去同步,造成灾难性后果。

2.字符填充的首尾定界符法

当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。SOH放在一帧的最前边,EOT放在表示帧的结束放在最后边。

SOH和EOT都是控制字符的名称,十六进制编码分别为01(二进制为0000 0001)和04(二进制为0000 0100)

万一帧里边也出现了SOH或EOT字符,发送方在每个EOT或SOH字符前差入一个ESC转义字符。

3.零比特填充的首尾标记法

使用一个特定的比特模式,即0111 1110来标志一帧的开始和结束,万一信息流里面也出现了01111110这种比特流,发送方的数据链路层在信息位中遇到5个连续的1时,自动在后边插入一个0,而接收方做该操作的逆操作。

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

4.违规编码法

例如,曼彻斯特编码将比特1看做高-低电平,0看做低-高电平,那么高-高和低-低电平对在数据比特中是违规的(即没有采用),使用这些违规编码序列来界定帧的起始和终止,局域网IEEE 802标准就采用了这种方法。

目前较常用的组帧方法是零比特填充法和违规编码法。

二、差错控制

两种检错编码:奇偶校验码、循环冗余码,和一种纠错编码:汉明码。

1.奇偶校验码

它由n- 1位信息元和一位校验元组成。如果是奇校验码,那么再附加一个校验元后,码长为n的码字中1的个数为奇数,如果是偶校验码,那么再附加一个校验元后,码长为n的码字中1的个数为偶数。

它只能检测奇数位出错的情况,但并不知道哪些位出错了,也不能发现偶数位的出错情况。

2.循环冗余码CRC

又称多项式码。

需要发送一个m bit的帧或报文,发送器生成一个r bit的序列,称为帧检验序列(FCS),这样所形成的帧将由m+r bit组成。

发送方和接收方事先商定一个多项式G(x)(最高位和最低位必须为1),使这个带检验码的帧刚好能被预先确定的多项式G(x)整除,接收方再去用相同的多项式去除收到的帧,如果无余数,那么认为无差错。

也就是说关于循环冗余码的计算主要应该是:在已有要发送的数据、已经约定好G(x)的情况下,我们该怎样据此生成一个帧检验序列才能满足使所形成的帧在正确传输的情况下除以G(x)余数为0?

假设一个帧有m位,其对应的多项式为M(x),则计算冗余码的步骤如下:

  1. 加0.假设G(x)的阶为r,在帧的低位端加上r个0.
  2. 模2除。利用模2除法,用G(x)对应的数据串去除步骤1中计算出的数据串,得到的余数即为冗余码。(共r位,前面的0不可省略)

通过循环冗余码的检错技术,数据链路层做到了对帧的无差错接收。也就是说,凡是接收端数据链路层接受的帧,我们都认为这些帧在传输过程中没有产生差错,而接收端丢弃的帧虽然也收到了,但最终因为有差错而被丢弃,即未被接受。

(CRC循环冗余码是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到帧出错直接丢,是为了方便协议的实现。)

3.汉明码(海明码)

  1. 确定汉明码的位数
  2. 确定校验位的分布
  3. 分组以形成校验关系
  4. 校验取值
  5. 汉明码的校验原理

以数据码1010为例展示汉明码的编码原理和过程吧:

编码的汉明距离(海明距离)

在一个码组集合中,任意两个码字之间对应位上码元取值不同的位的数目定义为这两个码字之间的汉明距离。

在一个码组集合中,任意两个编码之间汉明距离的最小值称为这个码组的最小汉明距离。最小汉明距离越大,码组越具有抗干扰能力。(这玩意计网真的会考吗?)

汉明距的意思说白了就是相同长度的两个字符串,对应的位置的不同字符的个数。举例:

  • 1001001
  • 1011011

上述两个字符串长度相同,但是第3位,第6位不相同,那么它的汉明距就是2。

汉明码纠正d位,需要码距为2d+1的编码方案,检错d位,则只需要码距为d+1

三、流量控制与可靠传输机制

流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种:停止-等待协议和滑动窗口协议。

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

数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。

自动重传请求(ARQ)通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。

传统自动重传请求分为三种,即停止-等待ARQ、后退N帧ARQ 和 选择性重传ARQ,后两种协议是滑动窗口技术请求重发技术的结合,由于窗口尺寸开到足够大时帧在线路上可以连续地流动,因此又称其为连续ARQ协议

注意:在数据链路层中流量控制机制和可靠传输机制是交织在一起的。

1.单帧滑动窗口与停止-等待协议

停止-等待协议,相当于发送窗口和接送窗口大小均为1的滑动窗口协议。

停止-等待协议中可能出现的两种差错:

  1. 到达目的站的帧可能已遭破坏。目的站在检错之后直接把这个帧简单丢弃了,为了应对这种情况:源站装备了计时器,发送帧后等待确认,计时器到时后再重新发一个,直到收到确认。
  2. 到达目的站的帧没被破坏,但是目的站返回给发送站的确认帧被破坏了!这时候发送站会重传这个帧,接收方收到同样的数据帧时会丢弃该帧并重传一个确认帧。

对于停止等待协议,由于每发送一个数据帧就停止并等待,因此用1bit来编号就已足够。

2.多帧滑动窗口与后退N帧协议(GBN)

接收方只允许按顺序接收帧

(当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧)

(发送方连续发送了10个帧,但是却发现第3个帧超时了仍未返回确认信息(被判定出错),则不得不重传第三个帧以及随后的7个帧。)

GBN协议还规定,接收端不一定每收到一个正确的数据帧,就必须立即发回一个确认帧,而可以在连续收到好几个正确的数据帧后才对最后一个数据帧发确认信息。

后退 N帧协议的接收窗口为1,可以保证按序接收数据帧。

❗️❗️❗️若采用n bit对帧编号,则其发送窗口的尺寸W应满足1<W ≤ 2n-1

若发送窗口大于2n-1这个数,则会造成接收方无法分辨新帧和旧帧。

3.多帧滑动窗口与选择重传协议(SR)

选择重传协议的接收窗口大于1。

接收窗口和发送窗口的大小通常是相同的,选择重传协议是对单帧进行确认,所以发送窗口大于接收窗口会导致溢出,发送窗口小于接收窗口没有意义,且最大值都是符号范围的一半。

❗️❗️❗️也就是说,假如说有n bit对帧编号,则需要满足WTmax=WRmax= 2n-1

信道的效率,也称信道利用率,是指发送方在一个发送周期的时间内,有效发送数据所需要的时间占据整个发送周期的比率。

信道吞吐率=信道利用率x发送方的发送速率

四、介质访问控制

介质访问控制的内容是:采取一定的措施,使得两对结点之间的通信不会发生互相干扰的情况。

常见的介质访问控制方法有:

  1. 信道划分介质访问控制
  2. 随机访问介质访问控制
  3. 轮询访问介质访问控制

其中前者是静态划分信道的方法,后两者是动态划分信道的方法。

1.信道划分介质访问控制

  1. 频分多路复用(FDM)
  2. 时分多路复用(TDM)
  3. 波分多路复用(WDM)
  4. 码分多路复用(CDM)

频分复用就好比公共道路被划分为两个车道,分别提供给a到c的车和b到c的车行走,两类车可以同时行走,但只分到了公共车道的一半,因此频分复用(以及波分复用)都是共享时间,而不共享空间。

时分复用就好比一条道路,先让A到C的车走一趟再让B到C的车走一趟,公共车道本身并没有划分,因此相当于两车共享了空间,而不共享时间

在码分复用情况下,黄豆与绿豆放在同一辆车上,运输到达c后,由c站负责把车上的黄豆与绿豆分开,因此黄豆和绿豆的运输在码分复用的情况下,既共享了空间,也共享时间

码分多路复用更常用的名词是码分多址(CDMA),这个坑爹的简称跟后面的CSMA协议经常掺和到一块放到选择题里下毒,考个试还得考眼神好不好。

TDM可用于数字传输而FDM不行。TDM与FDM相比,抗干扰能力强,可以逐级再生整形,避免干扰的积累,而且数字信号比较容易实现自动转换。所以FDM适合传输模拟信号,TDM适合传输数字信号。

2.随机访问介质访问控制

核心思想:胜利者通过争用获得信道,从而获得信息的发送权,因此随机访问介质访问控制协议又称争用性协议。

ALOHA协议
(1)纯ALOHA协议

基本思想是当网络中任何一个站点需要发送数据时,可以不进行任何检测,就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突,发送站点需要等待一段时间后再发送数据,直至发送成功。

假设网络负载为G(T时间内所有站点发送成功的和未成功而重传的帧数),当G=0.5时,纯ALOHA网络的吞吐量S(T时间内成功发送的平均帧数)为0.184。这是纯ALOHA协议可能达到的极大值。

(2)时隙ALOHA协议

时隙ALOHA协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙,规定只能在每个时隙开始时才能发送一个帧,从而避免了用户发送数据的随意性,减少了数据产生冲突的可能,提高了信道的利用率。

当G=1时,吞吐量极大值S=0.368。比纯ALOHA网络吞吐量大了一倍。

其他的都没啥区别了,纯ALOHA协议和时隙ALOHA协议的每个站点都是随心所欲发送数据的,即使其他站点正在发送也照发不误,发生碰撞的概率很大。注意与接下来的CSMA协议的区别。

CSMA协议(载波监听多路访问协议)

每个站点在发送前都先监听一下共用信道,发现信道空闲后再发送,则就会大大降低冲突的可能,从而提高信道的利用率。

根据监听方式和监听到信道忙后的处理方式的不同,CSMA协议又分成三种:

  • (1)1-坚持CSMA
  • (2)非坚持CSMA
  • (3)p-坚持CSMA
三种不同类型的CSMA协议的比较
信道状态1-坚持CSMA非坚持CSMAp-坚持CSMA
空闲立即发送数据立即发送数据以概率p发送数据,以概率1-p推迟到下一个时隙
继续坚持监听放弃监听,等待一个随机的时间后再监听持续监听,直至信道空闲

注意:关于p-坚持CSMA,如果信道忙,就持续监听(p-坚持CSMA适用于时隙信道,此处持续监听,就是推迟到下一个时隙再监听),直到信道空闲。如果信道空闲,再以概率p发送数据,以概率1-p推迟到下一个时隙。

  • p-坚持CSMA协议以概率p发送数据的目的是:降低1-坚持CSMA协议中多个结点检测到信道空闲后,同时发送数据的冲突概率。
  • p-坚持CSMA协议坚持监听的目的是:试图克服非坚持CSMA协议中由于随机等待而造成的延迟时间较长的缺点。

因此p-坚持CSMA是前两者的折中方案。

CSMA/CD协议(载波监听多路访问/碰撞检测协议)

工作流程可简单概括为:先听后发,边听边发,冲突停发,随机重发

先听后发:发送数据前先监听信道,只有信道空闲才能发送。

边听边发、冲突停发、随机重发碰撞检测就是边发送边监听,如果监听到了碰撞,则立即停止数据发送,等待一段随机时间后重新开始尝试发送数据。

(1)CSMA/CD是如何检测冲突的?

以太网端到端往返时间2τ(τ指端到端传播时延,2τ也就是传播时延的两倍,能在两头跑一个来回了)称为争用期(又称冲突窗口或碰撞窗口),只有经过争用期这段时间还未检测到碰撞时,才能确定这次发送不会发生碰撞。

以太网规定了一个最短帧长(征用期内可发送的数据长度),在争用期内如果检测到碰撞,站点就会停止发送,此时已发送出去的数据一定小于最短帧长,因此凡长度小于这个最短帧长的帧都是由于冲突而异常终止的无效帧,

最短帧的计算公式为:最小帧长=总线传播时延×数据传播速率×2。

(2)CSMA/CD如何从冲突中恢复?

截断二进制指数退避算法

  1. 确定基本退避时间,一般取两倍总线端到端传播时延,也就是争用期。
  2. 定义参数k,它等于重传次数,但k不超过10,即k=min{重传次数,10},当重传次数大于10时,k就不再增大而一直等于10。
  3. 从离散的整数集合[1,2,3...,2k-1]中随机取出一个数r,重传所需退避时间就是二倍的基本退避时间,即2τr
  4. 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

截断二进制指数退避算法的优点:可使重传需要推迟的平均时间随重传次数的增大而增大(这也称动态退避),因而能降低发生碰撞的概率,有利于整个系统的稳定。

CSMA/CA协议

应用于无线局域网,把碰撞检测改为碰撞避免(CA)

由于无线信道的通信质量远不如有线信道,802.11采用链路层确认/重传方案(ARQ),即站点每通过无线局域网发送完一帧,就要在收到对方的确认帧后才能继续发送下一帧

802.11规定,所有的站完成发送后,必须再等待一段很短的时间(继续监听),才能发送下一帧。这段时间称为帧间间隔(IFS),帧间间隔的长短取决于该站要发送的帧的类型,802.11使用了三种IFS:

  • SIFS(短IFS)最短的IFS
  • PIFS(点协调IFS)中等长度的IFS
  • DIFS(分布式协调IFS)最长的IFS
CSMA/CD与CSMA/CA主要区别
  1. CSMA/CD可以检测冲突,但无法避免。
  2. 传输介质不同。CSMA/CD用于总线型以太网,CSMA/CA用于无线局域网802.11等。
  3. 检测方式不同。CSMA/CD通过电缆中的电压变化来检测,而CSMA/CA采用能量检测,载波检测和能量载波混合检测三种检测信道空闲的方式。

CSMA/CA协议的基本思想是在发送数据时先广播告知其他节点,让其他节点在某段时间内不要发送数据,以免出现碰撞。CSMA/CD协议的基本思想是发送前监听,边发送边监听,一旦出现碰撞,马上停止发送。

3.轮询访问:令牌传递协议

轮询介质访问控制既不共享时间,也不共享空间。它实际上是在随机介质访问控制的基础上,限定了有权利发送数据的节点,只能有一个。

轮询介质访问控制非常适合负载很高的广播信道。

网络物理拓扑不一定是一个环,但令牌在设备间的传递通路逻辑上必须是一个环。

(回顾错题的时候发现不少看起来一头雾水的题还是课本上的图(比如2020年考IFS的那个题),以后再整理笔记干脆把图也拍照贴上去得了--2023.7.18)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值