购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 数据链路层概述

数据在数据链路层中以点对点的方式进行传输。向上为网络层提供支持,并对网络层负责,将无差错的数据帧传送给网络层(物理层没有差错控制的功能),对上层提供数据支持,如图3-1所示。可以看到,网络设备工作在网络层及以下各层,并支持各层的协议。通过相同的协议,可以在不同的网络设备间传输数据。每层的数据只有对应层能够读懂和使用。

图3-1

链路指的是一条无源的点到点的物理线路段,中间没有其他的交换节点。原始的链路是指没有采用高层差错控制的基本的物理传输介质与设备,而数据链路,指除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路,最常见的软硬件结合体就是网卡了。

数据链路层定义了在单个链路上如何传输数据。数据链路层使用“帧”完成主机间、对等层之间的数据可靠传输,如图3-2所示。数据链路层对流量进行有效的控制。因为物理层总会有这样或者那样的问题,而数据链路层的作用就是使数据进行可靠传输,在网络层看来,就是一条无差错的链路。

图3-2

如节点A向节点B发送数据,数据链路层的主要作用有:链路的建立、维护、拆除;帧的包装、传输、同步、差错控制及流量控制。

知识点拨

数据链路层的信道类型

数据链路层的信道有点对点的、一对一的通信方式,还有一对多的广播式。

1.数据链路层专注的问题

数据链路层主要关注的问题有:

2.数据链路层的分层

为了使数据链路层更好地适应多种局域网标准,IEEE 802委员会将局域网的数据链路层拆分成两个子层:

图3-3

3.数据链路层解决的问题

数据链路层主要解决3个问题,这也是此层最主要的使命。

(1)封帧。

数据链路层的任务首先是将网络层的数据报文按照帧结构封装成帧。封装方法非常简单,在数据报前后分别添加首部和尾部标志信息,并且确定帧的范围,也就是给帧定界,如图3-4所示。这样接收端在收到帧后,就会知道帧的范围,从而完成帧的正确提取。封帧的4种常见方法是:字符计数法、字符(节)填充法、零比特填充法、违规编码法。

图3-4

知识点拨

最大传输单元

最大传输单元(Maximum Transmission Unit,MTU),用来通知对方自己所能接受数据服务单元的最大尺寸,说明发送方能够接收有效载荷的大小,是包或帧的最大长度,一般以字节为单位。如果MTU过大,在遇到路由器时会被拒绝转发,因为它不能处理过大的包;如果太小,因为协议一定要在包(或帧)上加上包头,实际传送的数据量就会过小,浪费带宽。大部分操作系统会提供给用户一个默认值。

比如MTU设置为1500字节,如果发送了一个2000字节的包,会被拆分成1500字节+500字节的两个包,再加上头信息进行传输。默认的以太网帧是1518字节,是由14字节的头信息,1500字节的包,以及4字节的帧校验序列(Frame Check Sequence,FCS)组成。

零比特填充法:发送时,扫描到5个1,立即加入0。接收端扫描到5个1,则删除后面的0。

字符填充法:发送时,扫描数据,如发现“SOH”或“EOT”则在其前方插入一个转义字符“ESC”,接收端在接收后,扫描到“ESC”,则删除该字符。那么如果数据中有“ESC”该怎么办呢?很简单,再加一次转义字符“ESC”。整个过程如图3-5所示。

图3-5

其他两种封帧方法,有兴趣的读者可以查看相关资料。

(2)透明传输。

透明传输指不管传输的数据是什么样的组合,都可以在链路上传送。要达到这个目标,就需要在处理链路数据时解决各种错误以及一些不算错误的误判断,如在数据中,正好存在与控制信息相同的数据段,如图3-6所示,帧就会被错误地对待。只有处理了这些问题,才能真正做到透明传输。借助于封帧方法,就可以解决透明传输中产生的问题。

图3-6

(3)差错检测。

差错的产生有几种,包括传输中的比特差错,就是1和0的错误,在一段时间内,如果网络信噪比比较大,就会产生这种问题,所以必须采用各种差错检测措施。

在数据链路层中,传输的是数据帧,所以,检测帧就是差错检测的主要目标了。包括广泛使用的循环冗余检验(CRC)检错技术。在数据后面添加的冗余码称为帧校验序列。

循环冗余检验和帧校验序列技术并不等同。循环冗余检验是一种常用的检错方法,而帧校验序列技术是添加在数据后面的冗余码。帧校验序列可以用循环冗余检验这种方法得出,但循环冗余检验并非是获得帧校验序列的唯一方法。

循环冗余检验技术可以做到无差别接受,就是基本上认为这些帧在传输中没有产生差错(有差错的会被丢弃而不接受)。但要做到可靠传输,还需要加上确认和重传机制。 mpvzgVf4mFHR47v+Z7Am+vY8TFBpH9KJCaKXmYGZkzUUc5q3Suan7ug6M/Q8m7ud

点击中间区域
呼出菜单
上一章
目录
下一章
×