本系列文章部分参考《计算机网络》谢希仁编著第七版,PPT链接: 电子工业出版社悦学多媒体课程资源平台(yx.51zhy.cn/mtrcsRes/ph…) 本文正在参与 “网络协议必知必会”征文活动
中国互联网络信息中心CNNIC每年公布两次我国互联网的发展情况。
本系列文章目录如下:
- 再回首:从应用到理论《计算机网络》系列(一):概述
- 再回首:从应用到理论《计算机网络》系列(二):物理层
- 再回首:从应用到理论《计算机网络》系列(三):数据链路层
- 再回首:从应用到理论《计算机网络》系列(四):网络层
数据链路层属于计算机网络的低层。 本文的主要内容是:
- 数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。
- 数据链路层的三个基本问题:封装成帧,透明传输和差错检测。
- 以太网MAC层的硬件地址。
- 适配器、转发器、集线器、网桥、以太网交换机的作用及使用场合。
数据链路层
数据链路层是实现设备之间通信的非常重要的一层
数据链路层使用的通道
注意:不同的链路层可能采用不同的数据链路层协议
使用点对点信道的数据链路层
数据链路和帧
- 链路 (link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。也可以称为物理链路。
- 数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。也称为逻辑链路。
- 现在最常用的方法是使用适配器(即网卡) 来实现这些协议的硬件和软件
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
- 帧:点对点信道的数据链路层的协议数据单元。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
- IP数据报 :在互联网中,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。
数据链路层传递的是帧
在进行通信时的主要步骤如下:
- 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
- 结点A把封装好的帧发送给结点B的数据链路层。
- 若结点B的数椐链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。 数据链路层不必考虑物理层如何实现比特传输的细节。我们甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方,如上图(b)所示。
三个基本问题
数据链路层协议有许多种,但有三个基本问题则是共同的。
封装成帧
- 封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。
- 首部和尾部的一个重要作用就是进行帧定界。
- 控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制字符 EOT (End Of Transmission) 表示帧的结束。
透明传输
如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。 解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。
差错控制
- 现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这就叫做比特差错。
- 比特差错是传输差错中的一种。本文所说的“差错”,如无特殊说明,就是指“比特差错”。
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER( Bit Error Rate)。例如,误码率为100时,表示平均每传送100个比特就会出现一个比特的差错。
- 误码率与信噪比有很大的关系。 如果设法提高信噪比,就可以使误码率减小。实际的通信链路并非是理想的,它不可能使误码率下降到零。
- 因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施目前在数据链路层广泛使用了循环冗余检验CRC( Cyclic Redundancy Check)的检错技术。
- 循环冗余检验的原理
- 在发送端,先把数据划分为组。假定每组 k 个比特。
- 在每组 M 后面再添加供差错检测用的 n 位冗余码,然后一起发送出去。
- 冗余码的计算
- 用二进制的模 2 运算进行 2的n次方 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
- 得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少 1 位,即 R 是 n 位。
- 将余数 R 作为冗余码拼接在数据 M 后面,一起发送出去。
- 帧检验序列 FCS
- 在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
- 循环冗余检验 CRC 和帧检验序列 FCS 并不等同。
- CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
- FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
- 循环冗余检验的原理
- 应当注意
- 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept),即凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错。
- 单纯使用 CRC 差错检测技术不能实现“无差错传输”或“可靠传输”。
- 应当明确,“无比特差错”与“无传输差错”是不同的概念。
- 在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。
- 要做到“无差错传输”(即发送什么就收到什么)就必须再加上确认和重传机制。
点对点协议 PPP
对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。PPP 协议在 1994 年就已成为互联网的正式标准。
特点
- 简单 —— 这是首要的要求。使协议在实现时不容易出错,从而使不同厂商在协议的不同实现上其互操作性提高了。
- 封装成帧 —— 必须规定特殊的字符作为帧定界符。
- 透明性 —— 必须保证数据传输的透明性。
- 多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。
- 多种类型链路 —— 能够在多种类型的链路上运行。
- 差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
- 检测连接状态 —— PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态
- 最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元 MTU的标准默认值,促进各种实现之间的互操作性。需要强调的是,MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。
- 网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
- 数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法。 在TCP/IP协议族中,可靠传输由运输层的TCP协议负责,因此数据链路层的PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。PPP协议不支持多点线路(即一个主站轮流和链路上的多个从站进行通信),而只支持点对点的链路通信。此外,PPP协议只支持全双工链路。
PPP 协议有三个组成部分:
- 一个将IP数据报封装到串行链路的方法。 IP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PP2帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP( Link Control Protocol)。通信的双方可协商一些选项。在RFC1661中定义了11种类型的LCP分组。
- 一套网络控制协议NCP( Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及 AppleTalk等。
帧格式
- PPP 帧的首部和尾部分别为 4 个字段和 2 个字段。
- 标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
- 地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
- 控制字段 C 通常置为 0x03。
- PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
- 透明传输问题:
- 当 PPP 用在异步传输时,就使用一种特殊的字符填充法。
- 当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。
- PPP 协议之所以不使用序号和确认机制是出于以下的考虑:
- 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。
- 在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
- 帧检验序列 FCS 字段可保证无差错接受。
工作状态
- 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
- PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
- 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
- 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
- 可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
- “链路静止”( Link Dead) 状态:PPP链路的起始和终止状态永远是链路静止状态,这时在用户个人电脑和ISP的路由器之间并不存在物理层的连接。
- “链路建立”( Link Establish)状态:当用户个人电脑通过调制解调器呼叫路由器时(通常是在屏幕上用鼠标点击一个连接按钮),路由器就能够检测到调制解调器发出的载波信号。在双方建立了物理层连接后,PPP就进入链路建立状态,其目的是建立链路层的LCP连接。
- “鉴别”( Authenticate)状态:协商结束后双方就建立了LCP链路,接着就进入“鉴别”(Authenticate)状态。在这一状态,只允许传送LCP协议的分组、鉴别协议的分组以及监测链路质量的分组。
- “网络层协议”( Network-Layer Protocol)状态:在“网络层协议”状态,PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。这个步骤是很重要的,因为现在的路由器都能够同时支持多种网络层协议。总之,PPP协议两端的网络层可以运行不同的网络层协议,但仍然可使用同一个PPP协议进行通信。
- “链路打开”( Link Open)状态:当网络层配置完毕后,链路就进入可进行数据通信的链路打开状态。
- “链路终止”( Link Terminate)状态:数据传输结束后,可以由链路的一端发出终止请求LCP分组( Terminate- Request)请求终上链路连接,在收到对方发来的终止确认LCP分组( Terminate-Ack)后,转到“链路终止”状态。
使用广播信道的数据链路层
广播信道可以进行一对多的通信。下面要讨论的局域网使用的就是广播信道。局域网是在20世纪70年代末发展起来的。局域网技术在计算机网络中占有非常重要的地位。局域网工作的层次跨越了数据链路层和物理层。
局域网的数据链路层
- 局域网最主要的特点是:
- 网络为一个单位所拥有;
- 地理范围和站点数目均有限。
- 局域网具有如下主要优点:
- 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和残存性。
- 以太网的两个标准
- DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
- IEEE 802.3 是第一个IEEE 的以太网标准。 DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网 。
-
数据链路层的两个子层
为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成两个子层:
- 逻辑链路控制 LLC (Logical Link Control)子层,与传输媒体无关,不管采用何种协议的局域网,对 LLC 子层来说都是透明的。
- 媒体接入控制 MAC (Medium Access Control)子层,与接入到传输媒体有关的内容都放在 MAC子层 然而到了20世纪90年代后,激烈竟争的局域网市场逐渐明朗。以太网在局域网市场中已取得了垄断地位,并且几乎成为了局域网的代名词。由于互联网发展很快而TCP/IP体系经常使用的局域网只剩下DIX Ethemet V2而不是IEEE802.3标准中的局域网,因此现在IEEE802委员会制定的逻辑链路控制子层LLC(即IEEE802.2标准)的作用已经消失了,很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议。本专栏在介绍以太网时就不再考虑LLC子层。这样对以太网工作原理的讨论会更加简洁。 2. 适配器的作用
-
计算机与外界局域网的连接是通过通信适配器( adapter)进行的。
-
网络接口板又称为通信适配器(adapter)或网络接口卡NIC(Network Interface Card),或“网卡”。
-
适配器的重要功能:
- 进行数据串行传输和并行传输的转换。
- 对数据进行缓存。有进行缓存的存储芯片。
- 在计算机的操作系统安装设备驱动程序。
- 实现以太网协议。
-
适配器在接收和发送各种帧时,不使用计算机的CPU
CSMA/CD 协议
使用集线器的星形拓扑
待续
以太网的信道利用率
待续
以太网的 MAC 层
待续
扩展的以太网
在物理层扩展以太网
- 使用光纤扩展
- 主机使用光纤(通常是一对光纤)和一对光纤调制解调器连接到集线器。
- 很容易使主机和几公里以外的集线器相连接。
- 使用集线器扩展:将多个以太网段连成更大的、多级星形结构的以太网。
- 优点
- 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信。
- 扩大了以太网覆盖的地理范围。
- 缺点
- 碰撞域增大了,但总的吞吐量并未提高。
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
- 优点
在数据链路层扩展以太网
扩展以太网更常用的方法是在数据链路层进行。
最初人们使用的是网桥( bridge)。
- 网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。
- 当网桥收到一个帧时,并不是向所有的接口转发此帧,而是根据此帧的目的MAC地址,査找网桥中的地址表,然后确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤), 现在使用以太网交换机。
以太网交换机的特点
- 以太网交换机实质上就是一个多接口的网桥。通常都有十几个或更多的接口。每个接口是一个碰撞域。
- 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
- 以太网交换机具有并行性。能同时连通多对接口,使多对主机能同时通信。
- 相互通信的主机都是独占传输媒体,无碰撞地传输数据。
以太网交换机的优点
- 用户独享带宽,增加了总容量。
- 从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。
- 以太网交换机一般都具有多种速率的接口,方便了各种不同情况的用户。
总线以太网使用 CSMA/CD协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工方式工作。既然连以太网的重要协议CSMA/CD都不使用了(相关的“争用期”也没有了),为什么还叫做以太网呢?原因就是它的帧结构未改变,仍然采用以太网的帧结构。
虚拟局域网
- 利用以太网交换机可以很方便地实现虚拟局域网VLAN( Virtual LAN)。
- 在IE802.1Q标准中,对虚拟局域网VLAN是这样定义的:
- 虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN.
- 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
- 由于虚拟局域网是用户和网络资源的逻辑组合,因此可按照需要将有关设备和资源非常方便地重新组合,使用户从不同的服务器或数据库中存取所需的资源。
- 当 B1 向 VLAN2 工作组内成员发送数据时,工作站 B2 和 B3 将会收到其广播的信息。
- B1 发送数据时,VLAN1 和 VLAN3 中的工作站 A1,A2 和 C1 等都不会收到 B1 发出的广播信息。
- 虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息 (即“广播风暴”) 而引起性能恶化。
虚拟局域网优点
- 改善了性能
- 简化了管理
- 降低了成本
- 改善了安全性
划分虚拟局域网的方法
-
基于交换机端口
- 最简单、也是最常用的方法。
- 属于在第一层划分虚拟局域网的方法。
- 缺点:不允许用户移动。
-
基于计算机网卡的MAC地址
- 根据用户计算机的MAC地址划分虚拟局域网。
- 属于在第二层划分虚拟局域网的方法。
- 允许用户移动。
- 缺点:需要输入和管理大量的MAC地址。如果用户的MAC地址改变了,则需要管理员重新配置VLAN。
-
基于协议类型
- 根据以太网帧的第三个字段“类型” 字段确定该类型的协议属于哪一个虚拟局域网。
- 属于在第二层划分虚拟局域网的方法。
-
基于IP子网地址
- 根据以太网帧的第三个字段“类型” 字段和IP分组首部中的源 IP 地址字段确定该 IP 分组属于哪一个虚拟局域网。
- 属于在第三层划分虚拟局域网的方法。
-
基于高层应用或服务
- 根据高层应用或服务、或者它们的组合划分虚拟局域网。
- 更加灵活,但更加复杂。
虚拟局域网使用的以太网帧格式
- IEEE 批准了 802.3ac 标准,该标准定义了以太网的帧格式的扩展,以支持虚拟局域网。
- 虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为 VLAN 标记 (tag),用来指明该帧属于哪一个虚拟局域网。
- 插入VLAN标记得出的帧称为 802.1Q 帧或带标记的以太网帧。
高速以太网
100BASE-T以太网
- 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用 CSMA/CD 协议。
- MAC 帧格式仍然是 802.3 标准规定的。
- 保持最短帧长不变,但将一个网段的最大电缆长度减小到 100 米。
- 帧间时间间隔从原来的 9.6 微秒 改为现在的 0.96 微秒 。
吉比特以太网
- 允许在 1 Gbit/s 下以全双工和半双工两种方式工作。
- 使用 IEEE 802.3 协议规定的帧格式。
- 在半双工方式下使用 CSMA/CD 协议,全双工方式不使用 CSMA/CD 协议。
- 与 10BASE-T 和 100BASE-T 技术向后兼容。
10吉比特以太网(10GE)和更快的以太网
- 与 10 Mbit/s、100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同。
- 保留了 802.3 标准规定的以太网最小和最大帧长,便于升级。
- 不再使用铜线而只使用光纤作为传输媒体。
- 只工作在全双工方式,因此没有争用问题,也不使用 CSMA/CD 协议。
- 更快的以太网
使用以太网进行宽带接入
- 可以提供双向的宽带通信。
- 可以根据用户对带宽的需求灵活地进行带宽升级。
- 可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率且降低了传输的成本。
- 但是不支持用户身份鉴别。
今天的文章再回首:从应用到理论《计算机网络》系列(三):数据链路层分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/20082.html