超详细的计算机网络基础知识总结 第三章:数据链路层

Posted 温文艾尔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超详细的计算机网络基础知识总结 第三章:数据链路层相关的知识,希望对你有一定的参考价值。

本文基于王道计算机考研-计算机网络

其他文章:
超详细的计算机网络基础知识 第一章:概述
超详细的计算机网络基础知识 第二章:物理层

最近准备就业,整理计算机网络的相关笔记,后续会继续更新

相见即是有缘,如果对你有帮助,给博主一个免费的点赞以示鼓励把QAQ

1 数据链路层的基本概念

1.1 数据链路层的基本术语

结点

  • 主机、路由器

链路

  • 网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路

数据链路

  • 网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路

  • 链路层的协议数据单元,封装网络层数据报

所以数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报

数据链路层充当的是一个搬运工的角色

2 数据链路层功能概述

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

2.1 数据链路层的功能


功能一、为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务(有连接一定有确认)

功能二链路管理,即连接的建立维持释放(用于面向连接的服务)

功能三组帧

功能四流量控制

功能五差错控制(帧错/位错)

3 封装成帧与数据传输

封装成帧

  • 就是在一段数据的前后部分添加首部尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束

3.1 透明传输在组帧上的应用

3.1.1 字符计数法


就是在帧首部添加一个记录帧内字符数的字段

缺点:

一旦在某个帧内丢失数据或首部发生错误,后面的帧都会收到其影响,比如51234567,如果前面的5变成了4,后面的结束位就会发生错乱,第二个帧本来从5开始,结果变成了从4开始,帧发生错乱可能造成灾难性的后果

这种方法很容易出错,所以我们不常用

3.1.2 字符填充法


头尾分别添加开始和结束标志符

缺点:

在传送二进制代码的程序或图像时,有可能出现数据内某比特流数据与标志符重复的情况,使接收端错误的找到帧的边界,对此,我们可以使用字符填充方法实现透明传输

解决方案:进行字符填充


对数据比特流中和标志符重复的数据,在其前面添加ESC转义字符,告诉接收端略过这个字节,直到遇到真正的结束标志符

3.1.3 零比特填充法

3.1.4 违规编码法


因为曼彻斯特编码的1只可能出现高-低低-高的情况,不可能出现高高或低低,所以我们可以用高高或低低来定界帧的起始和终止

4 差错控制

4.1 差错从何而来

数据链路层的差错控制就是为了及早的发现问题,减少因为数据出错而引起的网络资源的浪费

4.2 检错编码

4.2.1 奇偶校验码

缺点:

  • 只能监测奇数个比特错误,成功率较低,只有50%,并且如果某一位的1变成0,而另外一位的0变成1,就检查不出来错误,例如11001010变成了11001001,虽然发生了变化,但是奇偶校验码依然检查不出错误


例题:

采用奇校验则要保证添加校验元之后1的个数为奇数,故答案选D

4.2.2 CRC循环冗余码


最终要发送的数据:要发送的数据+帧检验序列FCS

计算冗余码的过程:

  • 加0 假设生成多项式G(x)的阶为r,则加r个0
  • 模2除法,数据+0后除以多项式,余数为冗余码/FCS/CRC检验码的比特序列,除法的过程是异或:同0异1

计算过程

1.计算阶数

10011表示成多项式为

X^4 + X^1 + x^0

X^4 + X^1 + 1

阶数=总位数-1=4

2.按照阶数在数据后加0

原数据:

1101 0110 11

变为

1101 0110 11 0000

3.取模

得出FCS帧检验序列为1110,则最终要发送的数据为11010110111110

接收端的检错过程


在数据链路层仅仅使用循环冗余检验CRC差错检验技术,只能做到对帧的无差别接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。

“凡是接收端数据链路层接受的帧均无差错”

链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输

4.2.3海明码

海明码:发现双比特错,纠正单比特错

4.2.3.1海明码工作流程

1.确定检验码位数r


2.确定校验码和数据的位置

上一步我们求出校验码为=位数为4,原数据位数为6,所以总位数为10

我们把校验码放到数据位中2的几次方的位置


3.求出校验码的值

找出校验码中1所在的位置,例如P1(0001)中1在末尾,就找出原数据中1在末尾的所有数据
有D1,D2,D4,D5
P1与D1,D2,D4,D5进行异或,且结果为0,可以得出P1的值为0,
用此方法可以找出P2,P3,P4的值


4.检错并纠错

计算所有检验码与其他原数据位进行异或运算的值,得出错误位

4.3 总结:脑图时刻

5 链路层的流量控制与可靠传输

5.1 数据链路层的流量控制


流量控制就是让接收方接收速率发送方发送速率相匹配,以防止传输出错

