文章目录
- 前言
- 3.1 数据链路和帧
- 3.1.1 数据链路和帧
- 3.1.2 三个基本问题
- 总结
前言
上篇文章,我们一同学完了物理层的全部内容,在本篇文章中,我们初步学习数据链路层,理解数据链路和帧的相应概念,知晓封装成帧,透明传输,差错检测的含义。
3.1 数据链路和帧
3.1.1 数据链路和帧
链路是从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。
数据链路则不同。这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必须要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路,现在最常用的方法是使用网络适配器来实
现这些协议。
也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路。物理链路就是链路,逻辑链路就是数据链路,是物理链路加上必要的通信协议。
早起的数据通信协议层叫做通信规程。
点对点信道的数据链路层的协议数据单元——帧。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在互联网中,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。
点对点信道的数据链路层在进行通信时的主要步骤如下:
(1) 节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
(2) 节点A把封装好的帧发送给节点B的数据链路层。
(3) 若节点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。
3.1.2 三个基本问题
三个基本问题是:封装成帧、透明传输和差错检测
1、封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
图中表示用帧首部和帧尾部封装成帧的一般概念
网络层的IP数据报传送到数据链路层就称为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,构成一个完整的帧。这样的帧就是数据链路层的数据传送单元。一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。首部和尾部的一个重要作用就是进行帧定界。此外,首部和尾部还包括许多必要的控制信息,在发送帧时,是从帧首部开始发送的。各种数据链路层协议都对帧首部和帧尾部的格式有明确的规定。
为了提高帧的传输效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度。但是,每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU。
当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。
由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧。
2、透明传输
由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
如图:如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地“找到帧的边界”,把部分帧收下,而把剩下的那部分数据丢弃。
总结
这周前几天身体不适,先发出一部分,明天争取更完。