计算机网络 | 数据链路层

计算机网络 | 数据链路层

数据链路层是OSI参考模型中的第二层,介乎于物理层网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输相邻节点的目标机网络层。


目录

1. 基本概念

2. 封装成帧与透明传输

2.1 透明传输的应用

2.1.1 字符计数法

2.1.2 字符填充法

2.1.3 零比特填充法

2.1.4 违规编码法

3. 差错控制

3.1 差错是什么,从哪来的

3.2 为什么要在数据链路层进行差错控制?

3.3 检错编码(奇偶校验码,循环冗余码CRC)

3.3.1 奇偶校验码

3.3.2 循环冗余码CRC

3.4 纠错编码(海明码)

第一步 确认校验码位数r

第二步 确定校验码和数据的位置

第三步 求出校验码的值

第四步 检测并纠错

4. 数据链路层的流量控制和可靠传输

4.1 流量控制与可靠传输

4.1.1 停止等待协议(Stop-and-Wait)

4.1.2 后退N帧协议(GBN)

4.1.3 选择重传协议(SR)

5. 介质访问控制技术

5.1 信道划分介质访问控制

5.1.1 频分多路复用FDM

5.1.2 时分多路复用TDM

5.1.3 统计时分复用STDM

5.1.4 码分多路复用CDM

5.2 随机访问介质访问控制

5.2.1 ALOHA协议

5.2.2 CSMA协议

5.2.3 CSMA/CD协议

5.2.4 CSMA/CA协议

5.2.5 CSMA/CD 与 CSMA/CA的区别

5.3 轮询访问介质访问控制

5.3.1 轮询协议

5.3.2 令牌传递协议

6.局域网

6.1 局域网的概念

6.1.1 局域网的网络拓扑结构

6.1.2 局域网的传播介质

6.1.3 局域网介质访问方法

6.2 局域网的分类

6.3 IEEE802标准

6.3.1 IEEE802描述的局域网参考模型

6.4以太网

6.4.1 以太网概念

6.4.2 以太网的发展

6.4.3 适配器和MAC地址

6.4.4 以太网MAC帧

6.4.5 10BASE-T以太网

6.4.6 高速以太网

6.5 无线局域网

6.5.1 两种无线局域网

7.广域网

7.1 广域网的概述

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

7.2.1 PPP协议需要满足的要求

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

7.2.3 PPP协议组成成分以及功能

7.2.4 PPP协议的帧格式

7.3 HDLC协议(High-Level Data Link Control)

7.3.1 HDLC协议概述

7.3.2 HDLC的三种站

7.3.3 HDLC的帧格式

7.4 PPP协议和HDLC协议对比

8. 链路层设备

8.1 集线器(Hub)

8.2 网桥(Bridge)

8.2.1 两种网桥

8.3 交换机

8.4 冲突域和广播域

9. 本章总结思维导图

本章常用中英文对照


1. 基本概念

2. 封装成帧与透明传输

封装成帧就是将网络层的数据报加头加尾,相当于将数据报打包,协议数据单元PDU
透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况

帧长,帧的数据部分>=最大传送单元MTU

2.1 透明传输的应用

2.1.1 字符计数法

就是在帧的首部做计数,看看数据是否错误
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧
比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误

2.1.2 字符填充法

针对字符传输

就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样
但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况

解决方法:添加转义字符ESC

2.1.3 零比特填充法

针对比特流传输

2.1.4 违规编码法

因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突

3. 差错控制

3.1 差错是什么,从哪来的

数据链路层的差错检测的是检测比特位的错误

物理层编码:针对单个比特,解决传输过程中比特同步,采用曼彻斯特编码(检测电平)

数据链路层编码:针对一组比特,通过冗余码技术实现一组二进制比特串在传输过程是否出现差错

冗余编码:最终发送数据=要发送的数据+帧检验序列FCS

3.2 为什么要在数据链路层进行差错控制?

因为错误可以尽早发现,不会让一个错误的数据包发送了很长时间到达最终目的地之后才被发现,从而导致网络资源的浪费

3.3 检错编码(奇偶校验码,循环冗余码CRC)

3.3.1 奇偶校验码

缺点:只能检测出1,3,5,7…等等奇位数错误,检测成功率位50%

