数据链路层的数据传输

数据链路层的数据传输

在数据链路层,数据是以帧的形式传输的。帧由帧首部、数据部分、帧尾部这三个部分组成。帧的数据部分是从网络层传送到数据链路层的IP数据报,为了提高帧的传输效率,应当使数据部分的长度尽可能地大于帧首部和帧尾部的总长度。

但是,每一种链路层都有规定自己的最大传送单元MTUMaximum Transfer Unit),即该链路层所能允许通过最大数据大小(这个参数通常是与通信接口有关,如网络接口卡,串口)。顾名思义,帧首部、帧尾部分别在数据部分前面和后面,如下图:

 

帧首部

帧的数据部分

帧尾部

 

帧首部、帧尾部是由特定的字符所构成,用来标志数据的开始和结束,可统称为帧定界。在数据传输中保证数据的完整性。

当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符SOHStart Of Header),为帧开始符;EOTEnd Of Transfer,意为传输结束,帧结束符。他们的十六进制的编码分别为0104,二进制编码为0000000100000100

 

透明传输

透明传输,是说不管所传的数据是什么样的比特组合,都能在链路上传送。若所传数据的比特组合恰好与某一控制信息一样,则需要采取必要的措施,使得接收端不将其信息误认为控制信息。简单来说,输入的是什么输出的就是什么,保证数据传输的可靠性。

透明传输的方法有比特填充法与字符填充法。

比特填充法:

HDLC是一个面向连接的链路层协议,是广域网中用得最多的链路层协议。其帧结构为:

 

标志字段

Address

Control

Data

Checksum

标志字段

 

帧结构采用零比特填充法。以下是其规定:

1、一个帧中两个标志字符之间不会出现连续的61。而首尾两个标志字符固定设为01111110

2、发送端:发现有连续51,则立即填入一个0

3、接收端:发现有连续51时,则删除其后的0

零比特填充法实现数据报文的透明传输,易于硬件的实现。

 

字符填充法:

因特网的PPP协议(Point-To-Point Protocal)是一种面向无连接的协议。

PPP用在同步传输链路时,采用比特填充法(和HDLC的一样)

PPP用在异步传输链路时,采用的是字符填充法。

如上述讲到的定界符SOHEOT,即为该帧的控制字符,发送端的数据连接层在数据中可能会出现SOHEOT这样字符,所以需要在这些字符的前面加上一个转义字符“ESC”,而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。

 

 

 

 

 

 

    原文作者:zaoxier
    原文地址: https://blog.csdn.net/zaoxier/article/details/53812617
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