网络协议之HDLC帧格式

HDLC

高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输 数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的。

特点与格式

面向比特的协议中最有代表性的是IBM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标准化组织ISO (International Standards Organization)的高级数据链路控制规程HDLC(High Level Data Link Control),美国国家标准协会(American National Standar ds Institute )的先进数据通信规程ADCCP ( Advanced Data Communications Control Procedure)。这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称"面向比特"的协议。

帧信息的分段

SDLC/HDLC的一帧信息包括以下几个场(Field),所有场都是从最低有效位开始传送。

1. SDLC/HDLC标志字符

SDLC/HDLC协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束。这个标志字符是01111110,称标志场(F)。从开始标志到结束标志之间构成一个完整的信息单位,称为一帧(Frame)。所有的信息是以帧的形式传输的,而标志字符提供了每一帧的边界。接收端可以通过搜索"01111110"来探知帧的开头和结束,以此建立帧同步。

2.地址场和控制场

在标志场之后,可以有一个地址场A(Address)和一个控制场C(Contro1)。地址场用来规定与之通信的次站的地址。控制场可规定若干个命令。SDLC规定A场和C场的宽度为8位。HDLC则允许A场可为任意长度,C场为8位或16位。接收方必须检查每个地址字节的第一位,如果为"0",则后边跟着另一个地址字节;若为"1",则该字节就是最后一个地址字节。同理,如果控制场第一个字节的第一位为"0",则还有第二个控制场字节,否则就只有一个字节。

3.信息场

跟在控制场之后的是信息场I(Information)。I场包含有要传送的数据,亦成为数据场。并不是每一帧都必须有信息场。即信息场可以为0,当它为0时,则这一帧主要是控制命令。

4.帧校验场

紧跟在信息场之后的是两字节的帧校验场,帧校验场称为FC(Frame Check)场, 校验序列FCS(Frame check Sequence)。SDLC/HDLC均采用16位循环冗余校验码CRC (Cyclic Redundancy Code),其生成多项式为CCITT多项式X^16+X^12+X^5+1。除了标志场和自动插入的"0"位外,所有的信息都参加CRC计算。 CRC的编码器在发送码组时为每一码组加入冗余的监督码位。接收时译码器可对在纠错范围内的错码进行纠正,对在校错范围内的错码进行校验,但不能纠正。超出校、纠错范围之外的多位错误将不可能被校验发现 。

实际应用时的两个技术问题

1."0"位插入/删除技术

如上所述,SDLC/HDLC协议规定以01111110为标志字节,但在信息场中也完全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了"0"位插入和删除技术。具体作法是发送端在发送所有信息(除标志字节外)时,只要遇到连续5个"1",就自动插入一个"0"当接收端在接收数据时(除标志字节)如果连续接收到5个"1",就自动将其后的一个"0"删除,以恢复信息的原有形式。这种"0"位的插入和删除过程是由硬件自动完成的,比上述面向字符的"数据透明"容易实现。

2. SDLC/HDLC异常结束

若在发送过程中出现错误,则SDLC/HDLC协议用异常结束(Abort)字符,或称失效序列使本帧作废。在HDLC规程中7个连续的"1"被作为失效字符,而在SDLC中失效字符是8个连续的"1"。当然在失效序列中不使用"0"位插入/删除技术。

SDLC/HDLC协议规定,在一帧之内不允许出现数据间隔。在两帧信息之间,发送器可以连续输出标志字符序列,也可以输出连续的高电平,它被称为空闲(Idle)信号。

HDLC中常用的操作方式

(1)正常响应方式NRM

正常响应方式NRM(Normal Responses Mode)是一种非平衡数据链路操作方式,有时也称非平衡正常响应方式。该操作方式适用于面向终端的点到点或一点与多点的链路。在这种操作方式,传输过程由主站启动,从站只有收到主站某个命令帧后,才能作为响应向主站传输信息。响应信息可以由一个或多个帧组成,若信息 由多个帧组成,则应指出哪一个是最后一帧。主站负责管理整个链路,且具有轮询、选择从站及向从站发送命令的权利,同时也负责对超时、重发及各类恢复 操作的控制。

(2)异步平衡方式ABM

