读书频道 > 网站 > 网页设计 > 深入理解计算机网络
5.2.2 数据帧封装和透明传输
13-01-15    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > 深入理解计算机网络

本书是计算机网络领域的扛鼎之作,由有20余年从业经验的优秀网络技术工程师兼全国网管技能水平考试认证专家王达老师撰写,51CTO技术社区鼎力推荐,权威性毋庸置疑。内容方面,本书结合最新计算机网络技术,全面、...立即去当当网订购

我们知道数据链路层位于物理层和网络层之间。在发送端,数据链路层是接收来自网络层的数据分组,而在接收端它是接收来自物理层的比特流,所以数据链路层的成帧功能就包含两方面的含义:一是将来自网络层的数据分组封装成数据帧,二是将来自物理层的一个个比特流组装成数据帧。因为帧封装(将物理层比特流组装成帧时,称为帧同步)通常是与透明传输一起考虑并实现的,所以在此一并介绍。不过本节仅介绍其基本原理,在本章后面还会结合具体的数据链路层协议详细介绍这些帧封装和透明传输原理。

1.数据包的帧封装原理

通过前面的学习我们就已经知道,网络层传输的包(packet,又称分组),在数据链路层中传输的是“帧”(frame)。数据包到达数据链路层后加上数据链路层的协议头和协议尾就构成了一个数据帧。在每个帧的前部加上一个帧头部,在帧的结尾处加上一个帧尾部,把网络层的数据包作为帧的数据部分,就构成了一个完整帧。帧头和帧尾就是作为帧的起始和结束标志,也就是帧边界,如图5-6所示。


 

由数据包封装成的数据帧其大小是受对应的数据链路层协议的MTU(最大传输单元)限制的,如以太网数据链路层封装网络层IP包的MTU值为1500字节(这是指帧中数据部分,也就是来自网络层整个数据分组,最大不能超过1500字节,但不包括帧头和帧尾部分)。同时,帧还有最小大小限制,如以太网帧中封装的IP包最小值为46字节,如果封装的IP包小于最小帧要求时,就要用一些特殊字符进行填充,以满足对应链路中传输最小帧的限制。

2.比特流的帧组装及透明传输原理

在发送端数据链路层中的帧到达物理层后就会以比特位为单位进行传输,而不是以帧为单位进行传输。尽管在并行传输方式中,可以一次传输一个或多个字节,但每条线路中的传输单位还是比特位。发送端以比特位方式一位位地传输到接收端的物理层,然后接收端的物理层把比特流向数据链路层传输,到达后又要将比特流封装成数据帧,这就是数据链路层的帧组装方式了,其实也就是我们前面提到的帧同步问题。帧同步的目的就是要使接收端的数据链路层对从物理层传输而来的一串串比特流以帧为单位进行区分。

本节先简单介绍以下几种常用的帧同步方法的基本同步原理:字节计数法、字符填充的首尾定界符法、比特填充的首尾定界符法、违法编码法。本章的后面在介绍具体的数据链路层协议时还将具体介绍它们所采用的同步方法。

(1)字节计数法

这是一种以一个特殊字符代表一个帧的起始,并以一个专门的字段来标识当前帧内字节数的帧同步方法。接收端可以通过对该特殊字符的识别从比特流中区分出每个帧的起始,并从专门字段中获知每个帧后面跟随的“数据”(Data)字段的字节数,从而可确定出每个帧的结束位置。

这种面向字节计数的同步规程的典型实例是DEC公司的DDCMP(Digital Data Communications Message Protocol,数字数据通信报协议)。在DDCMP协议通信中,数据是在源站点与从站点之间以编号的数据消息的形式进行交换的,而从站点是以未编号的响应和控制消息的形式向主站点返回的。下面看看在这个协议的数据帧中如何实现帧同步,或者是如何成帧的:

在DDCMP协议帧格式(如图5-7所示)中,SOH字段是一个帧的帧头开始部分,有其固定的值(十进制为129,八进制值为201,十六进制值为81),就相当于一个帧开始的特殊字符;在NUM字段中为每个数据帧分配一个编号,从“1”开始,并以“1”为增量进行递增,最大值为256(也就是模为256),以确保在从站点中的正确消息序列,同时在COUNT字段中指出本数据帧中DATA字段的大小,这些都是用来进行帧同步的。


 

(2)字符填充的首尾定界符法

该同步方法是用一些特定的控制字符来定界一个帧的起始与结束,如IBM的BSC协议在每个数据块的头部用一个或多个同步字符“SYN”来标记数据块的开始;尾部用字符“ETX”来标记数据决的结束。图5-8所示的是要传输一个“ADFGJ”的字符串,在帧的头部加上了两个SYN控制字符,用于标识该帧的开始,在结束位置加了ETX控制字符,用于标识该帧的结束。


 

另外,为了不使数据信息中与以上特定字符相同的字符被误判为帧的首尾定界符,可以在这种数据帧的帧头填充一个转义控制字符(DataLinkEscape-StartofTeXt,DLE),这就属于“透明传输”的范围了,这部分内容将在本章后面介绍具体的数据链路层协议时介绍。

(3)比特填充的首尾定界符法

该帧同步方法是通过在帧头和帧尾各插入一个特定的比特串(如01111110)来标识一个数据帧的起始与结束,这个帧头、帧尾特定比特串称为帧标志符。如传输的比特流为1001110101,组装成帧后就是01111110100111010101111110。

而为了透明传输,也就是为了避免在信息位中出现的与帧起始和结束标志符相似的比特串时被误判为帧的首、尾标志,采用了比特填充的方法。比如上面采用的特定模式为01111110”,则对信息位中的任何连续出现的5个“1”(因为帧标志符中是有5个连续“1”),发送端自动在其后插入一个“0”。如要传输的数据帧为“0110111111011111001”(因为其中有5个连续的“1”,很可能被误认为是帧首、尾标志),采用比特填充后,实际传送的是0111111001101111101011111000101111110(注意,前、后面两个“01111110”是帧首、尾标志符)。另外,因为在原信息中,有一段比特流与帧标志符类似,为了与用于标识帧头和帧频尾的特定模式字符区别,在有5个连续“1”的比特位后面加插入一个“0”(斜体“0”)。而接受方在收到上述最终数据后进行发送端的逆操作,首先去掉两端的特定模式字符,然后在每收到连续5个“1”的比特位后自动删去其后所跟的“0”,以此恢复原始信息。比特填充帧同步方式很容易由硬件来实现,性能优于字符填充方式。所有面向比特的同步控制协议均采用统一的帧格式,不论是数据,还是单独的控制信息均以帧为单位传送,其典型代表是ISO的HDLC协议,在它的首尾均有标志字段(Flag,8位,即0111110),具体将在本章后面介绍。

(4)违法编码法

该帧同步方法是在物理层采用特定的比特编码方法时采用。例如,曼彻斯特编码方法,将数据“1”编码成“高-低”电平对(在半个码元处跳变,下同,具体参见4.4.2节),将数据“0”编码成“低-高”电平对。而高-高电平对和低-低电平对在数据比特中是违法的,因此可以借用这些违法编码序列来定界帧的起始与终止。违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适用于采用冗余编码的特殊编码环境。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站