计算机网络---数据链路层HDLC协议
定义:HDLC(High-Level Data Link Control,高级数据链路控制),是链路层协议的一项国际标准,用以实现远程用户间资源共享以及信息交互。HDLC协议用以保证传送到下一层的数据在传输过程中能够准确地被接收,也就是差错释放中没有任何损失,并且序列正确。HDLC协议的另一个重要功能是流量控制,即一旦接收端收到数据,便能立即进行传输。
HDLC协议由ISO/IEC13239定义,于2002年修订,2007年再次讨论后定稿。在通信领域中,HDLC协议应用非常广泛,其工作方式可以支持半双工、全双工传送,支持点到点、多点结构,支持交换型、非交换型信道。
在通信质量较差的年代,在数据链路层使用可靠传输协议曾经是一种好的办法。因此,能实现可靠传输的高级数据链路控制(HDLC)就成为当时比较流行的数据链路层协议。
HDLC协议的基本特点
HDLC协议使用统一的帧格式,运用方便;采用零比特插入法,易于硬件实现,且支持任意的位流传输,实现信息的透明传输;全双工通信,吞吐率高,在未收到应答帧的情况下,可连续发送信息帧,提高数据链路传输的效率;采用CRC帧校验序列,可防止漏帧,提高信息传输的可靠性。
主要有四个特点:
-
对于任何一种比特流都可透明传输。
-
较高的数据链路传输效率。
-
所有的帧都有帧校验序列(FCS),传输可靠性高。
-
用统一的帧格式来实现传输。
高级数据链路控制(HDLC)协议是ISO制定的面向比特(PPP是面向字节的)的数据链路控制协议。它可适用于链路的两种基本配置:非平衡配置和平衡配置。
-
非平衡配置的特点是由一个主站控制整个链路的工作。
-
平衡配置的特点是链路两端的两个站都是复合站,每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的允许。
HDLC基本配置
HDLC协议定义了3种类型的站、2种链路配置和3种数据传输方式。3种类型的站如下:
-
主站:主站发出的帧叫命令帧,负责对链路进行控制。
-
从站:从站发出的帧叫响应帧,在主站的控制下进行操作。
-
复合站:既具有主站的功能,也有从站的功能,既可以发送命令帧,也可以发送响应帧。
2种链路配置如下:
(1)非平衡配置。既可用于点对点链路也可用于多点链路。这种链路由一个主站和多个从站组成,可以支持全双工或半双工。
(2)平衡配置。只能用于点对点链路。这种配置由两个复合站组成,同样支持全双工或半双工传输。
3种数据传输方式如下:
正常响应方式(Normal Response Mode,NRM):这种方式适合不平衡配置,主站启动数据传输过程,从站只有收到命令时才能发送数据。
异步平衡方式(Asynchronous Balanced Mode,ABM):这种方式适合两端都是复合站的平衡配置,任何一方都可以启动数据传输。
异步响应方式(Asynchronous Response Mode,ARM):这种方式适合不平衡配置,从站在没有收到主站命令时,就可以启动数据传输服务。
HDLC协议的帧格式
当采用HDLC协议时,从网络层交下来的分组,变成了HDLC协议帧的数据部分,数据链路层在信息字段的头尾各加上24位控制信息,这样就构成了一个完整的 HDLC协议帧,如图所示。
标志字段(F):占 8位,为“01111110”,首尾各有一个“0”作为帧的边界。为防止在两个标志字段F之间出现“01111110”,HDLC使用比特填充的首尾标志法。当一串比特流未加上控制信息时,扫描整个帧,只要发现有5个连续“1”,就立即填入一个“0”。
地址字段(A):占8位。若使用非平衡方式传送数据,为次站的地址;若使用平衡方式传送数据,为确认站的地址。全“1”为广播方式,全“0”为无效地址。
控制字段(C):占8位,最复杂的字段,HDLC 的许多重要功能都靠控制字段实现。根据其最前面两位的取值,可将 HDLC 帧划分为3类:信息帧(I帧)、监督帧(S帧)和无编号帧(U帧)。
3类帧的记忆方式,每当看到HDLC帧的分类就想到“无监息”=“无奸细”。
信息帧用来传输数据信息,或使用捎带技术对数据进行确认和应答;监督帧用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能;无编号帧用于提供对链路的建立、拆除以及多种控制功能。
信息字段(Info):长度任意,存放来自网络层的协议数据单元。
帧检验序列(FCS):占16位,即循环冗余码检验中的冗余码。检验区间包括地址字
段、控制字段和信息字段.
补充知识点:PPP的帧格式和HDLC协议的帧格式的区别
解析:① PPP是面向字节的,而HDLC协议是面向比特的。这里也可以看出,PPP
应该使用字节填充,而HDLC协议应该使用比特填充。② PPP帧比 HDLC协议帧多一个2字节的协议字段。当协议字段值为Ox0021时,表示信息字段是IP数据报。
③PPP不使用序号和确认机制,只保证无差错接收(通过硬件进行循环冗余码校验),而端到端差错检测由高层协议完成。HDLC协议的信息帧使用了编号和确认机制。
PPP协议与HDLC协议的区别
2301_77687017: 好几题不对
2301_80250827: 图一的 V 咋能表示有几种码元呢
做而论道_CS: 计算机中,并没有小数点。 计算机中,只有 1 和 0,用这些,也就只能组成整数。 人类的数,无论整数、小数或浮点数, 在计算机中,都是以整数来存放和计算的。 那么,你介绍计算机知识,就应该用整数来介绍。 加减乘除、与或非异或、还有移位,你都可以讲的。 算出的结果,也必然都是整数。 但是,这些个整数,又都代表什么? 无论什么信息,它们都能代表! 注意:它们只能作为各种信息的代表! 或者代表小数,或者代表浮点数,或者英文汉字声音图像 ... 你都可以慢慢的、逐个的进行介绍。 整数,确实可以代表小数进行运算。 但是,你不能说:计算机内部,有什么定点小数在运算。 为什么正常人学计算机,觉得很难呢? 就因为计算机教材写的,就是这么乱七八糟。 关键是教材的作者,他们脑子里面,都是稀烂的! 没有一点头绪。
做而论道_CS: 要说浮点数,它和计算机,真没有什么关系。 计算机分为五大部分:运算、控制、存储器、输入、输出设备。 32 位数浮点数,仅仅才用了四个字节。它连半个部分,都算不上啊! 用 32 位数,代表更大和更小的数值,这只是一个算法而已,属于数学领域的知识。 无论这算法是难还是简单,无论它怎么规定,它和计算机原理,并无任何联系。 所以,浮点数:既不属于《计算机组成》,也不属于《计算机原理》。 对于浮点数,计算机,只是个数学工具而已。也就像一支笔一样,写写算算就完了。 难道,你拿起一支毛笔或铅笔,你还以为它和浮点数,有什么关系吗?
INFINTE0: 我想问一下,第十二题的有效存取时间,为什么不用在最后再+1,表示取数据?