3.3.2 循环冗余码CRC

就是用传输数据除以生成多项式得到冗余码

实际例子
注释:
1.阶数就是最高位是哪位,然后位数-1,如10011就是5-1=4,1011就是4-1=3
2.异或运算就是相同得0,不同得1,比如100和101做异或,结果就是001
3.出书和最后的余数添加到要发送的数据后面,称为帧检验序列FCS

接收方收到数据后进行检测

需要注意的地方

3.4 纠错编码(海明码)

分为四步

第一步 确认校验码位数r

第二步 确定校验码和数据的位置

注释:
1.为什么是10为数据位?因为4位校验码+6位信息位=10位
2.校验码放到2的几次方的位置,其他的地方按顺序放已知的信息位

第三步 求出校验码的值

注释
1.先是通过二进制位确定有几位。本题中因为最大位10的二进制是1010,所以是4为,将其标注
2.然后从p1开始看,看p1的二进制位的数值和所有信息位的对应位置的数值是否相同,然后找出来这些位
这里有点难理解,这里以p1为例辅助理解,这里找出来的就是P1,D1,D2,D4,D5

然后计算异或值,比如说这里D1=1,D2=0,D4=1,D5=0,就是p1要同时和0,10,1进行异或之后得到0,为了标识我加粗原始计算数据
举例:01异或得1,1和0异或得1,1和1异或得0,那么p1和0异或得0,p1就是0了
3.其他同理,按顺序计算出P2,P3,P4,然后填入表格

第四步 检测并纠错

就是和上面一样,将所有校验位进行运算,得出的结果的值就是错误的位

4. 数据链路层的流量控制和可靠传输

4.1 流量控制与可靠传输

流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费

  • 数据链路层的流量控制是点对点的,接收方收不下就不回复,滑动窗口固定
  • 传输层的流量控制是端到端的,接收端给发送端一个窗口

可靠传输指的是发来的都接收,如果帧掉失、帧重复、帧乱序,这是可靠传输需要解决的问题,由传输层(运输层)解决

4.1.1 停止等待协议(Stop-and-Wait)


停止等待协议的无差错情况
注释:因为一次就一个,所以用0和1标记ack就行

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



停止等待协议的特点
1.简单
2.信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费

4.1.2 后退N帧协议(GBN)

因为停止等待协议太浪费时间了,所以尝试采用GBN,发送连续多个数据帧,以增大信道利用率
注释:

发送窗口划分:发送了且确认的、发送了但等待确认的、还能发送的、还不能发送的
累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到,反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传


下图是一个实例
注释:此图发送2帧时丢失,所以接收方几首收到后面的帧也是直接丢弃并且发送最晚收到的有效帧1的ACK,直至2帧的超时重传机制被触发进行重传并得到ACK之后,接收方才会接受2帧以及后面的帧


发送窗口不能无限大,与使用的编号的比特数有关
很简单,就是1比特编号0和1,同理2比特编号0-3,如果用1比特编号,却要4个窗口长度,那么窗口内数据编号都编不过来,直接乱套了
GBN的优缺点也显而易见,优点是提高了信道利用率,缺点是因为重传机制的原因导致已经收到数据却需要强行丢弃而造成浪费

4.1.3 选择重传协议(SR)

为了解决GBN的缺点,我们打算尝试只重传错误的帧,这样的话就不用浪费资源吧已经收到的帧再重传一次了。
和GBN相比,两者都有窗口了,和GBN的区别其实就是做了一个数据缓存,已经收到的帧不用扔了,等待之前因意外丢失的帧收到的时候确认即可,但是只能缓存窗口尺寸内的包含的帧(PS,缓存咋可能无限大)
SR运行过程
注释:2帧丢失之后仍然在发送,但是2帧丢失之后只是缓存,并没有移动窗口,直至最后2帧收到后一次性确认2-5帧

同样的,因为编号的问题,发送窗口不能无限大
发送窗口最好和接受窗口大小相同,这样利用率比较高

GBN与SR的超时事件的区别:

  • GBN会重传全部已经发送但没有确认的帧
  • SR只会重传超时的那一个帧

5. 介质访问控制技术

