精华内容
下载资源
问答
  • 一、HDLC 协议、 二、HDLC 站、 三、HDLC 格式、 四、HDLC 类型、 五、PPP 协议 与 HDLC 协议 对比、





    一、HDLC 协议



    HDLC 协议 :

    ① 全称 : High-Level Data Link Control , 简称 HDLC , 高级数据链路控制 ;

    ② 传输载体 :同步网 上传输 ;

    ③ 面向比特 : HDLC 协议是 面向比特 的 , PPP 协议是 面向字节 的 ;

    ④ 协议层级 : 数据链路层协议 ;

    ⑤ 制定者 : OSI 国际标准化组织制定 , 由 IBM 的 SDLC 协议扩展而来 , HDLC 协议不属于 TCP / IP 协议族 ;

    ⑥ 通信方式 : 全双工通信 ;

    ⑦ 透明传输 : 使用 0 0 0 比特插入法 , 实现透明传输 ;

    • 发送时 , 遇到 5 5 5 1 1 1 , 插入一个 0 0 0 ;
    • 接收时 , 遇到 5 5 5 1 1 1 , 删除一个 0 0 0 ;

    ⑧ 校验方式 : 使用 CRC 循环冗余校验 , 并对帧进行编号 , 可靠性高 ;





    二、HDLC 站



    HDLC 站 :

    ① 主站 : 发送命令帧 , 数据帧 , 接收响应帧 , 负责对 整个 链路 控制系统 的 初启 , 流程控制 , 差错检测 , 恢复 等工作 ;

    ② 从站 : 接收 主站 发送的命令 , 向 主站 发送响应帧 , 配合 主站 参与 差错检测 , 流程控制 , 恢复 等工作 ;

    ③ 复合站 : 既能发送数据 , 又能接收 命令帧 和 响应帧 , 并负责整个链路的控制 ;



    HDLC 站的工作方式 :

    ① 正常响应方式 : 从站 发送消息 , 需要经过 主站 通信 ;

    ② 异步平衡方式 : 每个站 , 都可以不经过 主站 同意 , 都可以向其它站发送信息 ;

    ③ 异步响应方式 : 不经过 主站 同意 , 就开始传输 ;





    三、HDLC 帧格式



    HDLC 帧格式 :
    在这里插入图片描述

    ① 标志符字段 : 首尾添加的字段 , 相当于帧定界符 , 0111   1110 0111 \ 111 0 0111 1110 ;

    ② 透明传输 : 如果遇到 连续 5 5 5 1 1 1 , 就插入一个 0 0 0 ; 5   " 1 "   1   " 0 " 5 \ "1" \ 1 \ "0" 5 "1" 1 "0" ;





    四、HDLC 帧类型



    HDLC 中帧类型 :

    ① 信息帧 ( I ) : 1 1 1 位 是 0 0 0 , 用来传输数据信息 ;

    ② 监督帧 ( S ) : 10 10 10 , 用于流量控制 , 差错控制 ;

    ③ 无编号帧 ( U ) : 11 11 11 , 用于 建立链路 , 拆除链路 , 等控制功能 ;





    五、PPP 协议 与 HDLC 协议 对比



    PPP 协议 与 HDLC 协议 对比 :

    ① 链路类型 : 都 只支持 全双工 链路 ;

    ② 透明传输 : PPP 协议支持 字节填充 / 零比特填充 , HDLC 协议 只支持 零比特 填充 ;

    ③ 差错控制 : 都实现了 差错检测 ( CRC 冗余校验 ) , 都不纠正差错 ;

    ④ 传输单位 : PPP 协议面向字节 , 以字节为单位 , 每个 PPP 帧都是整数个字节 ; HDLC 协议 面向比特 , 以比特为单位 , 其数据不一定是整数字节 ;

    ⑤ 协议字段 : PPP 协议中有 两个 字节的协议字段 , HDLC 中没有 , 但是 HDLC 中有控制字段 , 有类似功能 ;

    ⑥ 可靠性 : PPP 协议 没有 序号 和 确认机制 , 是不可靠的 ; HDLC 协议 有编号 和 确认机制 , 是可靠的 ;

    展开全文
  • HDLC帧

    千次阅读 热门讨论 2018-03-25 21:45:34
    我们一共碰到的有HDLC帧和MAC。 一看到这两种帧,就应该想到,它们都是数据链路层的。数据链路层分为两个子层,分别是LLC子层和MAC子层。LLC子层有出现频率很高的IEEE802标准,而MAC帧就存在于MAC子层。 先...

          我们一共碰到的有HDLC帧和MAC。

            一看到这两种帧,就应该想到,它们都是在数据链路层中的。数据链路层分为两个子层,分别是LLC子层和MAC子层。LLC子层中有出现频率很高的IEEE802标准,而MAC帧就存在于MAC子层。


           先说HDLC帧,目前我们普遍使用HDLC作为数据链路控制协议。

    1.HDLC操作方式

                 

    2.HDLC帧格式

          

           所以当我们传输数据时,要传输的不仅仅是数据的大小,还会给这些数据加上头和尾,以及一些其他的标志。比如标志位有八位,就是一个字节。所以除数据外其他的字段加在一起要占据6字节的空间。


    3.HDLC帧类型

            HDLC有三种类型,信息帧(I帧)、监控帧(S帧)和无编号帧(U帧)。
         (1)信息帧简称I帧,用于传输有效信息或数据,控制字段为第一位为“0”。
         (2)监控帧简称S帧,用于差错控制和流量控制,控制字段为第1、2位为“10”,如果判定一个帧为监控帧,接下来第三四位可以判断其类型。
              “00”——接受就绪
              “01”——拒绝
              “10”——接受未就绪
               “11”——选择拒绝
        (3)无编号帧简称U帧,用于提供链路的建立,拆除等多种控制功能。所以小编猜想,如果字段第一二位为“11”。那大概它就属于无编号帧了吧。
    展开全文
  • HDLC帧格式

    千次阅读 2020-06-18 14:36:41
    DLMS通信链路帧基本采用HDLC帧格式,HDLC除几个特殊域,其他域均为16进制数据,这章我主要分享什么是HDLC帧格式 如图一则为基本的HDLC帧格式: 图一 接下来的每个帧的解释我将按照一次标准报文应答进行解释HDLC...

    DLMS通信链路帧基本采用HDLC帧格式,HDLC除几个特殊域,其他域均为16进制数据,这章我主要分享什么是HDLC帧格式

    如图一则为基本的HDLC帧格式:

    图一

    接下来的每个帧的解释我将按照一次标准报文应答进行解释HDLC帧格式,报文如下

    客户端:7E A0 46 48 68 FE FF 75 10 05 C1 E6 E6 00 60 35 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 04 00 00 00 14 00 00 BD BF 7E

    一,标志帧

            即为标志头,不同的网络协议标志头不同,此处报文头为7E。一次数据传输,假如是单帧,则一次请求的请求头和请求尾都为7E(此处7E标志着结束)。假如是多帧数据传输7E为第一帧请求头,也标志着下一帧的开始。此处需要注意的是多帧传输的等待时间一般由服务端设定,且多帧传输不能超过此等待时间。

    二,帧格式域

            帧格式域一般为两个字节,如文章头部报文即 A0 46 为帧格式域,它由三个子域组成:Frame_type子域(4 bit),分段位(S, 1 bit)和帧长度子域(11 bit),如下图二

    图二

    客户端:7E A0 46 48 68 FE FF 75 10 05 C1 E6 E6 00 60 35 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 04 00 00 00 14 00 00 BD BF 7E

          看着好像A0 46与图二没有关系,其实在此处需要把 A0 46分别转化为二进制然后拼接,并且不足8位二进制数据需要补0,如A0转为二进制即为10100000,46转为1000110,此时1000110为7位,我们需要把它转化为8位补0,可以得到01000110,此处拼接起来可得到1010000001000110,此时二进制数据即可和图二关系对应。

           格式类型子域(Frame_type)的值为1010(二进制)。

           分段位S表示是否有后续帧,如果服务端给客户端传送的数据能在一帧内传送完,那么S=0,如果有后续帧那么S=1,此处S=0。

           长度子域的值是除两个7E标志之外的8位位组数。在一般情况下,帧长度不会超过256,因此帧格式域第一个字节为 A0或者A8 ,第二个字节表示该帧的长度

    三,地址域

            这个帧有两个地址域:一个目的HDLC地址和一个源HDLC地址。根据数据的传输方向,客户机端地址和服务器地址都可以是目标地址或源地址。客户机端地址总是用一个字节表示。扩展地址的使用把客户机地址的范围限制在128。

            在服务器端,为了能在一个物理设备内寻址一个以上的逻辑装置并且支持多站配置,可以将HDLC地址分为两部分。 一部分称为“高端HDLC地址”用于逻辑设备(一个物理设备内可独立寻址的实体)寻址,而第二部分——“低端HDCL地址”将用于物理设备(多站配置的一个物理设备)寻址。高端HDLC地址总是存在,而低端HDCL地址在不需要时可不用。  

            HDLC地址扩展机制应用于以上两种地址域。这种地址扩展说明可变长度的地址域,但是考虑到该协议,一个完整的HDLC地址域的长度被限制为一字节,两字节或四字节如下图三:

         · 一字节:只有高端HDLC地址存在。

         · 两字节:一字节高端HDLC地址和一字节低端HDLC地址。

        · 四字节:两字节高端HDLC地址和两字节低端HDLC地址。

    图三

         看着好像有点麻烦,我们继续按照文章顶部报文进行解释地址域的解析方法,首先这条报文是客户端发给服务端的报文,目的地址为服务端(1到4个字节),源地址为客户端(固定为一个字节),然后我们之前的包括标志域,格式域已经解析完7E A0 46,地址域(目的地址)我们从48开始解析,首先将48转为二进制数据01001000(实际结果应该是1001000,我们要对对所有的16进制转二进制数据进行8位补0),此时01001000的第八位即是LSB位,此位为0表示地址域未结束,1表示结束,我们继续解析下一字节68,转为二进制01101000,继续解析FE转为二进制11111110,继续解析FF转为二进制11111111,此时可以看到第八位为1表示目的地址结束,继续解析(源地址)75转化为二进制位01110101。到此处,所有的地址域(目的地址和源地址)解析结束。可参考图四学习。

    客户端:7E A0 46 48 68 FE FF 75 10 05 C1 E6 E6 00 60 35 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 04 00 00 00 14 00 00 BD BF 7E 

     

    图四

    四,控制帧格式

            控制帧为一个字节,此处可以得到10为控制帧字节。

    客户端:7E A0 46 48 68 FE FF 75 10 05 C1 E6 E6 00 60 35 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 04 00 00 00 14 00 00 BD BF 7E 

    命令/应答帧控制字段的编码方式为模式8,如ISO/IEC 13239的5.5及图五规定。

    图五

    将10转为二进制00010000,即可对应上图

    这里RRR是接收序列号N(R),SSS是发送序列号N(S),P/F是查询/结束位。

    链路层链接好即SNRM UA帧后,RRR和SSS均为000,发送一帧I帧SSS加1,接收到一帧I帧RRR加1,客户端和服务端都是如此。P/F标志位中P是对客户端而言的,需要响应P=1,那么广播帧时P=0;F是对服务端而言的,F表示发送是否结束,也就是是不是没有后续帧,F=1表示有后续帧,因此当客户端收到服务端发送来的帧格式域中S=1和此处的F=1的帧时,需回应RR帧等待接收未接收完的数据。

    五,头校验序列(HCS)域

            HCS的长度是两个字节。HCS计算除开始标志和HCS本身外的头的字节数。HCS的计算方法跟帧校验序列(FCS)类似。不包含信息域的帧,仅含FCS(在这种情况下,HCS被看作FCS)。HCS(和FCS)的计算方法采用CRC校验算法,不等式X**0+X**5+X**12+X**16。CRC具体算法可百度查询,此处用到的X**0+X**5+X**12+X**16的算法,我自己写了一个JAVA版本,可供小伙伴参考一下,图六。

    图六

    具体计算方式依旧通过报文进行解释

    客户端:7E A0 46 48 68 FE FF 75 10 05 C1 E6 E6 00 60 35 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 04 00 00 00 14 00 00 BD BF 7E 

    根据HCS的长度是两个字节。HCS计算除开始标志和HCS本身外的头的字节数。我们先找出计算部分:A0 46 48 68 FE FF 75 10  对应的校验值05 C1,然后通过上述java算法进行比较即可算法是否正确,错误情况服务端不处理该报文。

    六,信息域

    客户端:7E A0 46 48 68 FE FF 75 10 05 C1 E6 E6 00 60 35 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 04 00 00 00 14 00 00 BD BF 7E

            信息域即是任意的通讯数据等等,具体解析方法,我将会在下一章解释

    七,帧校验序列(FCS)域

    客户端:7E A0 46 48 68 FE FF 75 10 05 C1 E6 E6 00 60 35 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 04 00 00 00 14 00 00 BD BF 7E 

    根据FCS的长度是末尾除7E标志尾两个字节。FCS域的长度是两个字节,用来计算除开始标志和FCS本身 外的完整的帧长度。不包含信息域的帧只包含FCS(这里HCS被看作FCS)我们先找出计算部分:A0 46 48 68 FE FF 75 10 05 C1  对应的校验值05 C1,然后通过上述java算法进行比较即可算法是否正确,错误情况服务端不处理该报文。

    结语:至此HDLC如何解析大概分享完了,大家有什么疑惑或者其他问题可留言     =。=  

     谢谢大家的点赞,我会努力写的!

    引用文献

    l IEC 62056-21, Electricity Metering-Data Exchange for Meter Reading, Tariff and Load Control-Part 21: Direct local data exchange.2001

    l IEC 62056-61, Electricity Metering-Data Exchange for Meter Reading, Tariff and Load Control-Part 61: Object Identification System(OBIS). 2001

    l IEC 62056-62, Electricity Metering-Data Exchange for Meter Reading, Tariffand Load Control-Part 62: Interface Classes. 2001 Data exchange of automatic meter reading system

    l IEC62056-46,Electricity Metering-Data Exchange for Meter Reading, Tariff and Load Control-Part 46: Data link layer using HDLC protocol

    l IEC 62056-53, Electricity Metering-Data Exchange for Meter Reading, Tariff and Load Control-Part 53: COSEM Application Layer. 2001

    l IEC 61334-6, A-XDR encoding rule

    展开全文
  • PPP使用HDLC帧

    千次阅读 2008-10-22 19:39:00
    PPP使用HDLC帧 来源:http://ei.szpt.edu.cn/longen/E-K/detaile~k/hdlc-1.htm 介绍物理层要求数据链路层面向字节连接的HDLC帧位同步HDLC帧异步到同步的转换附加LCP配置选项摘要点对点协议提供了点-点连接上...

     

    在PPP中使用HDLC帧

     

    来源:http://ei.szpt.edu.cn/longen/E-K/detaile~k/hdlc-1.htm

     

    摘要

    点对点协议提供了在点-点连接上传送多种协议帧的标准方法。下面将介绍使用HDLC帧发送PPP包。

    1. 介绍

    下面提供的资料说明了在面向字节和位的同步或异步连接上对八位无奇偶校验数据的帧传输。这些连接必须是全双工的,当然也可以是专用连接或线路交换连接。

    同时,也说明了如何使控制信息如XON/XOFF透明地传输和删除由连接相关软硬件加入的高级控制信息的方法。

    一些协议希望提供无差错的传输,一些希望提供一定条件上的差错检测,而有些则根本不需要提供差错控制。PPP协议使用HDLC帧检测序列进行差错检测,这易于硬件实现,软件实现也可以。

    1.1. 说明

    在本文中,大家应该注意以下用法的意义:

    必须

     

     

    表示一种绝对的需要

     

     

    严禁

     

     

    表示绝对不准

     

     

    应该

     

     

    它相当于一种推荐,可能在一种情况下不需要某种东西,但是在作出不需要决定时一定要小心

     

     

    可以

     

     

    它表示可选的,它表示您可以选择它也可以不选择它。但应该注意,不包括这一功能或选项的系统要和其它包括这一功能和选项的系统一起工作

     

     

    1.2. 名词

    本文中经常使用以下名词,希望大家了解:

     

     

     

    数据报

     

     

    在网络层(如IP层)传输的数据单元。一个数据报可以包括在一个或多个包而在数据链路层传输

     

     

     

     

    在数据链路层传输的数据单元,它以帧头开始,以帧层结束,中间是数据

     

     

     

     

    封装的基本单位,在网络层和数据链路层接口之间传送。通常,一个包对应一个帧,当然也可以多个包对应一个帧

     

     

    对方

     

     

    点-点连接的另一方

     

     

    无回应抛弃

     

     

    在系统中不进行任何响应处理就抛弃一个包。但是,系统应该提供记录错误的功能

     

     

     

    2. 物理层要求

    PPP能够在许多DTE/DCE接口(如EIA RS-232-E,EIA RS-422和CCITT V.35)工作。对它的唯一限制全双工的连接,或者是专用连接,或者是线路交换对PPP数据链路层帧是透明的,PPP可以工作在异步(启停),位同步或字节同步模式下。

    接口格式

    PPP代表对物理层的八位接口。对于半八位接口是不支持的。

    传输速率

    PPP对传输速率没有特别的要求。

    控制信号

    PPP不需要使用控制信号。当提供控制信号时,这样的控制信号可以提供更多的功能,提高效率。因为不需要这些信号,物理层可能与数据链路层脱节,也就隐藏了物理传输的瞬时细节。这可以被用于蜂窝无线网络和其它快速交换连接的场合。当在单元之间移动时,具体的系统可以将整个地区看成是一个链路,即使传输在不同频率上交换了许多次。这链接被认为是和本地区的中心连接在一起的,而不是和单个的接收者在一起。然而,当链路转为到另外不同的管理时,应该重新建立链路设置。

    因为数据通信十分多,一些系统选择在不忙时与数据层断开连接,通信再次发生时,再次建立连接,所有这一切对于数据链路层都是不可见的。需要健壮性的系统应该避免过多地使用这一方法。在系统关闭后的“一段时间”内,系统应该通知一个关闭事件。对这一段时间的讨论还在继续,这些讨论主要基于通信量,呼叫建立时间和安装的安全性方面。

     

    3. 数据链路层

    PPP使用在ISO 3309-1979 HDLC中规定的帧结构,而第四版3309:1991对在异步方式下使用HDLC进行了一些修改。PPP控制过程使用在ISO 4335-1979 HDLC中描述的“控制”域编码进行控制。

    3.1. 帧格式

    PPP HDLC帧结束如下所示。此表未包括为同步而设置的字符和为透明性而设置的字符。传送时由左向右传送下图的内容。

    ppp1.jpg (14758 bytes)

    标记序列

    每个帧由一个标记序列开始和结束,标记序列就是二进制的: 01111110(十六进制的0x7e)。所有系统不断检测此标记,它用于对帧进行同步。在两帧之间只需要一个这样的标记,两上相继的标记构成一个空帧,它被无响应抛弃弃,而不产生FCS错误。

     

    地址域

    它是一个字节,包括二进制11111111(十六进制0xff),也就是“所有站”地址。单独站地址未被指定。“所有站”地址必须能够识别并被接受。使用其它地址长度和值在以后讲。不可识别的地址应该被无回应抛弃。

     

    控制域

    它是一个字节,包括二进制00000011(十六进制0x03),“未编号信息”(UI)命令和选举/结果位被设置为零。使用其它地址长度和值在以后讲。不可识别的地址应该被无回应抛弃。

     

    帧检查序列(FCS)域

    此域通常包括两个字节(16位)。先传送它的最低位,它指示的是最高系数项。也使用四个字节的FCS,这将在“PPP LCP扩展”中涉及。此域的是由地址、控制、协议、信息和填充域中的所有位运算得到的,不包括开始和停止位或用于数据透明性而插入的位,也不包括标记序列和FCS域本身。在同步控制字符映射中标记的字节在接收时存在,但在计算FCS时会被抛弃(详细情况请见附录)。

    其它的域在去除了上述的域之后就会得到。

    3.2. 标准帧的修改

    通信控制协议允许对标准HDLC帧结构进行修改。但是,修改了的帧应该与标准的帧有所区别。

    地址和控制域压缩:

    当使用标准HDLC帧时,地址和控制域包括十六进制数0xff和0x03。当使用其它地址或控制域值时,严禁使用地址和控制域压缩。在传输时,压缩的地址和控制域被省略。在接收时,地址和控制域通过检查第一个双字节而解压。如果这两个域包括值0xff和0x03,说明这就是地址和控制域,如果不是,说明这两个域已经被压缩并未被传送。

    在定义上,双字节的的协议域中的第一个字节不会是0xff。当地址域压缩启用并且信息位的第一个字节是0x03时,协议域值不应该是0x00ff,以防发生混淆。

     

    4. 面向字节连接的HDLC帧

    下面说明一下八位异步面向字节连接的HDLC帧。

    4.1. 标记序列

    标记序列标志帧的开始或结束。字节流在字节到字节的基础上对01111110进行检查。

    4.2. 透明性

    使用了字节填充过程。控制逃逸字节被定义为01111101(也就是十六进制的0x7d)。作为最小实现,发送必须避免使用标记序列和控制逃逸字节。

    在进行FCS运算后,发送者检查在两个标记序列中的帧。每个帧,控制逃逸字节和其它在发送同步控制字符映射中加入的标记都由两个字节替换,这两个字节包括控制逃逸字节和原来的字节与0x20异或的和。也就是从右向左第二位取反。

    接收必须能够正确处理所有控制逃逸字节。在接收方进行FCS运算前,每个小于0x20的字节都必须检查一下。如果是在接收ACCM中被标记的,就删除它(它可以是由中继通信设备加入的)。所有控制逃逸字节也被删除,此字节后的数据再和0x20进行异或操作。在标记序列中的数据不进行以上操作。

    下面是一些例子:

    0x7e 变为 0x7d, 0x5e

    0x7d 变为 0x7d, 0x5d

    0x03 变为 0x7d, 0x23

    一些带有软件流量控制的调制解调器可以中断DC1和DC3的传送而忽略第八位(奇偶校验位)。那么数据就要以以下格式传送:

    0x11 变为 0x7d, 0x31

    0x13 变为 0x7d, 0x33

    0x91 变为 0x7d, 0xb1

    0x93 变为 0x7d, 0xb3

    4.3. 无效帧

    发生以下情况时,帧将被无响应抛弃,而不被记为FCS错误:帧过短(当使用16位FCS时帧小于4个字节),或才帧以控制逃逸字节结束而其后紧跟一个标记序列,或者其中的字节帧无效(在应该接收到1的地方接收到0)。

    4.4. 时间空隙

    4.4.1. 字节同步

    未提供字节内的时间空隙。标记序列必须在时间帧内的时间空隙传送。

    4.4.2. 异步

    字节内时间空隙必须和连续传送的1一起出现。帧内时间空隙可以看作是扩展的字节时间空隙。这样做对每一帧可以节省一个字节的时间,降低时延增加带宽。正是因为标记序列既可以作为帧开始标记也可以作为帧结束标记使这成为可能。在接收帧后,空闲的接收方总会处于帧开始状态。

    健壮的传送方不应该过分使用这一功能,因为降低时延的代价是降低可靠性。线路噪声可能导致接收方接收到无效字符,但认为它们是帧的一部分。如果发送方在帧开始时不发送一个新的标记序列,下一帧和无效无效字符一起将导致这一帧无效。

    如果在帧开始时发送时开始标记序列就可以得到比较好的效果。发送方应在“期望时间”结束时发送开始标记序列。“期望时间”的最大值比最慢打字者打字速度快不了多少,大约一秒左右。

    4.5. 传输

    4.5.1. 字节同步

    不同的编码由DTE/DCD负责,这不在本文的讨论范围之内。

    4.5.2. 异步

    所有字节以最低位优先的方式发送,八位数据,一位停止位。不支持七位同步连接。

    5. 位同步HDLC帧

    下面总结以位同步连接使用HDLC帧。

     

    5.1. 标记序列

     

    标记序列用于帧的开始与结束,,它用于帧同步。二进制流在位的基础上检测二进制序列01111110(十六进制0x7e)。

    不应该使用“共享零模型”标记序列"011111101111110"。不提供此序列时,系统必须保证第一个检测到的标记序列被立即送到链路层。使用共享零模式妨碍位同步异步转换和位同步字节同步转换的协同进行。

     

    5.2. 透明性

     

    在FCS计算后,传送方检查整个帧,如果碰到连续五个1就要插入一个零,以免帧内的数据和标记序列混淆。在接收方,在进行FCS计算前,连接五个一后面的0将被抛弃,以保证数据的正确性。

     

    5.3. 无效帧

     

    帧过短(在16位FCS时少于4个字节),或者帧以一个多于六个1的序列结束时,帧将被无响应抛弃,而不被记为FCS错误。

     

    5.4. 时间空隙

     

    不支持字节内时间空隙。

    标记序列应该在帧内时间空隙传送。然而,特定类型的线路交换连接要求使用空闲标记(连续的1)。当在位同步连接使用空闲标记时,系统必须唯在标记序列间的空闲时间中至少有15个连接的1出现,标记序列通常在一个帧的开始处和空闲时间的结束处产生。这与在ISO 3309中的情况不同,它允许7到14位的空闲标记。

     

    5.5. 传输

     

    所有字节以最低位优先的方式发送。不同的编码由DTE/DCD负责,这不在本文的讨论范围之内。PPP可以不关心下层的二进制流表示,缺少传送的标准将会象缺少数据链路标准一样妨碍上下两层的协同工作。在速度范围在56 Kbps到2.0 Mbps中,NRZ是当前最广泛使用的,它的标准也被推荐于默认值。

    当允许编码配置时,NRZI也被推荐为默认值,相对起来,它能够避免信号转换配置错误。它的连接也不需要昂贵的DSU/CSU设置。但是,NRZI编码使16位FCS中X1分量的缺少的问题变得有出错的可能,这样2**15中(而不是2**16)的错误就无法查觉,三位错误也无法检查。因此,在使用NRZI时,应该使用32位FCS,其中包括X1分量。

    当速度大于45 Mbps时,一些设计者会选择ANSI高速同步接口。而这样的经验现在还不成熟,设计者应该在选择传输编码时注意协同使用。

     

    6. 异步到同步的转换

     

    一些系统会遇到异步到同步的转换,这是由于系统链路的一端可能连接着一个同步子系统而另一端连接着一个异步子系统。而所有操作中的转换工作都应该由转换装置完成。

    要启用此功能,同步PPP系统必须以LCP配置确认响应异步控制字符映射配置选项。然而,接受配置选项并不意味着同步系统将所所有的ACCM映射,相反,所有类似的字节映射将由异步到同步转换装置完成。

     

    7. 附加LCP配置选项

     

    配置选项格式和基本选项已经由LCP定义了。具体的数据请查询相应的文献,这里只讨论异步控制字符映射。

     

    7.1. 异步控制字符映射(ACCM)

     

    描述

     

    此配置选项提供了一种在异步链路上使用控制字符透明的方法。异步链路的两每一端支持两个异步控制字符映射。接收ACCM是32位的,而发送ACCM可以多达256位,也就是说,链路两端有四个不同的ACCM,每端两个。

    对于异步链路,默认的接收ACCM是0xffffffff。默认的发送ACCM是0xffffffff加上控制逃逸字符和标记序列本身,再加上将要异步发出的而被标记字符。(因为异步发送,因为要分成一个个单元,所以需要加上标记。)

    对于其它类型的连接,默认值是0,因为对其它类型的连接而言,没有必要进行映射。默认的字符(除了0x20外)都能够在所有已知的通信设备上透明传送。

    发送方也可能用控制逃逸的格式发送除0x5e外的从0x40到0xff的所有字符,但是这并没有解决发送者不能处理所有非控制字符的问题。同样,现有的技术也不能影响第八位,这也没有解决只能传送7位字节的通信链路问题。

    然而,通常不需要映射所有的控制字符,甚至不需要映射任何控制字符。配置选项用来通知双方哪些控制字符在发送时需要映射。一方可能仍然在映射的格式中传送其它字符。此时发送方应该采取措施使接收方在接收时忽略这些字符。下面所示为异步控制字符映射配置选项格式。传送顺序为从左至右。

    ppp2.jpg (9461 bytes)

     

    类型

     

    2

     

    长度

     

    6

     

    ACCM

     

    ACCM域有四个字节,说明需要映射的控制字符集。每个被标记的位与相同位置的字节对应。如果位被设置为零,此字节不需要映射。如果此位为1,此字节必须被映射。注意:最低字节的最低位如果是0,对应的映射字符是ASCII控制字符NUL。

     

    A. 推荐的LCP选项

     

    下面的配置选项是推荐使用的:

     

    高速连接时:

     

    魔术数;

    连接质量监视

    不使用地址和控制域压缩

    不使用协议域压缩

     

    低速或异步连接时:

     

    异步控制字符映射

    魔术数

    使用地址和控制域压缩

    使用协议域压缩

     

    B. PPP帧的自动识别

     

    有时可能需要检测PPP帧。以下面字节开始的就是一个有效的PPP LCP帧:

     

    7e ff 03 c0 21

    7e ff 7d 23 c0 21

    7e 7d df 7d 23 c0 21

     

    注意:前两种形式对UNIX而言不是有效的用户名。然而,只有第三种格式产生正确的PPP 帧奇偶校验码,此时03(EXT)和FF(DEL)作为控制符,与奇偶校验无关而被抛弃。

    当上面三种模式之一在登录时出现,接口进入包模式时,系统就会如上所述处理。初始到达的PPP帧将被抛弃,而立即发送要求配置帧。

     

    C. 快速帧检查序列的实现

     

    FCS原来设计时考虑到了硬件的实现。串行二进制流在线路上传输,FCS可以在串行数据送出时计算得到,而附加在串行数据流上,这些数据以标记序列结束,而完成一帧。

    接收方在接收到标记序列前不清楚是否完成计算接收到的FCS。因此,应该设计一种帧格式使FCS通过时就产生特定的信息。这样设计的帧就是“好的FCS”。

     

    C.1. FCS表产生程序

     

    下面的程序用于创建查找表计算FCS-16。

     

    /*

    * 产生FCS-16表

    */

     

    /*

    *FCS-16产生多项式:x**0 + x**5 + x**12 + x**16.

    */

    #define P 0x8408

     

    main()

    {

    register unsigned int b, v;

    register int i;

     

    printf("typedef unsigned short u16;/n");

    printf("static u16 fcstab[256] = {");

    for (b = 0; ; ) {

    if (b % 8 == 0)

    printf("/n");

     

    v = b;

    for (i = 8; i--; )

    v = v & 1 ? (v >> 1) ^ P : v >> 1;

     

    printf("/t0x%04x", v & 0xFFFF);

    if (++b == 256)

    break;

    printf(",");

    }

    printf("/n};/n");

    }

     

    C.2. 16位FCS计算方法

     

    下面例子的功能:当数据到达接口时,由一个查找表计算32位的帧检查序列。

     

    /*

    * u16代表16位无符号数

    */

    typedef unsigned short u16;

     

    /*

    * 由表生成子计算而来的FCS查找表

    */

    static u16 fcstab[256] = {

    0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,

    0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,

    0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,

    0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,

    0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,

    0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,

    0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,

    0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,

    0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,

    0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,

    0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,

    0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,

    0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,

    0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,

    0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,

    0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,

    0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,

    0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,

    0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,

    0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,

    0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,

    0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,

    0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,

    0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,

    0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,

    0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,

    0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,

    0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,

    0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,

    0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,

    0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,

    0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78

    };

     

    #define PPPINITFCS16 0xffff /* Initial FCS value */

    #define PPPGOODFCS16 0xf0b8 /* Good final FCS value */

     

    /*

    * 由给定的当前FCS值和新数据计算新的FCS数值

    */

    u16 pppfcs16(fcs, cp, len)

    register u16 fcs;

    register unsigned char *cp;

    register int len;

    {

    ASSERT(sizeof (u16) == 2);

    ASSERT(((u16) -1) > 0);

    while (len--)

    fcs = (fcs >> 8) ^ fcstab[(fcs ^ *cp++) & 0xff];

     

    return (fcs);

    }

     

    /*

    * 如何使用FCS

    */

    tryfcs16(cp, len)

    register unsigned char *cp;

    register int len;

    {

    u16 trialfcs;

     

    /* add on output */

    trialfcs = pppfcs16( PPPINITFCS16, cp, len );

    trialfcs ^= 0xffff; /* 取反 */

    cp[len] = (trialfcs & 0x00ff); /* 最低位优先 */

    cp[len+1] = ((trialfcs >> 8) & 0x00ff);

     

    /* check on input */

    trialfcs = pppfcs16( PPPINITFCS16, cp, len + 2 );

    if ( trialfcs == PPPGOODFCS16 )

    printf("Good FCS/n");

    }

     

    C.3. 32位FCS计算方法

     

    下面例子的功能:当数据到达时,由一个查找表计算32位的帧检查序列。

     

    /*

    * FCS-32产生子多项式:x**0 + x**1 + x**2 + x**4 + x**5

    * + x**7 + x**8 + x**10 + x**11 + x**12 + x**16

    * + x**22 + x**23 + x**26 + x**32.

    */

     

    /*

    * u32代表无符号的32位数

    */

    typedef unsigned long u32;

     

    static u32 fcstab_32[256] =

    {

    0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,

    0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,

    0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,

    0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,

    0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,

    0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,

    0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,

    0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,

    0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,

    0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,

    0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,

    0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,

    0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,

    0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,

    0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,

    0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,

    0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,

    0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,

    0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,

    0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,

    0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,

    0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,

    0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,

    0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,

    0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,

    0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,

    0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,

    0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,

    0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,

    0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,

    0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,

    0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,

    0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,

    0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,

    0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,

    0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,

    0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,

    0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,

    0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,

    0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,

    0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,

    0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,

    0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,

    0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,

    0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,

    0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,

    0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,

    0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,

    0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,

    0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,

    0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,

    0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,

    0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,

    0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,

    0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,

    0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,

    0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,

    0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,

    0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,

    0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,

    0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,

    0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,

    0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,

    0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d

    };

     

    #define PPPINITFCS32 0xffffffff /* 初始化FCS值 */

    #define PPPGOODFCS32 0xdebb20e3 /* 好的最终FCS值 */

    /*

    * 由给定的当前FCS值和新数据计算新的FCS数值

    */

    u32 pppfcs32(fcs, cp, len)

    register u32 fcs;

    register unsigned char *cp;

    register int len;

    {

    ASSERT(sizeof (u32) == 4);

    ASSERT(((u32) -1) > 0);

    while (len--)

    fcs = (((fcs) >> 8) ^ fcstab_32[((fcs) ^ (*cp++)) & 0xff]);

     

    return (fcs);

    }

     

    /*

    * How to use the fcs

    */

    tryfcs32(cp, len)

    register unsigned char *cp;

    register int len;

    {

    u32 trialfcs;

     

    /* add on output */

    trialfcs = pppfcs32( PPPINITFCS32, cp, len );

    trialfcs ^= 0xffffffff; /* 取反 */

    cp[len] = (trialfcs & 0x00ff); /* 最低位优先 */

    cp[len+1] = ((trialfcs >>= 8) & 0x00ff);

    cp[len+2] = ((trialfcs >>= 8) & 0x00ff);

    cp[len+3] = ((trialfcs >> 8) & 0x00ff);

     

    /* check on input */

    trialfcs = pppfcs32( PPPINITFCS32, cp, len + 4 );

    if ( trialfcs == PPPGOODFCS32 )

    printf("Good FCS/n");

    }

     

    安全问题

     

    正如在物理层要求中提到的,链路层在物理层发生变化时可能不清楚这一变化。这是因为过分信赖转发系统的安全和一致性而导致安全上的问题。这可能导致对系统的攻击,使系统身份验证失效。

     

     

    展开全文
  • 网络协议之HDLC帧格式

    2020-10-01 12:54:55
    主要为大家介绍了高级数据链路控制HDLC,是一个同步网上传输 数据、面向比特的数据链路层协议,它是由国际标准化组织根据IBM公司的SDLC协议扩展开发而成的,需要的朋友可以参考下
  • 那么如何从这些数据帧中提取有效数据呢? 本文通过一个简单的实例给大家详细讲述如何从帧中提取有效的协议信令。 1. 帧格式要求 首先我们明确下帧提取的一些要求: (1)把信息字段中出现的每一个0x7E字节转变为2字节...
  • H3C HDLC帧格式

    2019-07-10 15:32:00
    转载于:https://www.cnblogs.com/fanweisheng/p/11164286.html
  • HDLC协议格式

    千次阅读 2013-10-16 23:48:30
    HDLC协议格式解析 (High-level Data Link Control),高级数据链路控制 标志字段 F (Flag) 为 6个连续 1 加上两边各一个 0 共8 bit。接收端只要找到标志字段就可确定一个的位置
  • HDLC格式

    万次阅读 2008-10-22 19:37:00
    HDLC格式 在HDLC中,数据和控制报文均以的标准格式传送。HDLC中类似于BSC的字符块,但BSC协议的数据报文和控制报文是独立传输的,而HDLC中的命令应以统一的格式按传输。...
  • HDLC格式

    2008-11-27 20:31:48
    在HDLC中,数据和控制报文均以的标准格式传送。HDLC中类似于BSC的字符块,但BSC协议的数据报文和控制报文是独立传输的,而HDLC中的命令应以统一的格式按传输。HDLC的完整的由标志...
  • 鉴于IEC61375-1标准规定的WTB数据格式与IS03309定义的HDLC(High Level Data Link Control)格式一致,基带Manchester-Biphase-L技术编解码器现则围绕HDLC展开。  随着深亚微米工艺技术的发展,FPGA(Field...
  • PPP和HDLC链路的格式区别

    万次阅读 2012-11-30 15:25:24
    PPP(Point-to-Point Protocol)帧格式和HDLC(High-LevelData Link Control)帧格式非常相似,两者的主要区别在于:PPP帧...PPP帧格式(类HDLC帧),如下: Value 7E EF 03 2 Byte ……
  • hdlc协议概念及格式

    2009-01-05 20:22:39
    HDLC,链路控制协议,同步协议,数据链路控制协议,HDLC的基本概念及格式
  • WTB底层协议的研究,其基本格式与ISO3309的HDLC要求一致,故设计了一种基于FPGA的HDLC编解码器。重点介绍了协议和实现方法,给出了相应的Verilog代码,通过硬件下载与标准的WTB网卡通信,实现相应解析,达到ISO...
  • HDLC结构和CRC校验

    千次阅读 2008-10-22 14:14:00
    HDLC规程主要由结构、规程要素、规程类别三个部分组成[1]。为了使FPGA的设计能够实现HDLC的基本功能并能按照各项标准的规定灵活采用不同的CRC校验算法,首先回顾一下HDLC基本的结构形式。HDLC是面向比特的链路...
  • 中继跟PPP和HDLC的关系,教大家理解三者的联系和区别。
  • 本文依据HDLC规程的原始定义给出了HDLC帧校验序列FCS的计算方法及硬件实现系统码字编码的方案。根据文中给出的方法所做的计算与RUP1-44系列单片机串行接口单元SIU实际发送与接收的数据流进行了比较,经检验,实验...
  • HDLC PPP FR(中继)

    2021-07-24 07:55:03
    学习基于老师给的的PPT、他人学习笔记和维基百科、百度百科等一系列权威资料。学习笔记仅个人学习用,便于记录和复习,无广泛传播之意,若有侵权,请联系我删除。欢迎各位大佬指正和交流...HDLC在同步串行线路上封装...
  • HDLC基础

    2020-11-20 01:36:14
    数据报文加上头开销和尾开销后封装成HDLC帧。 HDLC具有以下特点: HDLC协议只支持点到点链路,不支持点到多点。 HDLC协议不支持IP地址协商,不支持认证。 HDLC协议通过Keepalive报文来检测链路状态,可以设置轮询...
  • HDLC通信协议

    2019-01-23 10:36:16
    HDLC协议详述,主要详细描述了HDLC协议的数据链路规程、HDLC的基本概念、HDLC帧结构、控制字段和参数
  • HDLC协议用以保证传送到下一层的数据传输过程能够准确地被接收,也就是差错释放没有任何损失,并且序列正确。HDLC协议的另一个重要功能是流量控制,即一旦接收端收到数据,便能立即进行传输。 ...
  • HDLC 协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的“O比特插入法”易于硬件实现;全双工通信,不必等待确认便可连续发送数据,有较高的数据链路传输效率;所有均采用CRC校验,对信息...
  • HDLC中的特殊字段

    千次阅读 2005-09-18 03:39:00
    01111110 (1)HDLC帧格式的标志字段,用以标志帧的起始和终止.(2)HDLC当出现“欠载”(没有信息可发送)时,插入两帧信息之间.1111111 (1)发送过程出现错误,或当发送端由于某种原因(例如遥信优先插入)...
  • 就从帧中提取出IP数据报交给上面的网络层 否则丢弃这个帧 数据链路层协议的基本问题: 封装成帧、 透明传输、差错检测 封装成帧: 帧:数据的前后分别添加首部和尾部 帧的帧长:帧的数据部分长度加上帧首部和帧尾部...
  • HDLC

    万次阅读 2011-10-30 00:47:55
    3.5.1 HDLC的产生背景  计算机通信的早期人们就已发现,对于经常产生误码的实际链路,只要加上合适的控制规程,就可以使通信变为比较可靠的。那时 ARPANET 和 IBM 公司分别使用了各自的控制规程,它们分别是:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,814
精华内容 3,525
关键字:

在hdlc的帧中