数据链路层的流量控制是点对点的,而传输层的流量控制是端到端

数据链路层的流量控制手段:接收方收不下就不回复确认,不让发送方发送下一个
传输层流量控制手段:接收端给发送端一个窗口公告

5.2 流量控制的方法

名称发送窗口大小接受窗口大小
停止等待协议11
后退N帧协议>11
选择重传协议>1>1

可靠传输,滑动窗口和流量控制的区别

可靠传输:发送端发啥,接收端收啥

流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧

滑动窗口解决:

  • 流量控制(收不下就不给确认,想发也发不了)
  • 可靠传输(发送方自动重传)

5.2.1 停止等待协议


每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧

缺点:效率非常低,每发送一个帧,就要等待确认

停止等待协议有两种应用情况

  • 无差错情况
  • 有差错情况

5.2.1.1 停止等待协议的无差错情况

ack:确认帧

5.2.1.2 停止等待协议的有差错情况

1.数据帧丢失或检测到帧出错

解决方案:采用计时器,每次发送一个帧就启动一个计时器,超出时间就重新发送

RTT:往返传播时延

为什么超时计时器设置的重传时间应当比帧传输的平均RTT更长一些?

因为存在发送时延等其他情况,所以应当比帧传输的平均RTT更长一些

2.ACK丢失


3.ACK迟到

5.2.1.3 停止等待协议的优缺点


优点:简单
缺点:信道利用率太低,可以看到大部分时间都浪费在了路上,发送的时间很小



5.2.2 后退N帧协议(GBN)

停止等待协议的弊端:发送方发送速率过快时,会浪费大量的时间在等待接收方确认帧的回复,效率极低


累计确认:
收到确认帧之后,默认它和它之前的所有帧都已收到,没有收到默认帧,则默认它和它之前的所有帧都已丢失,重新发送



GBN实例

我们设置发送窗口尺寸为4,可以连续发送4个帧,发送方在发送2帧时丢失,并在超时计时器范围内(2-5)未接收到来自接收方的2帧确认帧,故发送方默认2帧之前的所有帧都被收到,而2帧之后的所有帧都没有被收到,对2帧之后的所有帧进行重传


接收方接收的3帧,4帧,5帧都返回ACK1的原因:

他只会返回所有连续的按序接收的帧序列当中最大序号的那个,因为2帧的丢失,所以最大序号变为1,告诉发送方,1号帧和1号帧之前的所有帧都已经接收成功

滑动窗口的长度问题:

滑动窗口的长度是不能无限大的

> 我们使用1个比特对帧编号,编号为为0,1,使用1个比特对帧编号为0,1,正常情况下W应满足1<=W<2^n-1,为1,如
> 果此时我们将滑动窗口尺寸设为4,将会依次发送0,1,2,3四个帧
> 
> 如果发送过程中0,1,2,3的确认帧全部丢失,超时之后发送方会将0,1,2,3再次重传,但是接收方将无法区分新帧和
> 旧帧

5.2.2.1 GBN协议性能分析

优点:和停止等待协议相比,因连续发送数据帧而提高了信道利用率
缺点:一旦有一个帧出错,他会把其他没有出错的帧一并丢弃,造成资源上的浪费

5.2.3 总结:脑图时刻

5.2.4 选择重传协议(SR)

有没有办法只重传错误的帧,而不把正确的帧一并丢弃

解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧

滑动窗口所存在的几种情况

SR与GBN相比,所有失序的帧会被放入到缓存中,一旦意外丢失的帧超时之后重传得到确认,会一次性确定所有放入缓存中的帧
假如5号帧丢失,接收方没有收到应答消息,则接下来的6,7都会被放入缓存中,直到5号帧的应答消息被收到,才会被真正填充到窗口中


图中发送2帧时2帧丢失,接收方将345帧放入缓冲区,当2帧超时重传后,接收方接收到2帧,并将345帧真正交付,窗口向后移动4格

滑动窗口长度
窗口的长度不可以无限

发送窗口大小应该等于接受窗口大小,这样利用率比较高

6 总结:脑图时刻

7 信道划分介质访问控制

7.1 传输数据时使用的两种链路

点对点链路

  • 两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网

    广播式链路

  • 所有主机共享通信介质

  • 典型拓扑结构:总线型,星型(逻辑总线型)

7.2介质访问控制

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

7.3信道划分介质访问控制

7.3.1频分多路复用(FDM)

频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源

7.3.2时分多路复用(TDM)

时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道

7.3.3统计时分复用(STDM)

用户的数据会被集中器接收,在集中器的输入缓存中,集中器扫描缓存时,遵循先来先走的原则,大大提高了利用率

