前言
物理层的主要目的是实现比特流的透明传输,为数据链路层提供服务;物理层接口(协议)解决了用几根线,多大电压,每根线什么功能,以及几根线之间怎么协调的问题;物理层介质解决了数据载体材质以及价格优缺点问题;通信技术解决了每根导线上数据传输的速度和导线上最快能传多少以及怎么更高效的使用导线的问题(分);编码解决了数据变为电信号的问题;交换技术解决了数据远距离传输的问题;
物理层已经解决了这么多问题,链路层是不是可以偷懒呢?答案当然是否定的,如果可以的话就没有这一层了哈哈;虽然物理层已经解决了这么多的问题,但是它传输的数据还是不够准确,那我们链路层的目标就是让物理层的数据传输更加可靠,更加准确。
数据链路层是干什么的?
数据链路层是物理层和网络层的中间层,保证网络层的数据能可靠的透明的在物理层传输。
实现可靠性
1、将数据组合成帧
2、控制帧在物理层的传输
3、网络实体间数据链路通路的管理(建立,维持,释放)
为什么数据要组合为帧
为了防止传输错误之后都要重新传输,为了减少重新传输的数据量,所以规定了一个基本传输单位,起名叫“帧”。
什么是帧同步
帧同步指的是接收方应当能从接收到的二进制比特流中区分出帧的起始与终止。
为什么需要帧同步
很简单如果不同步的话怎么知道你传输的哪块是有用的数据啊。
帧同步的实现
- 字符填充首位界定法
- 比特填充法
- 违法编码法
- 字节计数法
帧同步之后就可以知道哪块信息是你要传输的有用的信息了,直接读取就好了。但是咱们链路层要做的还有很多,更重要的是可靠性还没有体现出来,可靠性必须要有检错部门,这就是差错控制了。
什么是差错控制
你给我发的东西不正确,我告诉你一声,你再给我发一份正确的,如果还是错的我还告诉你直到你发给我的都是正确的为止,这就是差错控制。但是有时候你给我发的东西丢失了,你就估计一下时间,如果我没有给你回复说明这些东西没有发到我这里,时间到了就再给我发一份。
为什么需要流量控制
在链路层有时候数据发送设备和接收设备的性能不尽相同,如果发送方能力过强接收方稍有不济就可能出现供过于求然后帧丢失的情况,这样的话必然不行,所以就有了流量控制。
如何进行流量控制呢?
通过一个反馈机制告诉发送方我已经接收不了那么多了让发送方歇一会儿。有两个方案:
- 停止等待(你发完一个等我给你回复你才能发下一个)
- 滑动窗口(发送方确定一个待确定的最大限度,如果你发了很多都没有接到我的回复,然后等没有接到回复到达一定限度的时候就停止发送直到能再次收到我给你发的收到确认)