传输数据用到的两种链路:

  • 点对点链路,两个相邻节点通过一个链路相连,没有第三者,应用:PPP协议,用于广域网
  • 广播式链路,所有主机共享通信介质,拓扑结构:总线型、星型(集线器,物理星型,逻辑总线),用于局域网

介质访问控制medium access control,MAC
就是让节点之间的通信不会进行相互干扰

5.1 信道划分介质访问控制

虽然使用一条共享信道,但是通过多路复用技术组合进行传输,提高了信道的利用率

基于多路复用技术划分资源:网络负载重:共享信道效率高,且公平;网络负载低,共享信道效率低。

5.1.1 频分多路复用FDM

5.1.2 时分多路复用TDM

TDM的缺点就是利用率低,所以又衍生出了STDM

5.1.3 统计时分复用STDM

STDM的原则是先到先走,满了就发,相对于TDM提高了利用率

5.1.4 码分多路复用CDM

CDM只是做一下记录,暂时还用不到,有需要请自行查找资料

5.2 随机访问介质访问控制

所有用户都可以随机发送信息,发送时可以占用全部带宽,理论上个人使用时比静态分配信道的速度更快

网络负载重:产生冲突开销;网络负载低,共享信道效率高,单个结点可利用信道全部带宽。

随机访问介质访问控制协议,会有冲突的问题。信道划分介质访问控制协议和轮询访问介质访问控制协议不会冲突。

5.2.1 ALOHA协议

纯ALOHA协议缺点:太随性,导致效率低,不听就说

时隙ALOHA协议
相对于纯ALOHA协议就是固定了发送的时间(只能在一个时间片的开始),提高了效率

5.2.2 CSMA协议

CSMA,先听再说

名称描述优点缺点
1-坚持CSMA发送信息时监听信道,一空闲下来就立即传输,信道忙也一直监听,如果发送时冲突就等待随机时长之后再监听立即发送,利用率高如果多台设备同时监听,那么会发生冲突
非坚持CSMA发送信息时监听信道,如果空闲就立即传输,信道忙就随机等待一段时间后再监听冲突发生的几率减少因为需要等待,所以利用率不高
p-坚持CSMA发送信息时监听信道,空闲时以概率p进行传输,概率1-p不传输。信道忙就随机等待一段时间后再监听冲突减少的同时效率也比较高即使发生冲突也要坚持发送数据,资源被浪费

5.2.3 CSMA/CD协议

概述

CSMA/CD,先听再说,边听边说

就是因为链路实际有长短,发送数据需要时间,这个时间内可能就被其他节点当成空闲状态导致发生碰撞
知道自己发生碰撞的最长时间是2τ(往返传播时延),就是一去一回

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

r的最大的范围是[0,1,2,3,……,1023]

由此我们可以想到最小帧长的问题,因为如果帧太短,帧都发送完了才检测到碰撞导致停止,导致无法停止碰撞

最短帧长是64B

5.2.4 CSMA/CA协议

应用在无限局域网上,因为无法做到360度的碰撞检测和发现隐蔽站。


三个手段(机制)实现碰撞避免:预约信道、ACK确认帧(否则重传)、RTS/CTS帧(可选,解决隐蔽站的问题)

5.2.5 CSMA/CD 与 CSMA/CA的区别

CSMA/CD检测电压摆动值,达到阀值说明有碰撞,检测碰撞

CSMA/CA检测是否空闲,采用三种方法混合检测,避免碰撞

5.3 轮询访问介质访问控制

主要包括两大类,一个是轮询协议,另一个是令牌传递协议

5.3.1 轮询协议

就是选出一个代表,让他控制所有的传输
注释:
轮询开销在随着服务的节点越多,需要用于查询是否发送数据发送的数据帧也就越多,会造成一定开销
等待延迟就是因为这是轮流“邀请”,所以难免某个节点需要发送数据,但是主节点还在较远的需要里有需求的节点那边,导致需求得不到立即响应
单点故障,就是代表挂了

5.3.2 令牌传递协议

