概述
数据链路层属于计算机网络的低层,数据链路层使用的信道的类型有以下两种:
(1)点对点通信:这种信道使用一对一的点对点通信方式
(2)广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂,广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
下图表示数据从主机H1传送到主机H2需要在路径中的各结点的协议栈向上和向下流动多次:
如果只考虑数据链路层:
数据链路
数据链路
:当需要在一条线路上传送数据时,除了必须要有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输,若把这些协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用网络适配器来实现这些协议的硬件和软件,一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路中的封装成帧、透明传输、差错检测
1. 封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
2. 透明传输
帧在传输过程中,帧头有一个SOH帧定界控制字符,帧尾有一个EOT帧定界控制字符,如果帧中间出现帧尾EOT相同标识符的内容时,帧就会舍弃该内容之后的报文,这样传输就出现错误,为了避免这种情况的发生,就必须设法将数据中可能出现的字符‘SOH’,’EOT’在接收端不被解释为控制字符。
具体的做法是:发送端的数据链路层在数据中出现控制字符”SOH”,“EOT”的前面插入一个转义字符”ESC”,而在这种方法称为字节填充或字符填充,如果转义字符也出现在数据中,那么解决方法仍然是在转义字符前面插入一个转义字符,因此,当接收端收连续两个转义字符时,就删除其中前面的一个。
3. 错误检测
数据链路层主要使用循环冗余检验CRC检测技术
OSI的观点是必须把数据链路层做成是可靠传输的,因此在CRC检错的基础上,加上了帧编号、确认和重传机制。收到正确的帧就要向发送端发送确认,发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。
信道分类
1.点对点信道
点对点通信是一对一信道,因此不会发生碰撞,因此比较简单,采用PPP协议;其中PPP协议就是用户计算机和ISP(互联网服务提供商)进行通信时使用的数据链路层的协议;
点对点信道的数据链路层在进行通信时的主要步骤为:
- 结点A的数据链路层把网络交下来的IP数据报添加到首部和尾部封装成帧;
- 结点A 把封装好的帧发送给结点B的数据链路层
-
若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层,否则丢弃这个帧;
数据链路层不必考虑物理层如何实现比特传输的细节,甚至可以简单的设想好像是两个数据链路层之间的水平方向把帧直接发送到对方。
点对点协议PPP
目前使用最广泛的数据链路层协议:PPP
(1) PPP协议的组成:
- 一个将IP数据报文封装到串行链路的方法,PPP既支持异步链路,也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度就是受最大传送单元MTU的限制。
- 一个用来建立、配置和测试数据链路的链路控制协议LCP
- 一套网络控制协议NCP,其中每一个协议支持不同的网络层协议。
(2) PPP协议的需求
- 简单
- 封装成帧:必须规定特殊的字符作为帧定界符
- 透明性:保证数据传输的透明性
- 多层网络层协议 :必须能在同一条物理链路上同时支持多种网络层协议的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。
- 差错检测
- 检测连接状态
- 最小传送单元
- 网络层地址协议
- 数据压缩协商
(3) PPP帧格式
2.广播信道
广播信道是一对一信道,一个节点发送的数据能够被广播信道上所有的节点接收到;
所有节点都在同一个广播信道上发送数据,因此需要专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞);
主要有两种控制方法进行协调,一种是使用信道复用技术(物理层技术);另一种是使用CSMA/CD协议
;
CSMA/CD是数据链路层中最重要的一个协议,是载波监听多点接入/碰撞检测的缩写;
- 多点接入:是总线型网路,许多计算机在以多点接入的方式连接子在一根总线上,协议的实质是:载波监听和碰撞检测;
- 载波监听:在发送前监听,每一站在发送数据前先要检测一下总线上是否有其他站在发送数据,如果有,则暂时不发送数据,要等待信道变为空闲时在发送;
- 碰撞检测:边发送边检测,适配器边发送数据边检测信道上的电压的变化情况,以便判断自己在发送数据时其他数据时其他站是否也在发送数据。
MAC地址
MAC地址是数据链路层的地址,长度为6字节(48位),用来唯一标志网络适配器(网卡);
一台主机有多少个网络适配器就有多少个MAC地址,只要电脑的适配器不发生变化吗,那么MAC地址也不随电脑位置的变化而变化;
局域网
局域网是一种典型的广播信道,主要特点是网路为一个单位所拥有,且地理位和站点数目均有限,主要有以太网、令牌环网、FDDI、和ATM等局域网技术,目前以太网占领着有线局域网市场,按照网络拓扑结构可以对局域网分成星型、环形和直线型。
以太网
以太网是一种星型拓扑结构的局域网,早期使用集线器进行连接,目前使用交换机代替集线器,交换机是一种链路层设备,他不会发生碰撞,能够根据MAC地址进行存储转发;
以太网的扩展:
- 物理层:扩展主机和集线器之间使用光纤和一对光纤调制解调器;
- 数据链路层:使用网桥;根据MAC帧目的地址对收到的帧进行存储和转发;
参考书籍:计算机网络第五版谢希仁编著