异步平衡方式ABM(Asynchronous Balanced Mode)是一种允许任何节点来启动传输的操作方式。为了提高链路传输效率,节点之间在两个方向上都需要的较高的信息传输量。在这种操作方式下任何时候任何站都能启动传输操作,每个站既可作为主站又可作为从站,每个站都是组合站。各站都有相同的一组协议,任何站都可以发送或接收命令,也可以给出应答,并且各站对差错恢复过程都负有相同的责任。

(3)异步响应方式

异步响应方式ARM(Asynchronous Responses Mode)也是一种非平衡数据链路操作方式,与NRM不同的是,ARM下的传输过程由从站启动。从站主动发送给主站的一个或一组帧中可包含有信息,也可以是仅以控制为目的而发的帧。在这种操作方式下,由从站来控制超时和重发。该方式对采用轮询方式的多站莲路来说是必不可少的。

帧格式

在HDLC中,数据和控制报文均以帧的标准格式传送。HDLC中的帧类似于BSC的字符块,但BSC协议中的数据报文和控制报文是独立传输的,而HDLC中的命令应以统一的格式按帧传输。HDLC的完整的帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成.

(1)标志字段(F)

标志字段为01111110的比特模式,用以标志帧的起始和前一帧的终止。标志字段也可以作为帧与帧之间的填充字符。通常,在不进行帧传送的时刻,信道仍处于激活状态,在这种状态下,发方不断地发送标志字段,便可认为一个新的帧传送已经开始。采用“0比特插入法”可以实现0数据的透明传输。

(2)地址字段(A)

地址字段的内容取决于所彩了的操作方式。在操作方式中,有主站、从站、组合站之分。每一个从站和组合站都被分配一个唯一的地址。命令帧中的地址字段携带的是对方站的地址,而响应帧中的地址字段所携带的地址是本站的地址。某一地址也可分配给不止一个站,这种地址称为组地址,利用一个组地址传输的帧能被组内所有拥有该组一焉的站接收。但当一个站或组合站发送响应时,它仍应当用它唯一的地址。还可用全“1”地址来表示包含所有站的地址,称为广播地址,含有广播地址的帧传送给链路上所有的站。另外,还规定全“0”地址为无站地址,这种地址不分配给任何站,仅作作测试。

(3)控制字段(C)

控制字段用于构成各种命令和响应,以便对链路进行监视和控制。发送方主站或组合站利用控制字段来通知被寻址的从站或组合站执行约定的操作;相反,从站用该字段作对命令的响应,报告已完成的操作或状态的变化。该字段是HDLC的关键。控制字段中的第一位或第一、第二位表示传送帧的类型,HDLC中有信息帧(I帧)、监控帧(S帧)和无编号帧(U帧)三种不同类型的帧。控制字段的第五位是P/F位,即轮询/终止(Poll/Final)位。

(4)信息字段(I)

信息字段可以是任意的二进制比特串。比特串长度未作限定,其上限由FCS字段或通信站的缓冲器容量来决定,国际上用得较多的是1000~2000比特;而下限可以为0,即无信息字段。但是,监控帧(S帧)中规定不可有信息字段。

(5)帧校验序列字段(FCS)

帧校验序列字段可以使用16位CRC,对两个标志字段之间的整个帧的内容进行校验。FCS的生成多项式CCITV4.1建议规定的X16+X12+X5+1。

帧类型

(1)信息帧(I帧)

信息帧用于传送有效信息或数据,通常简称I帧。I帧以控制字第一位为“0”来标志。

信息帧的控制字段中的N(S)用于存放发送帧序号,以使发送方不必等待确认而连续发送多帧。N(R)用于存放接收方下一个预期要接收的帧的序号,N(R)=5,即表示接收方下一帧要接收5号帧,换言之,5号帧前的各帧接收到。N(S)和N(R)均为3位二进制编码,可取值0~7。

(2)监控帧(S帧)

监控帧用于差错控制和流量控制,通常简称S帧。S帧以控制字段第一、二位为“10”来标志。S帧带信息字段,只有6个字节即48个比特。S帧的控制字段的第三、四位为S帧类型编码,共有四种不同编码,分别表示:

00——接收就绪(RR),由主站或从站发送。主站可以使用RR型S帧来轮询从站,即希望从站传输编号为N(R)的I帧,若存在这样的帧,便进行传输;从站也可用RR型S帧来作响应,表示从站希望从主站那里接收的下一个I帧的编号是N(R)。