注释:在节点之间没有收发数据的需求时,令牌在节点之间循环。
发送数据的流程:

  1. 当一个节点需要时就可以获得这个令牌。然后修改这个令牌的状态(空闲->占用)
  2. 再将令牌与数据帧结合,让其在节点构成的闭环之间流动
  3. 不是目的地的节点收到令牌也不接受,直接略过,目标节点收到信息并复制一份到本地(传输完成),因为是个闭环,所以发送节点最后得到令牌
  4. 最后,发送令牌的节点对令牌的内容进行检查,如果发现数据出错还要重新发一遍

问题基本和轮询协议相同:

  1. 令牌开销,掉失、生成。随着服务的节点越多,需要用于查询是否发送数据发送的数据帧也就越多,会造成一定开销
  2. 等待延迟,就是因为这是轮流“邀请”,所以难免某个节点需要发送数据,但是主节点还在较远的需要里有需求的节点那边,导致需求得不到立即响应
  3. 单点故障,就是代表挂了

6.局域网

6.1 局域网的概念

概括:范围大小,速度快,延迟低,节点平等

6.1.1 局域网的网络拓扑结构

常用的是总线型拓扑

以太网就是一种逻辑总线型结构

集线器是多端口的物理层设备

6.1.2 局域网的传播介质

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

6.1.3 局域网介质访问方法

6.2 局域网的分类

以太网IEEE802.3,无线局域网IEEE802.11(WIFI是WLAN的一种应用)

6.3 IEEE802标准

IEEE802系列是关于局域网、城域网的技术标准。

  1. IEEE802.3 以太网
  2. IEEE802.5 令牌环网(容易单点故障)
  3. IEEE802.8 光纤
  4. IEEE802.11 无线局域网WLAN

6.3.1 IEEE802描述的局域网参考模型

逻辑链路控制(Logical Link Control,LLC)

介质访问控制(medium access control)简称MAC

6.4以太网

6.4.1 以太网概念

以太网尽最大努力交付,只实现无差错接收,不能实现可靠传输

无差错接收指的是发送方发送10010,接收方只接收10010,其他的掉弃,差错控制(检错编码:奇偶校验码、循环冗余码CRC;纠错编码:海明码),由物理层和数据链路层解决,以太网实现

可靠传输指的是发来的都接收,如果帧掉失、帧重复、帧乱序,这是可靠传输需要解决的问题,由传输层(运输层)解决

6.4.2 以太网的发展

有了物理层的集线器后,逻辑上总线型,物理上星型

6.4.3 适配器和MAC地址

6.4.4 以太网MAC帧

注释:
1.这里的mac层指的是数据链路层
2.之前说过数据链路层将上一层网络层ip数据报加头加尾
头就是目标地址(6字节),源地址(6字节),类型(2字节,标志网络层使用的协议)
尾就是FCS(帧检验序列),(4字节)
3.前导码8B不是MAC帧的一部分,目的是使时钟同步,7B是101010……前同步码,1B是帧开始界定符10101011
4.为什么数据长度时46~1500?
因为有最小帧长,以太网最小传输字节64字节,小于64B被认为是碰撞冲突了丢弃,mac占用6+6+2+4=18,所以数据最小为64-18=46,

1500则是规定的默认最大字节MTU,没有理由,规定的

5.为什么只有帧开始界定符,而没有帧结束界定符?

因为我们使用的是曼彻斯特编码,特点是发送每个比特内有两个电平变化,不发送时没有电平变化。同时有帧最小间隔。

6.4.5 10BASE-T以太网

10传输速率;BASE基带信号;T无屏蔽双绞线

数字到数字:曼彻斯特编码,一个比特对应两个码元,在一个码元上有两次信号变化

CAMA/CD介质访问控制,载波监听多点接入/碰撞检测介质访问控制,会有冲突,

6.4.6 高速以太网

交换机是数据链路层的设备

6.5 无线局域网

设备A在基站AP1发送,设备B在基站AP2接收

地址1:RA接收端:基站AP2的mac地址

地址2:TA发送端:基站AP1的mac地址

地址3:DA目的地址:设备B的mac地址

地址4:SA源地址:设备A的mac地址



6.5.1 两种无线局域网

wifi学名:服务集标识符


7.广域网

7.1 广域网的概述

概括一下,一个字大

结点交换机,属于交换机,属于数据链路层设备,在单个网络上转发分组

路由器,属于网络层设备,在多个网络上转发分组

