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

一、今日内容

文章目录

    • 一、今日内容
    • 二、数据链路层基本概念和基本问题
      • 2.1 基本概念
      • 2.2 三个基本问题
        • 2.2.1 封装成帧
        • 2.2.2 透明传输
        • 2.2.3 差错控制
    • 三、两种情况下的数据链路层
      • 3.1 使用点对点信道的数据链路层
        • 3.1.1 PPP协议要求:
        • 3.1.2 PPP协议组成:
        • 3.1.3 PPP协议帧格式:
        • 3.1.4 PPP协议的透明传输:
        • 3.1.5 PPP协议工作状态:
      • 3.2 使用广播信道的数据链路层
        • 3.2.1 以太网的广播信道工作示意图:
        • 3.2.2 传输协议:CSMA/CD协议
        • 3.2.3 二进制指数类型退避算法
    • 四、以太局域网(以太网)
      • 4.1 以太网与数据链路层的两个子层
      • 4.2 以太网提供的服务
      • 4.3 以太网的信道利用率
      • 4.4 MAC层的硬件地址(MAC地址)
    • 五、扩展局域网
      • 5.1 使用网桥扩展以太网
        • 5.1.1 透明网桥
        • 5.1.2 交换机
        • 5.1.3 环路问题及其解决方法
      • 5.2 VLAN分割局域网
    • 六、高速以太网(了解)
      • 6.1 100BASE-T 以太网
      • 6.2 100BASE-T 特点

二、数据链路层基本概念和基本问题

两台计算机间通信的示意图如下:
计算机网络---笔记3:数据链路层_第1张图片
此次学习,主要是针对上图中的数据链路层细化学习,了解数据链路层如何识别帧头、帧尾,以及一些重要问题是如何解决的。

2.1 基本概念

1. 链路(link):指一条点到点的物理线路段,中间没有其他的点。
	* 注意:一条链路只是一条通路的一个组成部分
2. 数据链路(data link):除了物理线以外,还必须有通信协议来控制这些数据的传输。而实现这些协议的硬件和软件加到链路上,就构成了数据链路。
	* 实现这些协议硬件和软件:现在最常见的方法是使用适配器(即网卡)
	* 一般的适配器都包括了数据链路层和物理层
3. 数据链路层传输的是帧。

2.2 三个基本问题

2.2.1 封装成帧

1. 封装成帧:就是在一段数据的前后分别添加帧头、帧尾就构成了一个帧。
	* 注意:一段数据是指一定长度内的数据,并不是无限长的。一般最大是1500Byte
2. 帧头、帧尾
	* 实现:采用一些ASCII码为不可打印字符做帧头帧尾,比如控制字符
	* 作用:对帧进行定界。
3. 接受方:接受方在接受帧时,只有接受到帧头帧尾的帧才会获取,其他的都会舍弃。

计算机网络---笔记3:数据链路层_第2张图片

2.2.2 透明传输

上述的封装成帧存在一个问题:帧的数据部分可能出现非打印字符,甚至可能与帧头(SOH)帧尾(EOT)一样。这样会导致只有前半截的数据被接受,后半截的数据被舍弃,如下图所见。如何避免?
计算机网络---笔记3:数据链路层_第3张图片
解决方案:在帧的数据部分,且出现非打印字符时,在前面加一个转义字符,来标识其是帧的数据部分,不是帧头或帧尾。如下图所示:
计算机网络---笔记3:数据链路层_第4张图片
发送端的数据链路层会为数据包添加帧头、帧尾和转义字符。
在接受端的数据链路层会自动的去掉帧头、帧尾和转义字符。
这整个过程用户并不知道,用户知道数据被传输过去,所以叫透明传输

2.2.3 差错控制

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

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

  • 帧检查序列(FCS)如何得到?方法有很多,下面介绍其中一种方法:循环冗余检验(CRC)

    • 循环冗余检验(CRC) 对地址字段(MAC地址)、控制字段(表明传输协议)、信息字段(IP数据报)进行计算,生成CRC校验码;再对整个数据加上帧头、帧尾构成数据帧。
    • 如下题:带发生数据流为: 101001,双方采用的生成多项式为g(x) = x^3 + x^2 + 1,则根据多项式得出除数为:1101,由于多项式的最高次为3次方得数据流后面加3个0组成被除数。计算过程如下:
      (如果没有指定生成多项式则除数和数据流加0任意取,但是实际情况下通信双方都会约定生成多项式,以便校验)
      计算机网络---笔记3:数据链路层_第5张图片
  • 接受端如何判断数据是否出错?同样的在接收端的数据链路层对数据帧进行循环冗余检验(CRC)计算。如果余数是0,则认为没有出错;反之则出错,但是无法纠错,会舍弃该数据。

无差错接受:凡是接受的帧,我们以非常接近于1的概率认为这些帧在传输过程中没有产生差错。
可靠传输:发送什么就收到什么。(通过确认和帧的重传机制)
小结:CRC差错技术是一种无比特差错,而不是可靠传输。因为通过CRC计算出的FCS可能为0,且除数越大,概率越接近1