STDM帧不是固定分配时隙,而是按需动态分配时隙

7.3.4波分多路复用(WDM)

波分多路复用只需要记住它就是光的频分多路复用即可

7.4 随机访问介质访问控制

所有用户都可随机发送信息,发送信息时占全部带宽,比静态化分信道的速度更快

7.4.1 ALOHA协议

7.4.1.1 纯ALOHA协议

特点是:想发就发,不监听信道,不按时间槽发送,随机重发

随机发送的代价就是会大概率发生冲突

如何检测冲突?
如果发生冲突,接收方就会检测出差错,然后不予确认,发送刚在一定时间内收不到就判断发生冲突

冲突如何解决?

超时后等一随机时间再重传

7.4.1.2 时隙ALOHA协议

将时间分成若干个相同的时间片,所有用户同步接入网络,如发生冲突就等到下一个时间片再发送

相比于纯ALOHA协议,固定了发送时间减小了随机性提高了速率

7.4.1.3 关于ALOHA要知道的事情

  • 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
  • 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发

7.4.2 CSMA协议

全称载波监听多路访问协议CSMA协议

名称思想优点缺点
1-坚持CSMA先监听信道,空闲则直接传输,不必等待,忙则一直监听,直到空闲马上传输,如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听只要空闲立即发送,避免媒体利用率的损失假如有两个或两个以上的站点有数据要发送,冲突就不可避免
非坚持CSMA那么它先监听信道,空闲则直接传输,忙则等待一个随机的时间之后再进行监听采用随机的重发延迟时间可以减少冲突发生的可能性可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低
p-坚持CSMA先监听信道,空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输,忙则等待一个随机的时间之后再进行监听既能减少冲突,又能减少媒体空闲时间发生冲突后还是要坚持把数据帧发送完,造成了浪费

7.4.2.1 1-坚持CSMA

坚持指的是对于监听信道忙之后的坚持

思想:

如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待,忙则一直监听,直到空闲马上传输,如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程

优点:只要空闲立即发送,避免媒体利用率的损失
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免

7.4.2.1 非坚持CSMA


非坚持指的是对于监听信道忙之后就不继续监听

思想:

如果一个主机要发送消息,那么它先监听信道,空闲则直接传输,忙则等待一个随机的时间之后再进行监听

优点:采用随机的重发延迟时间可以减少冲突发生的可能性
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低

7.4.2.2 p-坚持CSMA


p-坚持指的是对于监听信道空闲的处理

p-坚持CSMA思想:

如果一个主机要发送消息,那么他先监听信道,空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输,忙则等待一个随机的时间之后再进行监听

优点:既能减少冲突,又能减少媒体空闲时间
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费

7.4.3 CSMA/CD协议

载波监听多点接入/碰撞测试CSMA/CD

  • CS:每一个站在发送数据之前和发送数据时都要检测总线上是否有其他计算机在发送数据、
  • MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络
  • CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。半双工网络

传播时延对载波监听的影响


最小帧长问题

A站发了一个很短的帧,但发生了碰撞,不过帧在发送完毕后在检测到发生碰撞,没法停止发送,因为发完了,为了使碰撞的时候我们的帧还没有结束,我们需要定义一个最小帧长

所以帧的传输时延至少要少于两倍于信号在总线中的传播时延。

帧长(bit)/ 数据传输速率

最小帧长=总线传播时延x数据传输速率x2

总结:脑图时刻

7.4.4 CSMA/CA协议


载波监听多点接入/碰撞避免CSMA/CA

CD:只能监测碰撞,不能避免碰撞

CA:只能避免碰撞,不能监测碰撞

7.4.4.1 CSMA/CA协议工作原理

  • 发送数据之前,先检测信道是否空闲,空闲则发送RTS信号,信道忙则等待,

  • 接收端接收到RTS后,将响应CTS,其他站点没有收到接收点的CTS,将不会发送数据

  • 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)

  • 接收端收到数据帧后,采用CRC来检验数据是否正确,正确则响应ACK帧

  • 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一致重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)

7.4.5 CSMA/CD协议与CSMA/CA协议的区别

7.4.6 轮询访问介质访问控制

主要包括两大类:1.轮询协议 2.令牌传递协议

7.4.6.1 轮询协议


由主节点轮流“邀请”从属节点发送数据

轮询协议存在的问题:

  • 轮询开销
    • 每一次的询问都会产生一个数据帧,如果主节点需要询问的从属节点很多的话,多次轮询就会造成大的开销
  • 等待延迟
    • 相对于靠后一点的主机来说的,比如说第四台主机发送数据,但是前三台都不发送,主节点还是要从第一个开始问,直到问到第四个,所以第四台机器出现等待延迟
  • 单点故障
    • 主节点宕机

