第3章-数据链路层
数据链路层属于计算机网络的底层,使用的信道主要有以下两种类型:
-
点对点信道:这种信道使用一对一的点对点通信方式;
-
广播信道:这种信道使用一对多的广播通信方式。
数据链路层的作用:
-
传输数据时:数据链路层将网络层交下来的 IP 数据报组装成帧(framing),在两个相邻节点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(同步信息、地址信息、差错控制等)。
-
接受数据时:控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样数据链路层在收到一个帧后,就可以从中提取出数据部分,上交给网络层。
【补】物理层的作用:
- 在向上传输的时候尽可能地屏蔽掉种类繁多的硬件设备和传输媒体通信手段的差异,使物理层上面的数据链路层感觉不到这些差异,这样就可以使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体和通信手段是什么。
本章重点
- 数据链路层的点对点信道 和 广播信道的特点,以及这两种信道所使用的协议(PPP协议 以及 CSMA/CD协议)的特点;
- 数据链路层的三个基本问题:封装成帧、透明传输 和 差错检测;
- 以太网 MAC层的硬件地址;
- 适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。
3.1-使用点对点信道的数据链路层
3.1.1-数据链路 和 帧
【注】数据链路(data link) 和 链路(link) 不是一回事。
- 链路:从一个结点到相邻结点的一段物理线路(有线或无线,比如一根网线就是),而中间没有任何其他交换结点。链路只是一条路径的组成部分。
- 数据链路:在线路上传输数据时,除了必须有一条物理线路外,还需要有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。(最常用的有网络适配器,既有硬件、也包括软件)
帧——数据链路层的协议数据单元
- 接受数据时:数据链路层把网络层交下来的数据构成帧发送到链路上
- 传输数据时:把在物理层接收到的帧中的数据取出并上交给网络层。
在互联网中,网络层协议数据单元就是 IP 数据报(或简称为 数据报、分组 和 包)。
点对点信道的数据链路层在进行通信时的主要步骤(如上图a):
- 节点A的数据链路层把网络层交下来的 IP数据报添加首部和尾部封装成帧;
- 节点A把封装好的帧发送给结点B的数据链路层;
- 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出 IP数据报交给上面的网络层;否则丢弃这个帧。
数据链路层不必考虑物理层如何实现比特数据流传输的细节。我们甚至可以简化为上图b。
3.1.2-三个基本问题(功能)
数据链路层协议有很多种,但大致为:
- 封装成帧;
- 透明传输;
- 差错检查。
1.封装成帧
就是在一段数据的前后分别添加 首部 和 尾部,这样就构成了一个帧。接收端在收到的物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
一个帧的帧长=帧的数据部分长度 + 帧的首部长度 + 帧的尾部长度。
首部和尾部的一个重要的作用就是帧定界(即确定帧的界限),此外首部和尾部包括一些重要的控制信息。在帧中 最大传输单元MTU(Maximum Transfer Unit)限制了数据部分长度上限。