三、两种情况下的数据链路层

3.1 使用点对点信道的数据链路层

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

3.1.1 PPP协议要求:

计算机网络---笔记3:数据链路层_第6张图片

3.1.2 PPP协议组成:

计算机网络---笔记3:数据链路层_第7张图片

3.1.3 PPP协议帧格式:

计算机网络---笔记3:数据链路层_第8张图片

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

3.1.4 PPP协议的透明传输:

(1)以字节流的形式传输数据。
(2)以比特流的形式传输数据。

计算机网络---笔记3:数据链路层_第9张图片
计算机网络---笔记3:数据链路层_第10张图片

3.1.5 PPP协议工作状态:

3.2 使用广播信道的数据链路层

1. 局域网
	* 特点:自己通过网线,网卡等将计算机相连,构成的网络
	* 优点:具有广播信道的功能。从一个站点可以方便的访问全网。
	* 拓扑结构:总线形,环形,星性,树形
2. 广域网:花钱买服务。比如两台计算机都通过电信网络进行聊天,尽管他们距离很近,不足100m,但是还是属于广域网。
3. 以太网:以太网是局域网的一种,采用的是总线形结构,属于总线形局域网,所以他也具有广播信道的功能。
	* 优点:即插即用
	* 缺点:
		1. 同一时间只允许一台计算机发送信号,一台计算机接受。属于半双工模式。
		2. 数据传输不安全
		3. 以太网连接距离短,100m内

下面介绍以以太网为代表的用广播信道的数据链路层:

3.2.1 以太网的广播信道工作示意图:

计算机网络---笔记3:数据链路层_第11张图片

3.2.2 传输协议:CSMA/CD协议

载波监听多点接入/碰撞检测 协议, 简称CSMA/CD协议
	1. 多点接入:许多计算机可以在总线上的任意点接入
	2. 载波监听:每一个站在发送数据之前,先要检测一下总线上是否有其他的计算机在发送数据,如果有,则暂时不要发送数据,以免发送碰撞。
	3. 碰撞检测:
		1. 碰撞如何检测:计算机边发送数据边检测信道上的信号电压大小。如果电压大于一定的值,则说明数据发送了碰撞,即冲突。
		2. 发现碰撞后:舍弃此次发送的数据,立即停止发送数据,等待一段随机时间后再发送。

碰撞检测的示意图:
计算机网络---笔记3:数据链路层_第12张图片
计算机网络---笔记3:数据链路层_第13张图片
以太网的最短帧为64字节

3.2.3 二进制指数类型退避算法

发送碰撞后,一段时间后再发送数据,暂停的这一段时间用二进制指数类型退避算法确定:
计算机网络---笔记3:数据链路层_第14张图片

四、以太局域网(以太网)

4.1 以太网与数据链路层的两个子层

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

4.2 以太网提供的服务

服务是无差错服务,而不是可靠服务。
计算机网络---笔记3:数据链路层_第15张图片

4.3 以太网的信道利用率

因为以太网是总线型局域网的一种,局域网是以广播的形式进行通信的,是半双工模式,会发生碰撞,所以以太网也会发生碰撞。最典型的是用集线器连接计算机构成以太网,此时集线器是一个冲突域。
计算机网络---笔记3:数据链路层_第16张图片

提高信道利用率:
	1. τ越小时(即传输距离越短),占用期所占的比例越大,信道利用率越大。
	2. T0越大时(传输的帧越长),占用期所占的比例越大,信道利用率越大。
		* T0 是帧的发送时间

	* 故有参数:a = τ/T0
		1. a-->0, 表示一出现碰撞就能检测出来
		2. a越大,争用期占的比例越大,信道利用率就越低

	3. 理想情况下(没有碰撞)的信道利用率:
			Smax = T0/(T0+τ) = 1/(1+a)

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

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

MAC帧格式:
计算机网络---笔记3:数据链路层_第17张图片

五、扩展局域网

5.1 使用网桥扩展以太网

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

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

5.1.1 透明网桥

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

5.1.2 交换机

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

注意:中继器和集线器都属于物理层设备,网桥和局域网交换机属于数据链路层设备。

5.1.3 环路问题及其解决方法

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

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

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

生成树算法示意图:

5.2 VLAN分割局域网

LAN是局域网的简称,VLAN是虚拟局域网的简称。虚拟局域网能够将一个局域网划分为几个子局域网,且子局域网间不能通信。在软件层面实现。
示意图如下:
计算机网络---笔记3:数据链路层_第21张图片

六、高速以太网(了解)

6.1 100BASE-T 以太网

计算机网络---笔记3:数据链路层_第22张图片

6.2 100BASE-T 特点

计算机网络---笔记3:数据链路层_第23张图片

你可能感兴趣的:(计算机网络)