1数据链路层的地位
![](https://i-blog.csdnimg.cn/blog_migrate/9e0d932006e609596ead605ea31418b2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fc24ecf3d2f3face0c4b912c04092981.png)
1.2数据链路层信道的类型
【点对点信道
![](https://i-blog.csdnimg.cn/blog_migrate/9352e410a4ab18f7a36719a2d3e64353.png)
【广播信道
![](https://i-blog.csdnimg.cn/blog_migrate/6e5ca939197e80d45c4f34aabda4a9c7.png)
必须使用专用的共享信道协议来协调这些主机的数据发送
2数据链路层的基本概念
结点:
网络中的主机和路由。
链路(link):
一条无源的点到点的物理线路,中间没有任何其他的交换的结点。
一条链路只是一条通路的一个组成部分。
物理链路
数据链路(data link):
把实际控制数据传输的协议的硬件和软件加到链路上,就构成了数据链路。
逻辑链路。
负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
帧(frame):
链路层的协议数据单元,封装网络层数据报。
3数据链路层的作用
数据链路层在物理层提供服务的基础上向网络层提供服务,最基本的服务是将源自网络层的数据可靠的传输到相邻结点的目标网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理来连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
3.1关于帧
![](https://i-blog.csdnimg.cn/blog_migrate/5a5060c1256b74e33a6d0e027613d209.png)
【帧是数据链路层对网络层数据的封装
3.1.1帧的封装
封装成帧(framing):在一段数据的前后添加首部和尾部,构成一个帧。
首部和尾部的一个重要作用是进行帧定界(确定帧的界限)
![](https://i-blog.csdnimg.cn/blog_migrate/e7f6e9a3a4fe169f35eadcc8362d9c4d.png)
【MTU最大传送单元(Maximum Transfer Unit):
规定了所能传送的帧的数据部分的长度上限。
【用控制字符作为帧的定界符
控制字符SOH(strat of header)放在一帧的最前面,表示帧的开始。
控制字符EOT(end of transmission)放在一帧的末尾,表示帧的结束。
3.2透明传输
【问题提出:如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地找到“帧的边界”,导致错误。
![](https://i-blog.csdnimg.cn/blog_migrate/81f96f4de9b2e726416354474df78332.png)
对“在数据链路层透明传输“的理解:
无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层。
【用”字节填充“或”字符填充“解决”透明传输“的问题
简单来讲就是给”错误的控制字符“前加上一个”首部“来指明它不是边界。
![](https://i-blog.csdnimg.cn/blog_migrate/e42fb5c36611025e7a4860ab481e3a73.png)
3.3差错控制
3.3.1差错的产生
因为传输媒体和外界影响数据在传输