文章目录
前言
零、数据链路层基本概念
1、结点:主机、路由器
2、链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
3、数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
4、帧:链路层的协议数据单元,封装网络层数据报。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送网络层给的数据报。
<注意>
在分析数据链路层时,看成水平方向的数据链路层数据传输。
一、功能
0、数据链路层功能概述
概述:
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
<举例>
boosA (网络层)让 秘书A(数据链路层)送一份文件给boosB,秘书A将文件拆分并编号让傻子A(物理层)送到秘书B手上,这个过程物理层可能会丢失数据,根据编号可以把数据重新找回来
功能:
功能一:为网络层提供服务。
无确认无连接服务:通常用于实时通信,误码率较低的信道
有确认无连接服务:步提前建立连接,对方收到会返回一个确认帧。等不到的话就重新发
有确认面向连接服务:最可靠
功能二:链路管理。即连接的建立、维持、释放
功能三:组帧
功能四:流量控制
功能五:差错控制(帧错/位错)
1、封装成帧和透明传输
1.1封装成帧
封装成帧:就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,其中有一样叫:帧定界(确定帧的界限)。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
1.2 透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。(就不用管内容是什么,直接传就完事儿了)
1.3组帧方法
1、字符计数法
就是在帧的首部做计数,这个字符记录了当前帧有多少个字符。
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧比如311和4222,如果前面的帧丢失变成31,那么后面的4就会被补到前面变成314导致错误
2、字符填充法
就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样
解决方法:添加转义字符。即对于那些与标记字符重复的数据流。在它们的前面添加一段转义字符,这祥接收方在解析帧时。看到这些转义字符就不会认为那些特殊的数据当成帧的开始/结束了。