计算机网络—笔记3:数据链路层

导读:本篇文章讲解 计算机网络—笔记3:数据链路层,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

文章目录

1. 数据链路层概述

1.1 本章概要图

在这里插入图片描述

1.2 基本概念

两台计算机间通信的示意图如下:
在这里插入图片描述
此次学习,主要是针对上图中的数据链路层细化学习,了解数据链路层如何识别帧头、帧尾,以及一些重要问题是如何解决的。

在这里插入图片描述

注意:电路不同于链路,电路是物理层的概念。

数据链路层提供的功能:
在这里插入图片描述

注意:关于链路层可靠性的说明:
在这里插入图片描述

例题:
![在这里插入图片描述](https://img-blog.csdnimg.cn/202010211922278.png#pic_center)

2. 数据链路层的功能

2.1 封装成帧和透明传输

1. 透明传输:指不知道网络层传递下来的数据是什么,也不管是怎样的数据,都能够在数据链路层上传输。简单来说,就是我不知道
		网络层要我传的什么东西,但是我只管传就是了。

2. 封装成帧:就是将网络层传递下来的数据报/分组的前后分别添加帧头、帧尾就构成了一个帧。
	* 目的:在出错时,只需要重发出错的帧,而不必重发全部数据从而提高效率。
	* 注意:一段数据是指一定长度内的数据,并不是无限长的。不同协议的最大长度不同,但是为了提高利用率,一般取接近
				最大长度,这样帧头帧尾就相对较短,利用率会增加。
3. 帧头、帧尾
	* 实现:采用一些ASCII码为不可打印字符做帧头帧尾,比如控制字符
	* 作用:对帧进行定界。
4. 接受方:接受方在接受帧时,只有接受到帧头帧尾的帧才会获取,其他的都会舍弃。

5. 封装成帧的4种方法:
	1. 字符计数法
	2. 字符(节)填充法
	3. 零比特填充法
	4. 违规编码法

在这里插入图片描述

2.1.1字符计数法

在这里插入图片描述

2.1.2 字符(节)填充法

在分组的头部加上一个帧开始标志,在帧尾加上一个帧结束标志。示意图如下:

在这里插入图片描述

但是上面还存在一个问题:帧的数据部分可能出现非打印字符,甚至可能与帧头(SOH)帧尾(EOT)一样。这样会导致只有前半截的数据被接受,后半截的数据被舍弃,如下图所见。如何避免?

在这里插入图片描述

解决方案:在帧的数据部分,且出现非打印字符时,在前面加一个转义字符,来标识其是帧的数据部分,不是帧头或帧尾。如下图所示:
在这里插入图片描述
发送端的数据链路层会为数据包添加帧头、帧尾和转义字符。
在接受端的数据链路层会自动的去掉帧头、帧尾和转义字符。

2.1.3 零比特填充法

在这里插入图片描述

2.1.4 违规编码法

在这里插入图片描述

2.2 差错控制

在这里插入图片描述

注意:噪声分为随机噪声(热噪声)和冲击噪声。
在这里插入图片描述

  • 问题:在数据的传输过程中,信号衰落或者受到噪音的干扰,会出现一些****比特位的数据由0变为1或者由1变为0,从而出现差错。如何解决?

  • 解决方法:一般会将数据分组,每一组数据后面都加上帧检查序列(FCS),接受端的数据链路层会根据帧检查序列(FCS)来判断数据是否出错。

  • 帧检查序列(FCS)如何得到?方法有很多,下面介绍其中几种方法.

2.2.1 只检错,无纠错

2.2.1.1 奇偶校验

在这里插入图片描述

2.2.1.1 循环冗余校验(CRC)

  • 循环冗余检验(CRC) 对地址字段(MAC地址)、控制字段(表明传输协议)、信息字段(IP数据报)进行计算,生成CRC校验码;再对整个数据加上帧头、帧尾构成数据帧。
  • 如下题:带发生数据流为: 101001,双方采用的生成多项式为g(x) = x^3 + x^2 + 1,则根据多项式得出除数为:1101,由于多项式的最高次为3次方得数据流后面加3个0组成被除数。计算过程如下:
    (如果没有指定生成多项式则除数和数据流加0任意取,但是实际情况下通信双方都会约定生成多项式,以便校验)
    在这里插入图片描述
  • 接受端如何判断数据是否出错?同样的在接收端的数据链路层对数据帧进行循环冗余检验(CRC)计算。如果余数是0,则认为没有出错;反之则出错,但是无法纠错,会舍弃该数据。
无差错接受:凡是接受的帧,我们以非常接近于1的概率认为这些帧在传输过程中没有产生差错。
可靠传输:发送什么就收到什么。(通过确认和帧的重传机制)
小结:CRC差错技术是一种无比特差错,而不是可靠传输。因为通过CRC计算出的FCS可能为0,且除数越大,概率越接近1

2.2.2 即检错,又纠错

2.2.2.1 海明码

在这里插入图片描述

上述的海明码还不是实际的海明码,因为其只有检测一位错误的能力,实际上,海明码具有一位纠错,二位检错能力。是因为在其最高位还添加了一个校验位。如下图所示:
在这里插入图片描述

2.3 流量控制

(1)什么是流量控制:
在这里插入图片描述

注意:流量控制是对发送方的数据流量的控制。流量控制在网络层、传输层也有,只是对等的实体不同,但是目的都是控制发送方的数据流量速度。
在这里插入图片描述
(2)流量控制的三种方法:
在这里插入图片描述

注意:关于这三个协议,有的书是写在数据链路层,有的是写在网络层或传输层。不必太纠结,这只是针对的对象部分。如果要针对报文段,则在传输层;如果针对分组,则在网络层;如果针对数据帧,则在数据链路层。

(3)可靠传输、流量控制、滑动窗口的联系:
在这里插入图片描述

注意:流量控制可靠传输都是通过滑动窗口机制来实现的。

2.4 可靠传输

2.4.1 停止等待协议

在这里插入图片描述

2.4.1.1 无差错的停止等待协议(也就是中途没有错误)

在这里插入图片描述

2.4.1.1 有差错的停止等待协议(也就是中途出现错误)

(1)数据帧丢失:

在这里插入图片描述
(2)确认帧丢失:

在这里插入图片描述
(3)确认帧迟到:

在这里插入图片描述

(4)特点:

  • 优点:实现简单
  • 缺点:信道利用率低
    在这里插入图片描述

注意:求信道吞吐率和平均数据传输率时,注意信道利用率上限为100%。
在这里插入图片描述

在这里插入图片描述

2.4.2 采用流水技术的协议(提高信道利用率)

停止等待协议的缺点是信道利用率太低,而使用流水技术能够提高信道的利用率。主要有后退N帧协议选择重传协议
在这里插入图片描述

2.4.2.1 后退N帧协议(GBN)

(1)过程示意图:
在这里插入图片描述
在这里插入图片描述

(2)发送方应该做的事:

在这里插入图片描述
(3)接受方应该做的事情:

在这里插入图片描述
(4)滑动窗口与发送窗口的大小关系:

在这里插入图片描述

注意:滑动窗口发送窗口是不同的概念。(滑动窗口与接受窗口也是)
采用n比特对帧编号,说明有2^n滑动窗口。而回退N协议的发送窗口 <= 滑动窗口 - 1

(5)重点小结
在这里插入图片描述
(6)练习:

在这里插入图片描述
在这里插入图片描述

2.4.2.2 选择重传协议(SR)

在这里插入图片描述

(1)SR过程示意图:
在这里插入图片描述

在这里插入图片描述
(2)发送方要做的事情:

在这里插入图片描述
(3)接受方要做的事情:

在这里插入图片描述
(4)滑动窗口与发送窗口的大小关系:
在这里插入图片描述

(5)重点小结:

在这里插入图片描述
(6)练习:

在这里插入图片描述

2.4.3 关于滑动窗口的小结

在这里插入图片描述

注意:帧序号的位数指的是滑动窗口

3. 介质访问控制

数据链路层传输数据的两种数据链路:
在这里插入图片描述
而在这两种链路中,可能发送两端同时使用同一个信道,发生干扰的情况。那么如何解决?使用介质访问控制。
在这里插入图片描述
在这里插入图片描述

3.1 静态划分信道(只有一种:信道划分介质访问控制)

在这里插入图片描述

3.1.1 频分复用(FDM)

在这里插入图片描述

3.1.2 时分复用(TDM)

在这里插入图片描述

注意:

  1. 时分复用中,介质的位速率大于单个信号的位速率。假如信道带宽是8000kb/s, 有4个信号,则每个信号的带宽为8000 / 4 = 2000kb/s.
    在这里插入图片描述
  2. TDM比FDM的抗干扰能力强,而且数字信号比较容易实现自动转换。因此,FDM更加适用于模拟信号,TDM更加适用于数字信号。
    在这里插入图片描述

3.1.3 统计时分复用(STDM)

统计时分复用是时分复用的改进版–动态分配时隙
在这里插入图片描述

注意:统计时分复用中,介质的位速率等于单个信号的位速率。假如信道带宽是8000kb/s, 有4个信号,则每个信号的带宽为8000kb/s.

3.1.4 波分复用(WDM)

波分复用与频分复用是同一个东西,因为一旦某一信号的频率知道了,那么他的波长可以计算出来。

使用的技术是:光的频分多路复用。

3.1.5 码分复用(CDMA)

在这里插入图片描述
所以,在两个人打电话的时候,如果我们想知道别人和他说什么,我们只需要弄一个和他码片向量相同的码片就可以了。

3.2 动态分配信道

3.2.1 随机访问介质访问控制

3.2.1.1 ALOHA协议

(1)ALOHA协议:
在这里插入图片描述

(2)时隙ALOHA协议(改进的ALOHA协议):
在这里插入图片描述
(3)考点:
在这里插入图片描述

3.2.1.2 CSMA(载波监听多点接入)

在这里插入图片描述

注意:CSMA协议对信道进行监听,而ALOHA协议不会监听信道。

(1)1-坚持CSMA协议:
在这里插入图片描述
(2)非坚持CSMA协议:
在这里插入图片描述
(3)p-坚持CSMA协议:
在这里插入图片描述

(4)三种协议的对比:
在这里插入图片描述

注意:

  1. 这三种CSMA协议都有一个共同的缺点,那就是发现发生冲突后还是坚持把数据发送出去,造成了资源的浪费。
  2. 1-坚持CSMA的坚持监听,不同于p-坚持CSMA的持续监听,后者会隔一个间隙。
    在这里插入图片描述

3.2.1.3 CSMA/CD(载波监听多点接入/碰撞检测)

在这里插入图片描述

注意:

  1. 如果在发送时检测到有人在发送信号,就立马停止发送。
  2. CSMA/CD只能工作在半双工模式下。

(1)传播时延对载波监听的影响:
在这里插入图片描述

注意:

  1. 只要经过了2tao的时间没有检查到受碰撞的信号,则说明发送的信号没有受到碰撞。
  2. 2tao又叫争用期。
    在这里插入图片描述

(2)碰撞后的重传时间的确定:
在这里插入图片描述

注意:二进制指数回退法是从网络负载的角度去解决冲突问题。
在这里插入图片描述

(3)最小帧长:
在这里插入图片描述

注意:最小帧长只出现在CSMA/CD,带有碰撞的协议中。

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

之前的CSMA/CD协议已近很棒了,为什么还需要引入CSMA/CA协议?

这是因为应用场景不同。CSMA/CD应用于有线网络,而CSMA/CA主要用于无线网络。而这主要是由于CSMA/CD的缺点导致的,其缺点如下:

(1)CSMA/CD的缺点:

  1. CSMA/CD不能进行冲突的避免,只能进行冲突检测

  2. CSMA/CD是边传输变检测的,容易造成冲突;

  3. 隐蔽终端问题
    在这里插入图片描述

  4. 暴露终端问题
    在这里插入图片描述
    (2)CSMA/CA工作原理:

在这里插入图片描述

注意:CSMA/CA协议只能避免数据帧的冲突,不能避免控制帧(RTS/CTS)的冲突.

3.2.1.5 小结:CSMA/CD vs CSMA/CA

在这里插入图片描述

3.2.2 轮询访问介质访问控制

3.2.2.1 轮询协议

在这里插入图片描述

3.2.2.2 令牌传递协议

在这里插入图片描述

注意:
在这里插入图片描述

4. 两种链路

4.1 局域网(广播链路)

4.1.1 局域网概述

(1)什么是局域网:
在这里插入图片描述
(2)局域网的传输介质:
在这里插入图片描述
(3)局域网的介质访问控制:
在这里插入图片描述
(4)局域网的分类:
在这里插入图片描述
(5)IEEE 802 标准

为了使数据链路层更好的适应多种局域网,将以太网的数据链路层拆分成了两个子层:
	1. 逻辑链路控制 LLC
		* 特点:与传输媒体无关,与各种协议无关
	2. 媒体接入控制 MAC
		* 特点:与接入到传输媒体有关的内容都放在MAC子层
	* 注意:现在很多厂商生产的适配器上就只装有MAC协议而没有LLC协议

在这里插入图片描述

注意:给帧加序号是LLC子层,不是MAC子层。

(6)MAC层的硬件地址(MAC地址)

1. MAC地址:“MAC地址”实际上就是适配器地址或适配器标识符,且每个MAC地址在全球是唯一的。
2. 在局域网中,硬件地址又称为物理地址,或MAC地址,或局域网硬件地址,通常是用48位表示,即6个字节。存储在网卡中。
3. 适配器检查MAC地址,如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧舍弃,不再进行其他的处理。

MAC帧格式:
在这里插入图片描述

注意:

  1. 同一局域网中,不允许有两台相同的MAC地址,否则会无法通信。

4.1.2 以太网

(1)什么是以太网:
在这里插入图片描述

注意:以太网地址就是通常所说的MAC地址,或网卡
在这里插入图片描述

(2)10BASE-以太网:
在这里插入图片描述
在这里插入图片描述

(3)以太网的MAC帧:
在这里插入图片描述

注意:以太网帧,不记前导码的情况下,帧长为64B - 1518B
在这里插入图片描述

(4)高速以太网:
在这里插入图片描述

注意:

  1. xxxBASE-T, T表示使用双绞线。
  2. xxxBASE-F, F表示使用光纤。ou
  3. xxxBASE,啥都没有表示同轴电缆
    1. 75欧姆:用于视频
    2. 50欧姆:应用于网络,粗缆:500m,细缆:200m

小结:

10BASE以太网 100BASE以太网 吉比特以太网 10吉比特以太网
传输介质 同轴电缆 同轴电缆 同轴电缆或光纤 光纤
工作方式 全双工或半双工 全双工或半双工 全双工或半双工 全双工

注意:全双工下可以避免冲突,从而不使用CSMA/CD协议。

4.1.3 无线局域网(WLAN)

IEEE 802.11是无线局域网的通用标准,由IEEE公司制定。我们平时使用的wife是属于IEEE 802.11的一部分。即子类。

注意:无线局域网使用的是CSMA/CA协议,而不是CSMA/CD协议。因为无线局域网要360度的发送信号,显然在发送过程中进行检测的话就要360°检测,浪费资源。故在发送信号过程中不检测比较好,所有使用CSMA/CA协议

(1)IEEE 802.11 的MAC帧格式:
在这里插入图片描述

注意:IEEE802.3标准的MAC的地址字段是源MAC地址目的MAC地址, 网桥、交换机、集线器不改变其MAC地址,路由转发会改变。而IEEE802.11的地址1接受该帧的MAC地址地址2传输该帧的MAC地址地址3网关的MAC地址
在这里插入图片描述
(2)无线局域网的分类:

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

4.2 广域网(点对点链路)

注意:局域网,一般只覆盖物理层和数据链路层。而广域网还会覆盖网络层。

4.2.1 PPP协议

现在全世界使用最多的数据链路层协议是点对点协议的(Point-to-Point,简称PPP协议)。拨号上网一般都是采用的PPP协议,可见PPP协议有身份验证的功能。

注意:PPP协议只支持全双工链路。

(1)PPP协议的要求:
在这里插入图片描述

(2)PPP协议的三个组成部分:
在这里插入图片描述
在这里插入图片描述
(3)PPP协议帧格式:
在这里插入图片描述

* 帧格式:
	* 标志 | 地址 | 控制 | 信息 | 校验 | 标志
	* 标志(01111110, 1Bit) | 地址(>=1Bit) | 控制(1B) | 信息(>=0B) | 校验(2B或4B,校验范围:地址、控制、信息) | 标志(01111110, 1Bit)

(4)PPP协议的透明传输:
在这里插入图片描述
在这里插入图片描述

注意:PPP协议既可以以字节流,又可以以比特流的形式传输数据。所有其能够使用比特填充和字节填充。

(5)PPP协议工作状态:
在这里插入图片描述

4.2.2 HDLC协议

(1)HDLC协议:
在这里插入图片描述

(2)HDLC协议帧的格式:
在这里插入图片描述
(3)HDLC协议的透明传输:

在这里插入图片描述

注意:HDLC协议只能进行比特填充不能进行字节填充。

4.2.3 PPP协议 vs HDLC协议

在这里插入图片描述

5 链路层设备

5.1 使用网桥扩展以太网

在这里插入图片描述
假设有如上6台计算机,现在想让这6台计算机间可以相互通信,该怎么做?
如果再用一台集线器将这三台集线器连接起来,虽然能解决问题,但是这样会使得冲突域变得更大,信道利用率会急速降低。那么有没有什么方法能够让其连接,但是不产生更大的冲突域?网桥就是为了解决这个问题。
在这里插入图片描述
在这里插入图片描述

1. 使用网桥扩展以太网
	* 优点:
		* 主要:隔离冲突域,提高吞吐率
		1. 过滤通信量
		2. 扩大了物理范围
		3. 提高了可靠性
	* 缺点:
		1. 存储转发增加了时延
		2. 在MAC子层并没有流量控制功能
		3. 具有不同MAC子层的网桥接在一起时时延更大。
		4. 网桥只适用于用户不多的情况下(不超过100个)

2. 网桥的分类:
	1. 透明网桥:指互联网上的站点并不知道所发送的帧将经过几个网桥,因为网桥对各站来说是看不见的
		         透明网桥是一种即插即用的设备。

	2. 源路由网桥:在发送帧时,将路由规划好并放在帧中。

5.2 交换机

其实现在网桥使用的很少,使用更多的是交换机。交换机是由网桥演变而来的。
上述网桥连接的是多个冲突域,假设有一台网桥的插口足够多,多的所有计算机都能直接连在网桥上,那么连接的所有计算机也能通信。这种设备就是交换机。
在这里插入图片描述
从上面可以看出交换机的优点:高效、安全。

注意:

  1. 中继器和集线器都属于物理层设备,网桥和局域网交换机属于数据链路层设备。
  2. 交换机能够隔离冲突域,使得工作在全双工模式下。
  3. 交换机查看转发表时,若没有目的mac地址,会转发到除该端口所有端口
    在这里插入图片描述

5.3 冲突域与广播域

在这里插入图片描述

注意:

  1. “广播风暴”属于广播域的问题,而能够隔离广播域的设备是路由器,所以其由路由器解决,而不是网桥或交换机。
  2. 例题:
    在这里插入图片描述

5.4 环路问题及其解决方法

透明网桥和交换机都会出现一个问题,计算机将一个消息发送出去后,消息一直在几个网桥或者交换机之间循环转发,而不能发送给接收端,白白的浪费资源。

解决方法:采用生成树算法,因为树形结构是没有环路的。

生成树算法:
	1. 取优先级最高的网桥或者交换机为根结点;如果有多个,则取MAC地址小的为根结点。
	2. 下一优先级的设备中,每一个设备中离端口进的为指定端口,其他的为非指定端口。(远近以要经过的设备数和带宽决定)
	3. 重复2过程,直到没有设备

生成树算法示意图:
在这里插入图片描述

5.5 VLAN分割局域网

LAN是局域网的简称,VLAN是虚拟局域网的简称。虚拟局域网能够将一个局域网划分为几个子局域网,且子局域网间不能通信。在软件层面实现。
示意图如下:
在这里插入图片描述

注意:VLAN的通过交换机实现,VLAN不仅能够隔离冲突域还能隔离广播域

6. 做题的一些说明

1. 如果题目没有特别说明,则忽视 排队时延、处理时延、以及接受发的发送时延。
	1. 但是,如果题目说了就算
	2. 题目说使用捎带确认,则要计算接受方的发送时延。

2. 后退N帧默认是使用累计确认,但是如果题目说了使用别的,比如捎带确认,就应该用捎带确认。

3. 选择重传默认返回ack=收到的帧,但是如果题目说了使用别的,比如捎带确认,就应该用捎带确认。

4. 平均数据传输速率 = 信道吞吐率 = 信道利用率 * 数据传输率

5. 题目中提及以太网,默认:
	1. 不考虑前导码的情况下,以太网帧长范围:64B--1518B, 数据部分长度:46B--1500B
	2. 采用曼切斯特编码
	3. 物理上星型,逻辑上总线型
	4. 无连接的不可靠服务。(距离短,不易错,最求速度)
	5. 使用的是IEEE802.3

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84674.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!