计算机网络—— 数据链路层:数据链路层概述
Posted 大彤小忆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络—— 数据链路层:数据链路层概述相关的知识,希望对你有一定的参考价值。
1. 数据链路层概述
1.1 数据链路层在网络体系结构中所处的地位
如下图所示,主机H1给主机H2发送数据,中间要经过3个路由器和电话网、局域网及广域网等多种网络。
从五层协议的角度来看,主机应具有体系结构中的各个层次,而路由器只需具有体系结构中的下面三层,各设备通过物理层下面的传输媒体进行互连。当主机H1向H2发送数据时,数据的流动如下图所示。
研究数据链路层的所要解决的问题时,假设数据包只在数据链路层从左向右沿水平方向传送。从数据链路层来看,主机H1到H2的通信可以看成是4段不同的链路上的通信组成的,如下图所示。
链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据。
1.2 数据链路层的三个重要问题
1.2.1 封装成帧
如图所示,两台主机通过一段链路互连。两台主机都会对所发送或接收的数据包,进行五个层次的封装或解封。
发送方将待发送的数据通过应用层封装成为应用层协议数据单元,然后交付给运输层。
运输层为其添加运输层协议首部,使之成为运输层协议数据单元,然后交付给网络层。
网络层为其添加网络层协议首部,使之成为网络层协议数据单元,然后交付给数据链路层。
数据链路层给网络层协议数据单元添加一个数据链路层协议首部,简称为帧头,还要给其添加一个帧尾。我们将数据链路层给网络层交付的协议数据单元添加帧头和帧尾的操作成为封装成帧。添加帧头和帧尾的目的都是为了在链路上以帧为单元来传送数据,也就是为了实现数据链路层本身的功能。例如,下图是以太网版本2的MAC帧格式。
1.2.2 差错检测
发送方将封装好的帧通过物理层发送到传输媒体,帧在传输过程中遭遇干扰后可能会出现误码,也就是比特0可能变成了比特1,反之亦然。
接收方主机如何判断帧在传输过程中是否出现了误码?
这可以通过检错码来发现。发送方在发送帧之前,基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾。例如以太网版本2的MAC帧的帧尾就是4字节的帧检验序列FCS字段,要写入该字段的内容,也就是我们所说的检错码。
接收方主机收到帧后,通过检测码和检测算法就可以判断出帧在传输过程中是否出现了误码。
1.2.3 可靠传输
接收方主机收到有误码的帧后,是不会接受该帧的,将其丢弃。如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施。如果数据链路层向其上层提供的是可靠服务,那么就还需要其他措施来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本。换句话说,尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方最终都能收到什么,就称为可靠传输。
封装成帧、差错检测、可靠传输是数据链路层中最基本、最重要的问题。
需要说明的是,在介绍这三个问题的时候,使用的是点对点信道的数据链路层来举例的。对于使用广播信道的数据链路层,除了包含这三个问题外,还有一些其他需要解决的问题。如图所示,主机A、B、C、D、E通过一根总线进行互连,主机A要给主机C发送帧,代表帧的信号会通过总线传输到总线上的其他各主机。那么主机B、D、E如何知道所收到的帧不是发送给它们的?而主机C又如何知道所收到的帧恰恰是发送给自己的?
可以想起地址或者编制的问题,也就是将帧的目的地址添加在帧中一起传输。比如,下图是以太网版本2的MAC帧格式,其首部中的三个字段中有两个字段和地址相关,一个是目的地址字段,另一个是源地址字段。
除了编制问题外,当总线上多台主机同时使用总线来传输帧时,传输信号就会产生碰撞,这是采用广播信道的共享式局域网不可避免的。
以太网采用的协调方法是使用一种特殊的协议CSMA/CD,也就是载波监听多点接入/碰撞检测。
随着技术的发展,交换技术的成热和成本的降低,具有更高性能的、使用点对点链路和链路层交换机的交换式局域网在有限领域已完全取代了共享式局域网。那么,网络中的交换机又是如何转发帧的呢?
另外由于无线信道的广播天性,无线局域网仍然使用的是共享信道技术。比如,802.11局域网采用的媒体接入控制协议是CSMA/CA,也就是载波监听多点接入/碰撞避免。它的工作原理又是怎样的呢?
1.3 总结
■ 数据链路层在网络体系结构中的地位
■ 使用点对点信道的数据链路层
⋄
\\diamond
⋄ 三个重要问题:封装成帧、差错检测、可靠传输
■ 使用广播信道的数据链路层
⋄
\\diamond
⋄ 共享式以太网的媒体接入控制协议CSMA/CD
⋄
\\diamond
⋄ 802.11局域网的媒体接入控制协议CSMA/CA
■ 数据链路层的互连设备
⋄
\\diamond
⋄ 网桥和交换机的工作原理
⋄
\\diamond
⋄ 集线器(物理层互连设备)与交换机的区别
1.4 课后练习
1. 数据链路层传输和处理数据的单位是( D )
A. 报文段 B. 比特流 C. 数据报 D. 帧
分析: 数据链路层以帧为单位传输和处理数据。
2. 下列不属于数据链路层功能的是( D )
A. 封装成帧 B. 差错检测 C. 可靠传输 D. 拥塞控制
分析: 数据链路层功能有封装成帧、差错检测、可靠传输。
3. 共享式以太网的媒体接入控制协议和802.11局域网的媒体接入控制协议分别是 ( A )
A. CSMA/CD, CSMA/CA B. CSMA/CD, CDMA
C. CSMA/CA, CDMA D. CSMA/CA, Wi-Fi
分析: 共享式以太网的媒体接入控制协议为CSMA/CD,也就是载波监听多点接入/碰撞检测。802.11局域网的媒体接入控制协议为CSMA/CA,也就是载波监听多点接入/碰撞避免。
4. 下列属于数据链路层的互连设备是( B )
A. 集线器 B. 网桥和交换机 C. 路由器 D. 网关
分析: 数据链路层的互连设备网桥和交换机。
以上是关于计算机网络—— 数据链路层:数据链路层概述的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络(谢希仁 第七版) 第三章(数据链路层)-- 3.1 使用点对点信道的数据链路层(数据链路层概述 & 数据链路和帧 & 三个基本问题(封装成帧透明传输差错控制))
计算机网络 王道考研2021 第三章:数据链路层 -- 数据链路层功能概述封装成帧和透明传输差错控制(检错编码/纠错编码)
计算机网络湖科大微课堂笔记 p21-23 数据链路层概述封装成帧差错检测