广域网与局域网简单对比:

  • 广域网中有集线器、交换机、路由器,覆盖物理层数据链路层网络层,采用点对点,发送端和接收端通过全双工或者半双工的链路链接,强调资源共享
  • 局域网只有,只覆盖物理层数据链路层,采用多点接入技术MA,逻辑总线型,强调数据传输

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

PPP协议是目前使用最广泛的数据链路层协议,拨号基本都是PPP协议
PPP协议仅支持全双工链路

7.2.1 PPP协议需要满足的要求

透明传输:不管数据传输的是什么比特流,都可以完整传输过去,即使有帧的定界符,当看不见一样

差错检测:循环冗余编码CRC,FCS帧检验序列,有错就丢弃

最大传送单元MTU<=1500

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

7.2.3 PPP协议组成成分以及功能

LCP物理链接

NCP逻辑链接

7.2.4 PPP协议的帧格式

数据报遇到帧定界符7E一样的话,前面插入转义字符7D;遇到转义字符7D一样的话,前面插入转义字符7D

异步字符

7.3 HDLC协议(High-Level Data Link Control)

7.3.1 HDLC协议概述

同步比特

0比特插入法,发送时遇到5个1,后面插入一个0;接收时遇到5个1,后面删除一个0

7.3.2 HDLC的三种站

7.3.3 HDLC的帧格式

7.4 PPP协议和HDLC协议对比

为什么HDLC协议更可靠,但是我们使用PPP协议?
因为现在网络要求高,数据链路层本来就是不可靠的尽力传输,差错控制这些复杂的交给了TCP等

HDLC和PPP都能实现透明传输,但是HDLC以比特为单位,只能同步比特,零比特传输,PPP以字节为单位,可以零比特传输和字符填充传输

差错检测就是靠CRC方法的FCS帧检验序列

8. 链路层设备

8.1 集线器(Hub)

物理层可以扩展以太网,但是集线器会无脑将一个设备的所有消息转发到集线器所连的所有设备,故会将所连接的所有设备变成一个大的冲突域,同时只能有两台设备进行通信,且设备越多,冲突越多。由此诞生了网桥

8.2 网桥(Bridge)

使用网桥时,由于网桥会根据mac地址进行过滤,所以不会形成冲突域

8.2.1 两种网桥

透明网桥

通过自学习算法来构建转发表。每一个通过网桥的数据包都会被记录下网桥收到数据时数据对应的地址网桥自己的接口,通过许许多多的数据包的构造的缓存,网桥就可以知道哪个数据包在哪个接口,以后如果要穿数据包就知道要往哪个接口发送数据包了

原路由网桥

在发送时,直接将最佳路径放到帧首部。那么网桥如何获得最佳路径?通过广播方式想目标地址发送广播,此时可能会经过不同路由产生不同的路径,目标地址收到后再将每一条路径都发一个响应帧给网桥,网桥经过对比就知道哪个接口最快了

方法:源站以广播方式向欲通信的目的站发送一个发现帧

8.3 交换机

网桥接口越来越多,网桥就变成了交换机

8.4 冲突域和广播域

因为交换机没有ip地址,所以不能隔离广播域

9. 本章总结思维导图

本章常用中英文对照

End system 端系统
Modem 调制解调器(俗称:猫)
Base station 基站
Communication link 通信链路
Physical media 物理介质
Coaxial cable 同轴电缆
Fiber optics 光纤
Radio spectrum 射频频谱
Transmission rate 传输速率
Packets (数据)包,或分组
Routers 路由器
Path 路径
ISP (Internet Service Provider) 网络服务提供商
FDM (frequency-division multiplexing) 频分多路复用
TDM (time-division multiplexing) 时分多路复用

WDM (wave-division multiplexing) 波分多路复用

CDM (code-division multiplexing) 码分多路复用
Statistical Multiplexing 统计复用
Store-and-forward 存储转发
Queuing delays 排队延迟
Transmission delay 传输延迟,或发送延迟
Propagation delay 传播延迟
Throughput 吞吐量
Internet backbone 骨干网
Delay 延迟,或时延
Loss 丢包
Message 消息,或报文
Segment (报文)段
Datagram 数据报
Frames 帧

Madium Access control 介质访问控制MAC

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值