为什么需要数据链路层
物理层解决了相邻结点(主机,路由器)透明传输比特的问题,物理层没有解决比特传输出现的错误的问题
一些基本概念
链路:结点间的物理链路。是一条无源的点到点的物理线路段,中间没有任何其他交换结点。一条链路只是一条通路的一个组成部分
数据链路:结点间的逻辑通道。除了物理线路,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件与软件加到链路上,就构成了数据链路。数据链路=链路+协议
帧:链路层协议数据单元,封装网络层的数据报
数据链路层:负责通过一条链路从一个结点向物理链路直接相连的相邻结点传数据报
数据链路层功能
封装成帧
把若干比特打包成帧,便于检错和判断帧的开始和结束(就是在一段数据前后分别添加首部和尾部,构成一个帧,确定帧的界限)。
当数据是由SOH和EOT做头和尾,标记数据的开始和结束
透明传输
成帧标识可作为数据传输
如果数据中包括EOT,就会出现提前结束的错误,为了解决问题,出现字符填充,如果在数据中出现关键字(ESC,SOH,EOT),前面加上ESC(类比转义符)。
差错检测
检测帧的传输中是否有比特错误
在一段时间内,传输错误的比特占总体的比例叫做误码率
二进制的除法就是模二运算
综上:数据链路层在物理层的基础上向网络层提供服务,加强物理层传送原始比特流的功能,对网络层表现为一条无差错的链路,将可能出错的物理连接变为逻辑上无差错的数据链路
信道类型
点对点信道:使用一对一的点对点通信方式,控制协议相对简单
广播信道:使用一对多的广播通信方式,通信过程比较复杂。必须使用专用的共享协议来协调主机的数据发送