数据链路和帧
链路:是指从一个结点到相邻节点的物理链路(有线或无线),中间没有其他 交换结点。
数据链路:把实现通信协议的软件和硬件加到链路上,就构成了数据链路。
【数据链路 = 通信协议 + 链路】
网络适配器:通常使用网络适配器来实现通信协议
数据链路层的协议数据单元---------帧
网络层的协议数据单元---------------IP数据报(也称分组、包、数据包)
点对点信道数据链路层通信的主要步骤
【假设该点对点信道是节点A与节点B通信】
1.节点A的数据链路层把网络层交下来的IP数据报加上首部和尾部封装成帧
2.节点A把封装好的帧发送给节点B的数据链路层
3.若节点B的数据链路层收到的帧无差错,那么就从收到的帧中提取出IP数据报上交给网络层,否侧就丢弃该帧
数据链路层协议的三个基本问题
封装成帧
1.定义:就是在一段数据的前后添加首部和尾部,构成一个帧
2.作用:根据首部和尾部的标记,就能从收到的比特流中判断出帧的开始和结束
3.长度:一个帧的帧长就等与数据部分长度加上首部和尾部的长度
4.最大传送单元MTU:每种链路层协议所能传送的数据部分长度上限
5.帧定界:首部和尾部的作用就是进行帧定界
6.帧定界符:控制字符SOH表示帧的开始,EOT表示帧的结束
7.当传输开始时,若接收端接收到了SOH帧开始符,而没有接收到EOT帧结束符,那么就会将该段数据丢弃,只有接收到了一个完整的帧,即比特流中有成对的SOH和EOT,才会接受该段数据
透明传输
1.定义:从键盘输入的任何字符都可以放在帧中传输,这样的传输就是透明传输。
2.作用: 在发送帧的过程中,帧中的数据部分可能存在一些某个字节的二进制代码和SOH或EOT控制字符一样,那么在传输过程中数据链路层就会误以为传输完成,从而使接收到的数据产生错误,那么透明传输就是要能识别出数据部分的控制字符,避免传输错误。
【在数据链路层透明传输数据,表示无论什么样的比组合,都能无差错的通过这个数据链路层】
3.字节填充:在发送端的数据链路层的数据中出现的控制字符的前面插入一个转义字符’ESC’,而在接收端的数据链路层在把数据发送到网络层之前把插入的转义字符删除。转义字符就表示其后的控制字符不是控制传输数据的开始或结束。若接收端数据部分出现两个转义字符,那么就之间删除一个转义字符。
差错检测
使用循环冗余检验CRC