一、差错检测技术
与运输层和网络层一样,链路层也有自己的差错检测技术。链路层的差错检测技术通常有以下三种:
1.奇偶校验
该检测方法的原理是对于d比特的数据,在最后加上1比特的检验比特位,通过调节检验比特位的值使得这d+1比特的数据中1的个数为偶数,接收方检测这d+1比特的数据,判断1的个数,如果不是出现奇数个1,则数据出错。
但这种方法无法检验出出现偶数个1的差错。但经过实验研究证明,出现偶数个错误的概率很低,大多情况下,链路层只会出现单个数据错误。
但现在该方法已经由一维检验拓展到了二维检验,在二维检验应用后,即使同一行出现了偶数个错误,也可以通过列值进行判断
2.检验和方法
检验和方法同运输层和网络层中所描述的那样,即对所有传输报文的数据进行位求和,然后,对溢出的位进行取反操作,求得一个检验和。在接收方的链路层中验证该检验和以判断数据是否出错。
3.循环冗余检测
循环冗余检测技术的原理如下:发送方和接收方协商出一个r+1比特模式,称为生成多项式,表示为G,对于G,其最高有效比特位必须为1,。对于一个给定的数据D,发送方需要选择一个r比特的数据附加在D后面,接收方用之前协商生成的G,对这d+r比特的数据进行取余,若取余结果为0,则数据无误,否则数据出现差错
即发送方发送的数据D应该满足 D*2^r XOR R = nG
二、多路访问协议
所谓的多路访问协议,就是规范多个结点在同一条共享的广播信道上的传输行为的。但是多个结点在共享信道上的传播可能会使某个结点同时接收到多个帧,即在接收接收方发生碰撞行为,此时所有接收到的帧的信号将会纠缠在一起,接收方无法分辨出每个帧的数据。
其中链路层常用的三种多路访问协议是:信道划分协议,随机接入协议和轮流协议
2.1 信道划分协议
信道划分协议的核心思路是按照一定的划分标准对信道进行划分,使得被划分出来的每一个时间帧用于处理一段时间内的不同发送方和接收方的数据传输。
其中划分方式可以分为时分多路复用和频分多路复用。
时分多路复用的信道划分依据是一个特定的时间周期,而频分多路则是按照信道的不同频率来进行划分。
下面以时分多路为例子,来讲解一下信道划分协议的工作原理:
对于划分出来的每一个信道的帧,将其N等分为N个时隙,用于处理不同的发送方-接收方的请求。
如下图所示,可以这么理解,1,2,3,4这四个时隙每一个都用来处理一个特定的发送方-接收方的帧传输,当处理时间达到时隙长度时,换另一组发送方-接收方来进行处理,1,2,3,4循环完一轮后,再次处理1号时隙所对应的发送方-接收方,直到这对发送方-接收方处理完成。在这对发送方-接收方处理完成后,时隙1用来处理别的发送方-接收方。
对于频分多路,原理和时分多路类似,只是划分信道的规则是频率的大小而不是时间的大小。
2.2 随机接入协议
随机接入协议分为无碰撞检测的ALOHA和有碰撞检测的载波侦听多路访问两种:
1)其中无碰撞检测的ALOHA协议工作过程如下:
一个传输结点总是以信道的全部速率进行发送,当有碰撞时,涉及碰撞的每个节点反复地重发它的帧,到该帧无碰撞地通过为止。但是当一个结点历经碰撞的时候,它不必立即重发该帧,而是等待一个随机时延重发该帧,也可以这么理解,在结点检测到某个时隙,帧发送碰撞后,会在这个时隙结束之后以概率P在之后的每个时隙重传该帧,至到其无碰撞地传输出去。
2)有碰撞检测的载波侦听多路访问
在一个帧传输之前,结点会监听此时信道里面是否有其他结点在传输,如果有,则停止传输,循环等待一段时间,直到信道中没有其他结点在进行传输。
相比于前者,后者发生碰撞的情况大大减小,传输的效率也大大提高。
2.3轮流协议
轮流协议主要有轮询协议和令牌传输协议两种。
轮询协议的工作流程:主节点以轮询的方式轮询每个结点,每次轮询的时候会以一个报文的形式告诉当前结点其最多能传输的数量。
令牌传递协议:这种协议没有主节点,而是以一个可以来回传递的令牌来决定谁来进行发送。即一个持有令牌的结点在完成帧的发送后,将令牌随机传输给另一个要有帧要发送的结点中的一个,当且仅当一个结点有数据要发送时,它才可以持有这个令牌,当然,也只有持有令牌的结点才可可以发送数据。