数据链路层--数据帧以及帧同步

1.帧传输:

    数据链路层是在物理层所提供的服务的基础上向网络层提供服务。物理层是以比特流进行传输的,并不能保证在传输中数据的可靠性,接收到的数据可能与发送的数据有差异。而数据链路层为了对数据进行有效的差错控制,就采用一种“帧”的数据块进行传输。而采用帧格式传输,就必须有相应的帧同步技术。

    采用帧传输方式的好处是:在发现有数据传送错误时,只需要将有差错的帧再次传送,而不需要将全部数据的比特流进行重传,这将会大大提高传送效率。而相应的采用帧传输就会带来帧同步、帧定界、透明传输的步骤。

2.帧同步:

     帧同步:接收方确定收到的比特流中一帧的开始位置与结束位置。

3.帧同步的方法:

    网络中是以帧为最小单位进行传输的,所以接收端要正确的接收到帧,必须要清楚该帧在一串比特流中的开始和结尾,所以在组帧的时候既要加首部,也要加尾部。PS(而分组,即IP数据报仅仅是包含在帧的数据部分,所以不需要加尾部来定界,只需要添加首部就行了)

帧同步的方法有以下四种:

1.字符计数法:字符计数法是用一个特殊的字符来表示一帧的开始,然后用一个计数字段来表明该帧包含的字节数。当目的主机接收到该帧时,根据此字段提供的字节数,便可知道该帧的结束位和下一阵的开始位。

字符计数法

注:计数字段提供的字节数包含自身所占的一个字节

字符计数法存在的问题:如果计数字段在传输中出现差错,接收方就无法判断所传输帧的结束位,当然也无法知道下一帧的开始位,这样就无法帧同步了。所以字符计数法很少被使用。

2.字节填充的首尾界符法:

这种方法使用一些特殊的字符来定界一帧的开始和结束,为了不将信息中出现的特殊字符被误判为帧的首尾定界符,可以在前面定义一个转义符(DLE)来区分。(面向字符的同步规程-BSC)

用DLE  STX 标示帧的开始

用DLE  ETX 标示帧的结束

用DLE  DLE 标示传输数据中的DLE.

例如:DLE  STX A DLE B DLE ETX 在传输中表示为:

DLE  STX DLE DLE STX A DLE DLE B DLE DLE ETX DLE ETX

3.比特填充的首尾标志法:

比特填充的首尾标志法是使用01111110作为帧的开始和结束标志,如果帧数据部分出现01111110(即连续的6个“1”),只要数据帧检测到有5个连续的“1”,马上在其后插入“0”,而接收方做该过程的逆操作即可。

模拟过程:

⑴原始数据:0110101111110010111111011

⑵零比特填充后的数据:01101011111010010111110101(加黑的0表示填充的0)

⑶接收方收到的数据,一旦遇到5个连续的“1”就将后面的“0”去掉

4.物理编码违例法:

物理编码违例法利用物理介质上编码的违法个标志来区分帧的开始和结束,例如,在曼彻斯特编码中,码元1编码成高-低电平,码元0变成成低-高电平,而高-高和低-低电平的编码方式是无效的,可以分别用来作为帧的起始标志和结束标志。

注意:

    ⑴ 在使用字节填充的首尾界符法时,并不是所有形式的帧都需要帧开始符和帧结束符,如MAC帧就不需要帧结束符。因为以太网在传送帧时,各帧之间还必须有一定的间隙,所以,接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个MAC帧,可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。

    ⑵ PPP帧用来进行帧定界的字段为Ox7E。

你可能感兴趣的:(数据链路层--数据帧以及帧同步)