数据链路层
作者:互联网
数据链路层
数据链路层的功能
研究OSI七层网络中某一层时,一般只需要关注其中一层就可以,即可以认为,数据是在水平方向传递的(如上图)
数据链路层的基本概念
-
结点:主机、路由器
-
链路:结点间的物理通道。是⼀条⽆源的点到点的 物理线路段(双绞线、光纤等),中间没有任何其 他交换结点。⼀条链路只是⼀条通路的⼀个组成部分。
-
数据链路:是结点间的逻辑通道。除了物理线路以 外,还必须有通信协议来控制这些数据的传输。若 把实现这些协议的硬件和软件加到链路上,就构成 了数据链路。
数据链路 = 链路 + 协议
-
帧:链路层协议数据单元,封装⽹络层的数据报。
-
数据链路层:负责通过⼀条链路从⼀个结点向 物理链路直接相连的相邻结点传送帧。
⽹卡实现的物理层和数据链路层协议.
链路中通信双⽅的信道使⽤形式不同,会相应有 不同的控制协议.
数据链路层信道类型
-
点对点信道: 这种信道使⽤⼀对⼀的点对点通信⽅式,控制协议相对简单
-
⼴播信道:使⽤⼀对多的⼴播通信⽅式,通信过程⽐较复杂。⼴播信道上 连接的主机很多,因此必须使⽤专⽤的共享协议来协调这些主 机的数据发送,控制协议相对复杂
为什么需要数据链路
-
物理层解决了相邻结点透明传输⽐特的问题。
-
物理层没有解决的问题:
- 传输错误问题,发送端发送⽐特1,⽽接收端收到⽐特 0,接收端⽆法知道接收的是否正确?
- 谁接收的问题,多个设备连接问题:谁能发送数据?数据发送给谁?谁负责接收和处理?
- 传输结束问题,如何知道⼀组数据即将到来?这组数据何时结束?
功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路
- 功能一:为网络层提供服务。无确认无连接服务、有确认无连接服务、有确认面向连接服务。(有连接一定有确认!)
- 功能二:链路管理,即连接的建立、维持、释放 (用于面向连接的服务)。
- 功能三:组帧。
- 功能四:流量控制。
- 功能五:差错控制(帧错、位错)。
封装成帧
封装成帧 (framing) 就是在⼀段数据的前后分别添加⾸部和尾部, 然后就构成了⼀个帧。⾸部和尾部的⼀个重要作⽤就是进⾏帧定 界,确定帧的界限。
如何成帧?
-
字符计数法
问题: 如果第一个帧的计数字段出现错误,那么后继的都帧都会出错,这样就会造成灾难性后果,所以这种方式已经不常用。
-
当数据是由可打印的 ASCII 码组成的⽂本⽂件时,帧定界可以使⽤特殊的帧定界符。 控制字符SOH (Start Of Header) 放在⼀帧的最前⾯,表示帧的⾸部开始,控制字符 EOT (End Of Transmission) 表示帧的结束。
ASCII表
存在问题
如果数据中的某个字节的⼆进制代码恰好和 SOH 或 EOT ⼀ 样,数据链路层就会错误地“找到帧的边界”,这样就会造成无法实现透明传输。如下图
透明传输
概念和存在问题
透明传输 是指无论所传输的数据是什么样的比特组合,都应当可以在链路上正确的传输。但是数据传输往往会存在一些问题,这些问题的存在就会导致数据无法实现透明传输。所以就需要一些手段来保证数据能够在链路上实现透明传输。
解决办法
字节填充 (byte stuffing) 或字符填充 (character stuffing)
- 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前⾯ 插⼊⼀个转义字符“ESC”;
- 接收端的数据链路层在将数据送往⽹络层之前删除插⼊的转义字 符;
- 如果转义字符也出现在数据当中,那么应在转义字符前⾯插⼊⼀个 转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中 前⾯的⼀个
数据链路层的两种信道
局域网、广域网
链路层的设备
标签:结点,传输,信道,链路,数据,链路层 来源: https://www.cnblogs.com/xysgo/p/16054131.html