01——拒绝(REJ),由主站或从站发送,用以要求发送方对从编号为N(R)开始的帧及其以后所有的帧进行重发,这也暗示N(R)以前的I帧已被正确接收。

10——接收未就绪(RNR),表示编号小于N(R)的I帧已被收到,但目前正处于忙状态,尚未准备好接收编号为N(R)的I帧,这可用来对链路流量进行控制。

11——选择拒绝(SREJ),它要求发送方发送编号为N(R)单个I帧,并暗示它编号的I帧已全部确认。

可以看出,接收就绪RR型S帧和接收未就绪RNR型S帧有两个主要功能:首先,这两种类型的S帧用来表示从站已准备好或未准备好接收信息;其次,确认编号小于N(R)的所有接收到的I帧。拒绝REJ和选择拒绝SREJ型S帧,用于向对方站指出发生了差错。REJ帧用于GO-back-N策略,用以请求重发N(R)以前的帧已被确认,当收到一个N(S)等于REJ型S帧的N(R)的I帧后,REJ状态即可清除。SREJ帧用于选择重发策略,当收到一个N(S)等SREJ帧的N(R)的I帧时,SREJ状态即应消除。

(3)无编号帧(U帧)

无编号帧因其控制字段中不包含编号N(S)和N(R)而得名,简称U帧。U帧用于提供对链路的建立、拆除以及多种控制功能,这些控制功能5个M位(M1、M2、M3、M4、M5,也称修正位)来定义。5个M位可以定义32种附加的命令功能或32种应答功能,但目前许多是空缺的。



  • 缃戠粶鍗忚涔婬DLC甯ф牸寮
    绛旓細鍦℉DLC涓,鏁版嵁鍜屾帶鍒舵姤鏂囧潎浠甯鐨勬爣鍑鏍煎紡浼犻併侶DLC涓殑甯х被浼间簬BSC鐨勫瓧绗﹀潡,浣咮SC鍗忚涓殑鏁版嵁鎶ユ枃鍜屾帶鍒舵姤鏂囨槸鐙珛浼犺緭鐨,鑰孒DLC涓殑鍛戒护搴斾互缁熶竴鐨勬牸寮忔寜甯т紶杈撱HDLC鐨瀹屾暣鐨勫抚鐢辨爣蹇楀瓧娈(F)銆佸湴鍧瀛楁(A)銆佹帶鍒跺瓧娈(C)銆佷俊鎭瓧娈(I)銆佸抚鏍¢獙搴忓垪瀛楁(FCS)绛夌粍鎴. (1)鏍囧織瀛楁(F) 鏍囧織瀛楁涓01111110鐨...
  • HDLC甯鏄粈涔?
    绛旓細鏄竴缁勭敤浜庡湪缃戠粶缁撶偣闂翠紶閫佹暟鎹殑鍗忚锛屾槸鐢卞浗闄呮爣鍑嗗寲缁勭粐锛圛SO锛夐甯冪殑涓绉嶉珮鍙潬鎬с侀珮鏁堢巼鐨勬暟鎹摼璺帶鍒惰绋嬶紝鍏剁壒鐐规槸鍚勯」鏁版嵁鍜屾帶鍒朵俊鎭兘浠ユ瘮鐗逛负鍗曚綅锛岄噰鐢ㄢ滃抚鈥濈殑鏍煎紡浼犺緭銆備笉鍚岀被鍨嬬殑HDLC琚敤浜庝娇鐢╔.25鍗忚鐨勭綉缁滃拰甯т腑缁х綉缁滐紝杩欑鍗忚鍙互鍦ㄥ眬鍩熺綉鎴栧箍鍩熺綉涓娇鐢紝鏃犺姝ょ綉鏄叕鍏辩殑杩樻槸...
  • 璇﹁堪HDLC鍗忚鐨勪綔鐢,鏁版嵁绁鏍煎紡,閫氫俊杩囩▼
    绛旓細Cisco鎻愪緵鐨勪笓鐢ㄧ殑HDLC鐗堟湰鏄疌isco涓茶绾胯矾鏂归潰鐨勯粯璁ゅ皝瑁呮ā寮,姝鍗忚宸ヤ綔鏁堢巼鏋侀珮,涓嶉渶婊戝姩绐楀彛鎶鏈垨鏁版嵁娴佹帶鍒,骞朵笖鍙厑鐐瑰鐐硅繛鎺,鍦板潃浣嶆案杩滃叏閮ㄨ瀹氫负1.姝ゅcisco鐨凥DLC鐨勫抚鎺у埗浣嶅悗闈㈡湁涓や釜瀛楄妭鐨勪笓灞炵被鍨嬬紪鍙,琛ㄧずHDLC鐨勫抚鏍煎紡涓嶈兘鍜屽叾瀹冨巶鍟嗙殑璁惧鍏煎,骞跺彲浠ユ敮鎸佸閲缃戠粶灞傚崗璁叡浜竴涓覆琛岄摼璺,濡...
  • HDLC甯鍒嗕负淇℃伅甯с佺洃鐫e抚鍜屾棤缂栧彿甯
    绛旓細HDLC甯绫诲瀷:1)淇℃伅甯(I甯):鐢ㄤ簬瀹炵幇淇℃伅鐨勭紪鍙蜂紶閫,鍏舵帶鍒舵鐨勭涓浣嶄负0,瀹冨叿鏈夊彂閫佸簭鍙種(S),鐢ㄤ簬鏍囨槑鎵鍙戦佷俊鎭抚鐨勫簭鍙,鍙湁淇℃伅甯ф墠鏈夋搴忓彿銆傝繕鏈夋崕甯︾殑鑲畾搴旂瓟淇″彿N(R),鐢ㄤ簬鏍囨槑棰勬湡 鎺ユ敹鐨勫抚鐨勫簭鍙,骞跺浠ュ墠鏀跺埌鐨勫抚杩涜纭銆侾/F:璇㈤棶/缁堟浣嶃 2)绠$悊甯(S甯):鐢ㄤ簬瀹炵幇娴侀噺鍜屽樊閿欐帶鍒躲傛帶鍒跺瓧娈...
  • HDLC甯鍙垎涓哄摢鍑犲ぇ绫?
    绛旓細閫氬父鏈甯歌鐨勬槸鍥犵壒缃戙HDLC鐨勫抚鏍煎紡瑙勫畾浠01111110锛堝崄鍏繘鍒7E锛夌殑浣嶇粍鍚堜綔涓哄畠鐨勮捣濮嬪拰缁撴潫鐨勬爣蹇楋紝杩欑浣嶇粍鍚堜篃琚О涓哄抚鐣屽畾绗銆傚湪HDLC鐨勫抚鏍煎紡涓紝鍦ㄨ捣濮嬫爣蹇楀悗鐨勬槸鍦板潃瀛楁鍜屾帶鍒跺瓧娈碉紝鐒跺悗鏄暱搴﹀湪0鍒5000鍏綅浣嶇粍锛坥ctet锛夌殑鏁版嵁瀛楁鍜屽抚妫楠屽簭鍒楀瓧娈碉紙FSC锛夛紝鏈鍚庢槸浣滀负缁撴潫鏍囧織鐨勫抚鐣屽畾绗︺
  • PPP鍗忚 & HDLC鍗忚
    绛旓細浣嗛兘涓嶇籂姝e樊閿欍  涓嶅悓鐐癸細   (1) PPP鍗忚闈㈠悜瀛楄妭锛孒DLC鍗忚闈㈠悜姣旂壒銆   (2) HDLC鍗忚甯ф牸寮娌℃湁鍗忚瀛楁銆   (3) PPP鍗忚鏃犲簭鍙峰拰纭鏈哄埗锛孒DLC鍗忚鏈夌紪鍙峰拰纭鏈哄埗銆   (4) PPP鍗忚涓嶅彲闈狅紝HDLC鍗忚鍙潬銆
  • hldcHDLC鐨鐗圭偣
    绛旓細甯ф牸寮鏂归潰锛HDLC鐨勫抚鐢辨爣蹇楀瓧娈点佸湴鍧瀛楁銆佹帶鍒跺瓧娈点佷俊鎭瓧娈靛拰甯ф牎楠屽簭鍒楃瓑缁勬垚銆傛爣蹇楀瓧娈电敤鏉ユ爣璇嗗抚鐨勫紑濮嬪拰缁撴潫锛屽湴鍧瀛楁鏍规嵁鎿嶄綔鏂瑰紡鍒嗛厤缁欏悇涓珯锛屾帶鍒跺瓧娈靛垯鐢ㄤ簬鍙戦佸懡浠ゅ拰鍝嶅簲锛屼俊鎭瓧娈垫壙杞芥暟鎹紝鑰屽抚鏍¢獙搴忓垪鐢ㄤ簬鏁版嵁鐨勯敊璇娴嬨備笁绉嶅抚绫诲瀷锛屽嵆淇℃伅甯э紙I甯э級銆佺洃鎺у抚锛圫甯э級鍜屾棤缂栧彿甯э紙U甯э級...
  • PPP鍜HDLC鐨鍖哄埆,鍚勬湁浠涔堜紭缂虹偣
    绛旓細HDLC鐢ㄤ簬绉熺敤绾胯矾鐨勭偣鍒扮偣杩炴帴,cisco璺敱鍣ㄥ悓姝ヤ覆琛岄摼璺粯璁ゅ皝瑁鍗忚锛宑isco鐨刪dlc鍜屾爣鍑hdlc甯ф牸寮鍙兘灏佽鍦ㄥ悓姝ラ摼璺笂锛屽鏋滄槸鍚屽紓姝ヤ覆鍙g殑璇濓紝鍙湁褰撳悓寮傛涓插彛宸ヤ綔鍦ㄥ悓姝ユā寮忎笅鎵嶈兘浣跨敤銆傚洓銆佷紭缂虹偣涓嶅悓 PPP浼樼偣锛1銆佹敮鎸佸悓姝ャ佸紓姝ヤ覆琛岄摼璺 2銆佹敮鎸佸绉缃戠粶灞傚崗璁 3銆佹敮鎸佸悇绉嶈繛鎺ュ弬鏁扮殑鍗忓晢 4銆佹敮鎸...
  • hdlc鏄粈涔堟剰鎬
    绛旓細HDLC鏄嫳鏂嘓ighLevel Data Link Control鐨勭缉鍐欙紝涓枃鍚嶆槸楂樼骇鏁版嵁閾捐矾鎺у埗锛屽畠鏄竴缁勭敤浜庡湪缃戠粶缁撶偣闂翠紶閫佹暟鎹殑鍗忚锛屾槸鐢卞浗闄呮爣鍑嗗寲缁勭粐棰佸竷鐨勪竴绉嶉珮鍙潬鎬с侀珮鏁堢巼鐨勬暟鎹摼璺帶鍒惰绋嬶紝鍏剁壒鐐规槸鍚勯」鏁版嵁鍜屾帶鍒朵俊鎭兘浠ユ瘮鐗逛负鍗曚綅锛岄噰鐢ㄢ滃抚鈥濈殑鏍煎紡浼犺緭銆備竷鍗佸勾浠e垵锛孖BM鍏徃鐜囧厛鎻愬嚭浜嗛潰鍚戞瘮鐗圭殑鍚屾鏁版嵁...
  • 鏁版嵁閾捐矾灞備腑HDLC銆丳PP銆丮AC浠ュ強FR鍗忚鐨勫尯鍒拰閫傜敤鎯呭喌
    绛旓細绠鍗曠殑璇,PPP鍜孒DLC鎸囩殑鏄箍鍩缃涓暟鎹紶杈撴椂灏佽鐨鍗忚,鑰孧AC鍜孡LC鎸囩殑鏄暟鎹摼璺眰鐨勬瀯鎴 鏁版嵁閾捐矾灞備互鍓嶄娇鐢℉DLC锛屽悗鏉ラ兘鐢≒PP锛孭PP鐨甯ф牸寮鍜HDLC鐨鐩镐技銆備笌HDLC涓嶅悓鐨勬槸澶氫簡2涓瓧鑺傜殑鍗忚瀛楁銆俆PC/IP浣撶郴鍦ㄦ暟鎹摼璺眰浣跨敤MAC甯у皝瑁匢P鏁版嵁鎶ワ紙鑰屽湪X.25涓嬩娇鐢ㄧ殑鏄疕DLC锛夆︹
  • 扩展阅读:ppp协议和hdlc协议区别 ... hdlc协议是哪一层协议 ... 5种常见的网络协议 ... hdlc协议帧的分类 ... hdlc协议的数据帧 ... hdlc三种不同的帧 ... hdlc协议组帧 ... hdlc协议中文名 ... 数据链路协议hdlc是一种 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网