数据链路层(上)



一、数据链路层的功能

链路层的主要功能包括链路管理、帧同步、流量控制、差错控制、数据和控制信息分开、透明传输和寻址。

数据链路层传输的是数据帧。

MTU:数据链路层的数据帧长;SOH:帧开始字符;EOT:帧结尾字符;


二、如何解决传输过程中的“透明传输”?

1、零比特填充

基本原理:将需要传输的数据块看作比特序列,在数据块前和后各加入一个特殊的比特序列(前文位模式和后文位模式,01111110),表示数据块的起始和结束,从而构成最终传输的帧。

注意:只要出现了5个连续的1,则必须加上一个0

2、面向字符的填充方法

基本思想,把需要传输的数据块看作字符序列,在数据块前和后各加入一个特殊点额字符序列(前文字符模式和后文字符模式,Ox7E),表示数据块的起始和结束,从而构成最终传输的帧。


三、差错控制

1、检错编码

在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术。【冗余计算】

在数据后面添加的冗余码,称为帧检验序列FCSFrameCheck Sequences


2、纠错编码

当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,Bell实验室的R.W.Hamming发明,因此定名为汉明码。


四、流量控制和可靠传输机制

1、停止-等待协议

空闲RQ:发送窗口=1,接收窗口=1;

累积确认


2、后退N帧协议(GBN)

GO-DACK-N策略的基本原理是,当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。这就是GO-DACK-N(退回N)法名称的由来。

Go-back-N: 发送窗口>1,接收窗口>1;


3、选择重传协议(SR)

另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICEREPEAT)

选择重发:发送窗口>1,接收窗口>1