计算机网络 —— 数据链路层

简介

1、链路层的意义

物理层的线路有传输介质与通信设备组成,比特流在传输介质上传输时肯定会存在误差的。这样就引入了数据链路层在物理层之上,采用差错检测、差错控制和流量控制等方法,向网络层提供高质量的数据传输服务。
对于网络层,由于链路层的存在,而不需要关心物理层具体采用了那种传输介质和通信设备。

2、链路层的功能

● 链路管理,帧同步
● 流量控制,差错控制
● 数据和控制信息分开
● 透明传输和寻址

3、数据链路层使用的信道

数据链路层使用的信道主要有以下两种类型:

(1)点对点信道:这种信道使用一对一的点对点通信方式
(2)广播信道:这种信道使用一对多的广播通信方式

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

1、基本概念

计算机网络 —— 数据链路层_第1张图片

● 链路:一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
● 数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
● 帧:点对点信道的数据链路层的协议数据单元。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出来并上交给网络层。在因特网中,网络协议数据单元就是IP数据报(简称数据报、分组或包)。

2、数据链路层通信时的主要步骤

(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧;
(2)结点A把封装好的帧发送给结点B的数据链路层 ;
(3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取IP数据报上交给网络层;否则丢弃这个帧;
计算机网络 —— 数据链路层_第2张图片
特点:数据链路层不用考虑物理层如何实现,所以就相当与对等层水平传输

3、三个基本问题

数据链路层有很多协议,但是有三个基本问题是共同的:

(1)封装成帧

● 封装成帧:就是在一段数据前后分别添加首部和尾部,确定帧的界限,然后就构成了一个帧 。
● 添加首部和尾部的作用:进行帧定界(确定帧的界限);包含许多必要的控制信息 。
● 帧长:帧的数据部分加上帧首部和帧尾部的长度 。
● 最大传送单元 MTU:链路层协议规定的所能传送的帧的数据部分长度上限
● 帧格式:
计算机网络 —— 数据链路层_第3张图片
● 帧界定的方法:可用特殊的帧定界符,在 ACSCII 码中,用 SOH 表示帧的首部开始,EOT 表示帧的结束;
● 帧界定的作用:判断收到的帧是否完整,不完整则丢弃;

(2)透明传输

● 透明传输:不管什么数据,都能完整无差错的通过这个数据链路层,数据链路层对数据没有妨碍,数据链路层对数据时透明的。这里的透明指的是,数据链路层对传输的数据透明,传输的数据实际上感受不到数据链路层所做的操作。
● 透明传输中的问题:若数据中的某个字节的二进制代码恰好组成了帧界定符,就会出现错误。
计算机网络 —— 数据链路层_第4张图片
● 解决方法:字节填充,在控制字符和特殊字符前插入一个转义字符"ESC",而真正的首部和尾部前不加。

(3)差错检测

为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
● 误码率:在一段时间,传输错误的比特占所有传输比特总数的比率,与信噪比有关。
● 传输差错的分类:比特差错(1变0,0变1)、帧丢失(丢失某个帧)、帧重复(某个帧收到多次)、 帧失序(后发送的帧反而先到达接收端)。
● 在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
CRC的局限性:只能实现无比特差错,并不能解决帧失序、丢失、重复等无传输差错,只能判断收到的数据是否正确,其余均无法判断,并不是可靠传输。

4、点对点协议PPP

用户必须连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机和 ISP 进行通信时所使用的数据链路层协议

1、PPP协议满足的需求

(1)简单:对数据链路层的帧,不需要纠错、序号、流量控制,简单作为首要要求;收到帧进行CRC检验,无差错则接收,反之丢弃
(2)封装成帧:必须规定特殊的字符作为帧定界符,使接收端从收到的比特流中准确找出帧的开始和结束位置
(3)透明性:必须保证数据传输的透明性,要能解决碰巧出现和帧定界符一样的比特组合的问题
(4)多种网络层协议:必须能够在同一条物理链路上同时支持多种网络层协议的运行,如IP等;在局域网和路由器上同样如此
(5)多种类型链路:必须能够在多种链路上运行
(6)差错检验:必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧
(7)检测连接状态:必须能够自动检测链路是否处于正常工作状态
(8)最大传送单元:必须对每一种类型的点对点链路设置 MTU 的标准默认值;促进各种实现之间的互操作性,若高层协议发送的分组数据部分超过 MTU 值,则丢弃并返回差错
(9)网络层地址协商:必须提供一种机制使通信的两个网络层的实体能够通过协商知道或能够配置彼此的网络层地址
(10)数据压缩协商:必须提供方法来协商使用数据压缩算法

2、PPP 的特点

不支持多点线路,只支持点对点的链路通信,只支持全双工链路

3、PPP 协议不需要的功能

纠错、流量控制、序号、多点线路、半双工或单工链路(只工作在点对点链路)

4、PPP 协议的组成

(1) 将 IP 数据报封装到串行链路的方法。PPP 支持异步链路,也支持面向比特的同步链路;IP数据报在 PPP 帧中就是其信息部分,该信息部分的长度受到 MTU 限制。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议 LCP
(3)一套网络控制协议 NCP,其中每一个协议支持不同的网络层协议。

5、PPP协议的帧格式
计算机网络 —— 数据链路层_第5张图片
(1)各字段意义

首部和尾部分别为4个字段和2个字段:

● 标志字段F:规定为0x7E,表示一个帧的开始或结束,就是帧的定界符
● 地址字段A:规定为0xFF
● 控制字段C:规定为0x03
● 协议字段:①当协议字段为0x0021时,PPP帧的信息字段就是IP数据报;②当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据;③当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。
● 信息字段:长度可变,不超过1500字节
● 帧减压序列FCS:CRC中使用的冗余码

(2)透明传输问题

当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一言的比特组合不出现在信息字段中:

① PPP 协议采用异步传输 —— 字节填充

当PPP使用异步传输时,它把转义符定义为0x7D,并使用字节填充。RFC1662规定了如下填充方法:
● 把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。
● 若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。
● 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列的(0x7D,0x31)。
由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在接收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息。

② PPP 协议采用同步传输 —— 零比特填充

零比特填充的具体方法:
● 在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。
● 只要发现有5个连续的1,则立即填入一个0。
● 接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。
因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续6个1。

6、PPP 协议工作状态

① 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
② PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
③ 这些分组及其响应选择一些 PPP 参数,然后进行网络层配置,网络层控制协议 NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
④ 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
计算机网络 —— 数据链路层_第6张图片

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

广播信道可以进行一对多的通信,局域网使用的就是广播信道。
计算机网络 —— 数据链路层_第7张图片

1、局域网

(1)局域网的特点

网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网的工作层次跨越了物理层和数据链路层

(2)局域网的优点

● 具有广播功能,从一个站点可方便的访问全网;局域网上主机共享局域网上各种硬件和软件资源
● 便于系统的扩展和演变,各设备的位置可灵活调整和改变
● 提高了系统的可靠性、可用性和生存性

(3)局域网的拓扑结构

星形网、总线网、环形网
计算机网络 —— 数据链路层_第8张图片

(4)共享信道

① 静态划分信道
频分复用、时分复用、波分复用、码分复用。用户在通信时分配到信道,只要分配到了信道就不会和其他用户发生冲突。但是代价较高,不适合局域网使用
动态媒体接入控制(又称为多点接入)
信道并非在用户通信时固定分配给用户。
● 随机接入:所有用户可随机发送信息,若恰巧有两个或者更多的用户同一时刻发送消息就发生碰撞(冲突),会使这些用户的发送都失败,需要解决碰撞的网络协议。(以太网采用)
● 受控接入:用户不能随机发送信息而必须服从一定的控制,如多点线路探询(轮询)

2、以太网

以太网是局域网的一种实现方式,但如今以太网占据了绝大多数市场,故某种意义上,以太网就是局域网。

(1)以太网的两个标准

DIX Ethernet V2
IEEE 802.3

(2)局域网数据链路层的两个子层

● 逻辑链路控制(LLC):靠近网络层,对下面的局域网透明,为网络层提供统一的接口,已经过时;
● 媒体接入控制(MAC):靠近物理层,存放与接入媒体有关的内容;

在 TCP/IP 体系中,逻辑链路控制子层 LLC的作用已经不大,所以一般不考虑。很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议。

3、适配器

网络适配器又被称为网卡,包含了数据链路层和物理层两层的功能
● 适配器的重要功能:(1)进行串行\并行转换、(2)对数据进行缓存、(3)在计算机的操作系统安装设备驱动程序,这个驱动程序以后就会告诉网卡应当从存储器的什么位置上把多长的数据发送出去或者将局域网传送过来的数据块存储在存储器的哪个位置、(4)实现以太网协议
● 计算机通过适配器和局域网通信:
计算机网络 —— 数据链路层_第9张图片
网卡并不是独立的自治单元,因为网卡本身不带电源而是必须使用所插入的计算机的电源,并受该计算机的控制,因此网卡可看成为一个半自治的单元。当网卡收到一个有差错的帧时,它就将这个帧丢弃而不必通知它所插入的计算机。当网卡收到一个正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。当计算机要发送一个IP数据报时,它就由协议栈向下交给网卡组装成帧后发送到局域网。

4、CSMA/CD 协议

最初的以太网是将许多计算机都连接到一根总线上。当初认为这样连接即简单又可靠,因为总线上没有有源器件(认为有源器件不可靠,无源的电缆线才可靠)。

总线的特点:

当一台主机发送数据时,总线上所有主机都能检测到这个数据,就是一对多的广播通信方式。但是我们不总是要在局域网上进行一对多的广播通信,为了在总线上实现一对一的通信,使每一台计算机上的适配器拥有与其他适配器不同的地址。在发送数据帧时,在帧的首部写明接收站的地址。总线上每一个主机都能检测到B发送的数据。但是只有D的地址和数据帧首部写入的地址一致,所以只有D接收。其余计算机都能检测到这不是发送给他们的数据帧,所以就丢弃这个数据帧。这是一种具有广播特性的总线上实现了一对一通信,这种方式不安全
计算机网络 —— 数据链路层_第10张图片
为了通信的简便,以太网采取了两种重要的措施:

(1) 采用无连接工作方式,不必先建立连接就可以直接发送数据;适配器对数据帧不编号,不要求发回确认;因此,以太网提供尽最大努力交付,是不可靠交付收到差错帧则丢弃,是否重传由高层决定,和以太网无关;同一时间只允许一台主机发送数据;使用CSMA/CD协议减少冲突发生概率

(2) 发送的数据使用曼切斯特编码

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

① 多点接入

CSMA/CD 协议适用于广播信道,允许总线上多个站点接入。协议的核心是载波监听和碰撞检测。

② 载波监听

由于总线型广播信道上同一时刻只允许一个站点发送数据,故站点需要时刻不停地检测信道上是否有其他站点发送数据,这就是载波监听。检测信道通过才能获得发送权。

载波监听发生在一个站点发送数据之前,以及发送数据的过程中。一旦发现有其他站点发送数据,则立即停止发送,免得继续进行无效的发送,白白浪费网络资源,等待一段随机时间后再次发生。具体的等待时间采用截断二进制指数退避算法

顺便指出,信道上发送的是基带信号,并没有载波,“载波”一词为借用。

③ 碰撞检测(冲突检测)

碰撞检测就是“边发送边监听”。适配器边发送数据边检测信道上信号变化情况,看是否发生了碰撞。若有两个计算机同时发送数据,则信道上的信号电压变化幅度会超过一定的门限值,计算机(适配器)能够发现这种变化,表明发生碰撞。

争用期

最先发送数据帧的站,在发送数据帧后至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
以太网的端到端往返时延2t 称为争用期,或碰撞窗口。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞

截断二进制指数退避算法

发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据,而不是等待信道清空再重传。确定基本退避时间,一般是取为争用期 2t。
以太网取 51.2 毫秒为争用期的长度。对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。

CSMA/CD 协议的重要特性

● 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)
● 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率

以太网应用 CSMA/CD 协议

(1) 准备发送:适配器从网络获得一个分组,加上首部和尾部组成以太网帧,放入以太网缓存中,发送前先检测信道
(2) 检测信道:若检测到信道忙,则不停检测,直到信道转为空闲;若检测到信道空闲,并在96比特时间(9.6us)内保持空闲(保证了帧间最小间隔),就发送这个帧;
(3) 在发送过程中仍不停检测信道,边发送边监听。这里有两种可能:发送成功(争用期内未检测到碰撞,这个帧一定能发送成功。发送完毕后回到(1));发送失败(争用期内检测到碰撞。立即停止发送,并按规定发送人为干扰信号(强化碰撞),执行指数退避算法,等待r倍512比特时间(51.2us)后,返回步骤(2),若重传16次仍不成功,停止重传并向上报错)。
注:以太网每发送一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测到发生碰撞,就要延迟一段时间后把这个暂时保存的帧重传一次。

5、使用集线器的星型拓扑

在星形拓扑的中心增加了一种可靠性非常高的设备,叫做集线器。双绞线以太网总是和集线器配合使用的。每个站需要两对无屏蔽双绞线(放在一根电缆中),分别用于发送和接收。
计算机网络 —— 数据链路层_第11张图片
集线器的特点:

(1)使用集线器的以太网在物理上是一个星型网,但由于集线器使用电子器件来模拟实际电缆线的工作,因此在逻辑上仍是一个总线网各站共享逻辑上的总线使用的还是CSMA/CD协议(准确的说是各站中的适配器执行该协议)。网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据
(2)一个集线器有很多接口,一个集线器就像一个多接口的转发器。
(3)集线器工作在物理层,他的每个接口仅仅简单地转发比特——接收到1就转发1,收到0就转发0,不进行碰撞检测
(4)集线器采用了专门的芯片,进行自适应串音回波抵消。这样就可以使接口转发出去的较强信号不致对该接口接收到的较弱的信号产生干扰。

6、以太网的MAC层

(1)MAC 层的硬件地址

在局域网中,硬件地址又称为物理地址,或 MAC 地址,共48位。

MAC 地址是一个硬件地址,位于网卡的ROM中,实际上就是适配器地址或适配器标识符 。他是一个48bit即6个字节的序列,现在使用的是EUI-48。一个地址是一个站的名字或者标识符,它由注册管理机构RA同一颁发。前三个字节为公司标识符,即组织唯一标识符OUI,这是生产公司申请到的。后三个字节为扩展标识符,为公司自己制定。必须保证生产出的适配器没有重复地址

当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口。路由器如果连接到多个网络上,就需要多个适配器和多个硬件地址

(2)适配器的过滤功能

适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
发往本站的帧:
● 单播(unicast)帧(一对一),即受到的帧的MAC地址与本站硬件地址相同。
● 广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧。
● 多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧。

(3)MAC 帧格式
计算机网络 —— 数据链路层_第12张图片
计算机网络 —— 数据链路层_第13张图片
填充字段:当数据字段长度小于46字节时,MAC子层会在数据字段后面加入一个整数字节的填充字段,以保证MAC帧长不小于64字节。

插入的8字节:从MAC子层传到物理层时要在帧前插入8字节,由硬件生成:
● 前同步码:7字节;使接收端的适配器在接收MAC帧时能迅速调整时钟频率,使其和发送端时钟同步
● 帧开始定界符:定义为10101011;用来表示帧开始

无效的MAC帧

● 帧的长度不是整数个字节
● 用收到的帧检验序列FCS查出差错
● 收到的帧的MAC客户数据长度不在46-1500字节之间,或MAC帧长度不在64-1518

7、扩展以太网

(1)在物理层扩展以太网

工作在物理层的转发器、集线器,将多个局域网连接起来,扩大碰撞域,但并不增加吞吐量。

① 距离的扩展

主机使用光纤和一对光纤调制解调器连接到集线器。
计算机网络 —— 数据链路层_第14张图片

②数量的扩展

集线器集联:使网络中计算机增加,变成一个大的冲突域,会造成效率降低。
计算机网络 —— 数据链路层_第15张图片

(2)数据链路层扩展以太网

在数据链路层扩展局域网是使用网桥、交换机。

① 网桥:网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口

② 交换机:以太网交换机通常都有十几个接口。因此,以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层

以太网交换机的特点:
● 以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式
● 交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据
● 交换机中存有地址表通过自学习算法建立,交换机上所有端口在同一个广播域上
● 以太网交换机由于使用了专用的交换结构芯片,其交换速率就较高。

交换机的自学习功能:
地址表的形成:收到未知的地址后,存储源地址和接口的对应关系,向除来源端口的其它端口广播,目的地址不符则丢弃,否则接收并回复,收到回复后存储对应关系;地址表有有效时间,超过有效时间则失效。

随着网桥的接口的增加, 后来网桥和集线器合并了,计算机可以直接和交换机连接,这就是交换机。
交换机就是网桥和集线器的合并升级版,能全双工,安全通信。
端口带宽独享; 安全; 基于MAC地址转发; 通过学习构建MAC地址表。

(3)虚拟局域网

虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组。

● 这些网段具有某些共同的需求。
● 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。

虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
计算机网络 —— 数据链路层_第16张图片

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