7.4.6.2 令牌传递协议

令牌传输协议中的令牌:一个特殊格式的MAC控制帧,不含任何信息,控制信道的使用,确保同一时刻只有一个节点独占信道

令牌传输协议工作流程


**假如从主机D开始发送数据

  • 修改令牌标志位,将令牌从闲的状态变成忙的状态
  • 在令牌的后面添加数据,完成数据的结合
  • 发送数据,其他主机发现不是自己的令牌便不会接受,直到目的地,目标节点会将令牌信息复制一份保存到本地,令牌最终会回到主机D
  • 主机检查令牌有没有出错,如果出错会重发,没有错会将令牌从忙的状态调回闲的状态
    每个节点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌**

令牌传递协议的问题与轮询协议的问题一致

8 局域网

8.1 局域网的概念

局域网使用广播信道

8.2 局域网的网络拓扑结构

8.3 局域网传输介质

  • 有线局域网
    • 常用介质:双绞线、同轴电缆、光纤
  • 无线局域网
    • 常用介质:电磁波

8.4 局域网介质访问控制方法

8.5 局域网的分类

8.6 IEEE802标准

8.6.1 MAC子层和LLC子层

9 以太网

9.1 以太网概述

9.2 以太网提供无连接、不可靠的服务

以太网只实现无差错接收,不实现可靠传输

9.3 以太网传输介质和拓扑结构的发展

9.4 适配器与MAC地址

9.5 以太网MAC帧


以太网MAC帧头部包括

  • 6字节的目的地址
  • 6字节的源地址
  • 2字节的类型

以太网MAC帧尾部包括

  • 4字节的帧检验序列(FCS)

以太网MAC帧的中间是IP数据报(46字节到1500字节之间)

前导码并不是MAC帧的一部分

为什么IP数据报最小是46字节?

因为最小传输字节数为64字节,而目的地址,源地址,类型,FCS加在一起占了18字节,64-18=46,故IP数据报最小为46字节

9.6 高速以太网

10 无线局域网

MAC帧头格式

10.1 无线局域网的分类

1 有固定基础设施无线局域网

2.无固定基础设施无线局域网的自组织网络

11 广域网

覆盖的范围从几十公里到几千公里,连接多个城市或国家

广域网的通信子网主要使用分组交换技术

11.1 PPP协议(Point-to-Point Protocol)

只支持全双工链路

11.1.1 PPP协议应满足的要求

11.1.2 PPP协议不需要满足的要求

11.1.3 PPP协议的三个组成部分

11.2 HDLC协议

HDLC协议和PP协议一样都采用全双工通信

11.2.1 HDLC的站

11.2.2 HDLC的帧格式

11.3 HDLC与PPP协议的对比

为什么HDLC协议可靠我们不使用呢?

因为HDLC太浪费,而我们对于网络速率要求比较高,而数据链路层本来就是不可靠的传输,差错控制由TCP完成

12 链路层设备

12.1 网桥

现在一般使用交换机而不是网桥

网桥不同于集线器,不会全部转发,而是根据mac地址进行过滤之后再进行转发

12.2 网桥分类

透明网桥

  • 通过自学习算法,每一个通过网桥的数据报都会被记录,记录下数据地址以及网桥接口,这样以后再有数据报,网桥就知道要往哪里转发了
  • 网桥每过几分钟就会更新一次,这样能很好的反映出最新的网络状态

源路由网桥

  • 在发送帧时,把最详细的最佳路由信息(路由最少/时间最短)放在帧的首部中
  • 方法:源站以广播形式向欲通信的目的站发送一个发现帧,目标地址收到帧后会将不同的路径都发送一个响应帧给网桥,交由网桥判断哪个方案最佳

13 交换机

随着时代发展,网桥的接口越来越多,网桥便变成了交换机

13.1 以太网交换机的两种交换方式

13.2 冲突域和广播域

14 第三章思维导图

上一篇相关文章

超详细的计算机网络基础知识总结 第一章-概述
超详细的计算机网络基础知识 第二章:物理层

相见即是有缘,如果对你有帮助,给博主一个免费的点赞以示鼓励把QAQ QAQ

以上是关于超详细的计算机网络基础知识总结 第三章:数据链路层的主要内容,如果未能解决你的问题,请参考以下文章

超详细的计算机网络基础知识总结 第四章:网络层

超详细的计算机网络基础知识总结 第六章:应用层

计算机网络学习笔记第三章(数据链路层)超详细整理

计算机网络知识汇总(超详细整理)

计算机网络知识汇总(超详细整理)

《计算机网络(第7版)谢希仁 著》第三章 数据链路层 要点及习题总结