精华内容
下载资源
问答
  • HDLC协议概述及c++实现

    2018-08-31 11:32:18
    HDLC协议概述及c++实现
  • 针对移动通信系统中基带处理单元+射频拉远单元的分布式基站架构的主流趋势,分析了HDLC协议的帧结构,通过MPC852T和XC5VLX50T完成了光收发模块的控制和数据交换,实现了BBU和RRU的信令交互。该设计已经在4G基站产品...
  • Qt GUI应用程序的示例项目通过HDLC协议控制Arduino UNO上的伺服。 HDLC协议用于将所有通信包装到。 在Qt GUI和Arduino的两端,有效的HDLC帧都将传递到命令路由器或调度程序。 命令路由器/调度程序 应用程序定义的...
  • HDLC协议解析程序,程序很完整,初学者可以学习借鉴
  • HDLC协议的FPGA实现方法.pdf
  • HDLC协议及c++实现.rar

    2019-11-15 22:20:38
    HDLC协议解析程序,程序很完整,HDLC协议详述,主要详细描述了HDLC协议的数据链路规程、HDLC的基本概念、HDLC帧结构、控制字段和参数
  • HDLC协议概述

    2017-02-20 11:42:45
  • 介绍了基于NiosII软核的HDLC通信协议的实现方法,并在协议实现的基础上,完成了对无人值守基站系统的监控与管理。基站端的功能由基于NiosII软核的SoPC完成,PC机作为监控中心完成对基站的远程监控与管理。本系统在...
  • HDLC协议(一)——基本概念

    万次阅读 多人点赞 2020-11-10 14:05:48
    广域网以及两种最常用的广域网链路层协议——PPP协议和HDLC协议。 HDLC就是一种面向比特的网络节点之间同步传输数据的数据链路层协议。 【注】:OSI是Open System Interconnect的缩写,意为开放式系统

    主要参考百度百科。

    1. 什么是HDLC

    广域网简称WAN,是一种跨越超大的、地域性的计算机网络集合。通常跨省、市、甚至一个国家。广域网包括很多子网,子网可以是局域网;也可以是小型的广域网。由于串行通信有着传输距离远、成本低的特点,所以远距离、超远距离的通信中较常使用串行通信。广域网以及两种最常用的广域网链路层协议——PPP协议HDLC协议

    HDLC就是一种面向比特的网络节点之间同步传输数据的数据链路层协议。

    【注】:OSI是Open System Interconnect的缩写,意为开放式系统互联。开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

    HDLC(High-Level Data Link Control,高级数据链路控制),是链路层协议的一项国际标准,用以实现远程用户间资源共享以及信息交互。HDLC协议用以保证传送到下一层的数据在传输过程中能够准确地被接收,也就是差错释放中没有任何损失,并且序列正确。HDLC协议的另一个重要功能是流量控制,即一旦接收端收到数据,便能立即进行传输。

    HDLC协议由ISO/IEC13239定义,于2002年修订,2007年再次讨论后定稿。在通信领域中,HDLC协议应用非常广泛,其工作方式可以支持半双工全双工传送,支持点到点、多点结构,支持交换型、非交换型信道。 

    2. 简介

    HDLC(High-level Data Link Control,高级数据链路控)协议是一种面向比特的高效链路层协议。一般情况下,HDLC通信协议IP核为三个部分,即外部接口模块、数据发送部分和数据接收部分。在这类面向比特的数据链路协议中,帧头和帧尾都是特定的二进制序列, 通过控制字段来实现对链路的监控,可以采用多种编码方式 实现高效的、可靠的透明传输。故其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。

    1974年,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC(Synchronous Data Link Control)。随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准:

    • 1、ANSI的高级通信控制过程ADCCP(Advanced DataControl Procedure),
    • 2、 ISO的高级数据链路控制规程HDLC(High-level Data LinkContl)。

    从此,HDLC协议开始得到了人们的广泛关注,并开始应用于通信领域的各个方面。

    3.特点

    HDLC协议使用统一的帧格式,运用方便;采用零比特插入法,易于硬件实现,且支持任意的位流传输,实现信息的透明传输;全双工通信,吞吐率高,在未收到应答帧的情况下,可连续发送信息帧,提高数据链路传输的效率;采用CRC帧校验序列,可防止漏帧,提高信息传输的可靠性。 

    主要有四个特点:

    • 1·对于任何一种比特流都可透明传输。
    • 2·较高的数据链路传输效率。
    • 3·所有的帧都有帧校验序列(FCS),传输可靠性高。
    • 4·用统一的帧格式来实现传输。 

    4. 基本配置

    HDLC协议定义了3种类型的站、2种链路配置和3种数据传输方式。

    4.1 三种类型的站如下:

    • (1)主站。主站发出的帧叫命令帧,负责对链路进行控制。
    • (2)从站。从站发出的帧叫响应帧,在主站的控制下进行操作。
    • (3)复合站。既具有主站的功能,也有从站的功能,既可以发送命令帧,也可以发送响应帧。

    4.2 两种种链路配置如下:

    • (1)非平衡配置。既可用于点对点链路也可用于多点链路。这种链路由一个主站和多个从站组成,可以支持全双工半双工
    • (2)平衡配置。只能用于点对点链路。这种配置由两个复合站组成,同样支持全双工或半双工传输。

    4.3 三种数据传输方式如下:

    • (1)正常响应方式(Normal Response Mode,NRM):这种方式适合不平衡配置,主站启动数据传输过程,从站只有收到命令时才能发送数据。
    • (2)异步平衡方式(Asynchronous Balanced Mode,ABM):这种方式适合两端都是复合站的平衡配置,任何一方都可以启动数据传输。
    • (3)异步响应方式(Asynchronous Response Mode,ARM):这种方式适合不平衡配置,从站在没有收到主站命令时,就可以启动数据传输服务。 

    5. 帧类型

    HDLC的帧类型包括以下3种:

    (1)信息帧(l帧)。信息帧包含用户数据、该帧的编号和捎带的应答序列N(R)。I帧包含一位PF位,主站发出的命令帧是P,即询问(Polling);从站发出的响应帧是F位,即终止位(Final)。

    在正常响应方式(NRM)下,主站发出的命令帧将PF置l,表示询问帧,也允许从站发送数据;从站响应主站的询问,可以发送多个响应帧表示,只将最后一个响应帧的PF置1就表示数据发送完毕。在异步响应方式(ARM)和异步平衡方式(ABM)时,P/F位用于控制U帧和S帧的交换过程。

    (2)管理帧(S帧)。管理帧负责流量控制和差错控制,管理帧有4种,包括接收就绪(RR)、接收未就绪(RNR)、拒绝接收(REJ)和选择性拒绝接收(SREG)。

    S帧的名称和功能:

    (3)无编号帧(U帧)。U帧用于链路控制。U帧比较多,按其控制功能可以分为以下几类:

    • a)设置数据传输方式的命令帧和响应帧。
    • b)传输信息的命令帧和响应帧。
    • c)链路恢复的命令帧和响应帧。
    • d)其他的命令帧和响应帧。

    HDLC帧的U帧的类型定义 :

    6. 帧格式

     

    (1)帧标志F。HDLC采用固定的标志字段01111110作为帧的边界。当接收端检测到一个F标志时就开始接收帧,在接收的过程中如果发现F标志就认为该帧结束了。在传输的数据中可能会含有和标志字段相同的字段,而导致接收端误以为数据传输结束,为了防止这种情况的发生,引入了位填充技术。发送站在发送的数据比特序列中一旦发现0后有5个1,就在第7位插入一个0。接收端要进行相反的操作,如果在接收端发现0后面有5个1,则检查第7位,如果是0,则将0删除;如果是1并且第8位是0,则认为是标志字段F,这样就保证了数据比特位中不会有和标志字段相同的字段。

    (2)地址字段A。地址字段用在多点链路中,它是用来存放从站的地址的。一般的地址字段是8位长,也可以扩展采用更长的地址,但是都是8的整数倍。每一个8位组的最低位表示该8位是否是地址字段的末尾:1表示是最后的8位组;0表示后面还有地址组,其余的7位表示整个扩展字段。

    (3)控制字段C。HDLC定义了3种不同的帧,可以根据控制字段区分,信息帧(l帧)不仅用来传送数据,而且捎带流量控制和差错控制的应答信号。管理帧(S帧)是在不使用捎带机制的情况下管理帧控制的传输过程。无编号帧(U帧)具有各种链路的控制功能。控制字段使用前1位或前2位用来区别不同格式的帧,基本控制字段长度是8位。扩展控制字段是16位。

    控制字段中传输帧的类型用第1位或第1、第2位表示。在HDLC中有三种不同类型的帧,分别是信息帧、监控帧和无编号帧。信息帧对应的第1位为“0”,监控帧对应的第1位和第2位为“10”,无编号帧对应的第1位和第2位为“11”。所有帧的控制字段的第5位都相同,叫做P/F位。 在信息帧中,第2、3、4位表示的N(S)是发送帧的帧序号。第5位P/F是轮询位,其值为1时,被轮询的从站对主站的要求必须给出响应。第6、7、8位表示的N(R)是主站要接收的下一个帧的序号。 在监控帧中,第3、4位表示的是S帧的类型编码。第5位P/F是轮询/终止位,其值为1时,表明了接收方已经确认结束。 在无编号帧中,链路的建立、控制和断等多种功能都由其管控。各种功能由第2、3、4、6、7、8位这五个M位来表示,根据组合计算能够表示最多32种命令或应答的功能。  

    (4)信息字段INFO。I帧和一部分的U帧含有控制字段。这个字段可以包含用户数据的所有比特序列,长度没有限制,但在使用时通常限定了长度。

    (5)校验字段FCS。校验字段包含地址字段、控制字段、信息字段的校验和,但不包括标志字段。一般校验字段使用的是16bit的CRCCCITT标准的校验序列,也可以使用32bit的CRC-32校验序列。

    7. 协商过程

    随着通信的进步,通信信道的可靠性比过去已经有了非常大的改进。已经没有必要在数据链路层使用很复杂的协议(包括编号、检错重传等技术)来实现数据的可靠传输。因此,不可靠传输协议PPP已成为数据链路层主流协议,而可靠传输责任落到运输层TCP协议身上。

    下面来讨论其链路协商的过程。

    (1)协商建立过程:HDLC每隔10s后互相发送链路探测的协商报文,报文的收发顺序是由序号决定的,序号失序则造成链路中断。这种用来探询点到点链路是否激活状态的报文称之为keepalive报文。

    (2)传输报文过程:将IP报文封装在HDLC层上,数据传输过程中,仍然进行keep-alive的报文协商以探测链路的合法有效。

    (3)超时断连阶段:当封装HDLC的接口连续3次(当接收包速率超过1000packets/s时为6次),无法收到对方对自己的递增序号的确认时,HDLC协议Line Protocol由Up向Down转变。此时链路处于瘫痪状态,数据无法通信。

    简单的说,链路处于Down状态,当设备检测到载波或网管配置指示物理层可用时,HDLC发送一个UP事件,进入Establish阶段。启动链路检测定时器、初始化超时计数器,通过Keepalive报文交互建立连接,当收到对端链路检测帧时,将链路协议UP并进入Maintain阶段,链路始终处于UP状态、可承载网络层报文。 

     

     

    展开全文
  • 就是关于hdlc的基础知识和运用fpga来实现hdlc处理器~
  • 一、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 协议 有编号 和 确认机制 , 是可靠的 ;

    展开全文
  • 使用C++实现HDLC协议

    热门讨论 2011-10-06 21:41:48
    花了5小时++编的使用C++程序实现HDLC协议的相关内容,之前有位朋友也编了个程序,不过其效果不敢苟同啊,这样才是我觉得应该自己编一个放在网上,供大家分享指正。谢谢啊!
  • 一、轮询访问介质访问控制 (一)介质访问控制 信道划分介质访问控制(MAC Multiple Access Control )协议: ...轮询访问MAC协议/轮流协议/轮转访问MAC协议:既要不产生冲突,又要发送时占全部带宽。 ①、轮询

    一、局域网基本概念和体系结构

    (一)局域网

    • 局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道
    • 特点:
      ①、特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
      ②、特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。
      ③、特点3:通信延迟时间短,误码率低,可靠性较高。
      ④、特点4:各站为平等关系,共享传输信道。
      ⑤、特点5:多采用分布式控制和广播式通信,能进行广播和组播。
    • 决定局域网的主要要素为:网络拓扑传输介质介质访问控制方法

    (二)局域网拓扑结构

    在这里插入图片描述

    (三)局域网传输介质

    在这里插入图片描述

    (四)局域网介质访问控制方法

    • CSMA/CD:常用于总线型局域网,也用于树型网络
    • 令牌总线:常用于总线型局域网,也用于树型网络
      它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。
    • 令牌环:用于环形局域网,如令牌环网

    (五)局域网的分类

    1. 以太网:以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000 Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD.
    2. 令牌环网:物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。已是“明日黄花”
    3. PDDI网( Floer Distrilouked Data inervece):物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
    4. ATM网( Asynchronous Transler Mode):较新型的单元交换技术,使用53字节固定长度的单元进行交换。
    5. 无线局域网( Local Area Network WLAN):采用IEEE 802.11标准。
    • IEEE 802标准:IEEE 802系列标准是IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
    • ①、IEEE 802.3:以太网介质访问控制协议(CSMACD)及物理层技术规范2。
    • ②、IEEE 802.5:令牌环网(Token-Ring)的介质访问控制协议及物理层技术规范。
    • ③、IEEE 802.8:光纤技术咨询组,提供有关光纤联网的技术咨询。
    • ④、IEEE 802.11:无线局域网(WLAN)的介质访问控制协议及物理层技术规范。

    (六)MAC子层和LLC子层

    • IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
      在这里插入图片描述

    二、以太网

    (一)以太网概述

    • 以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。
    • 以太网在局域网各种技术中占统治性地位:
      1.造价低廉(以太网网卡不到100块);
      2.是应用最广泛的局域网技术;
      3.比令牌环网、ATM网便宜,简单;
      4.满足网络速率要求:10Mb/s~10Gb/s.
    • 以太网两个标准:
      ①、DIX Ethernet V2:第一个局域网产品(以太网)规约。
      ②、IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)
    • 802.3局域网 =以太网

    (二)以太网提供无连接、不可靠的服务

    • 无连接:发送方和接收方之间无“握手过程”。
    • 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
    • 以太网只实现无差错接收,不实现可靠传输。

    (三)以太网传输介质与拓扑结构的发展

    在这里插入图片描述

    (四)10BASE-T以太网

    • 10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T 采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s
      在这里插入图片描述

    (五)适配器与MAC地址

    • 计算机与外界有局域网的连接是通过通信适配器的。
      在这里插入图片描述
    • 在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】
    • MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。

    (六)以太网MAC帧

    • 最常用的MAC帧是以太网V2的格式。
      在这里插入图片描述

    (七)高速以太网

    • 速率≥100Mb/s的以太网称为高速以太网。

    1. 100BASE-T以太网

    • 双绞线上传送100Mb/s基带信号星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。
    • 支持全双工半双工,可在全双工方式下工作而无冲突。
      在这里插入图片描述

    2. 吉比特以太网

    • 光纤或双绞线上传送1Gb/s信号
    • 支持全双工半双工,可在全双工方式下工作而无冲突。

    3. 10吉比特

    • 10吉比特以太网在光纤上传送10Gb/s信号
    • 只支持全双工,无争用问题

    三、IEEE 802.11 && 无线局域网

    (一)802.11的MAC帧头格式

    在这里插入图片描述
    在这里插入图片描述

    (二)无线局域网的分类

    1. 有固定基础设施无线局域网
    2. 无固定基础设施无线局域网的自组织网络

    1. 有固定基础设施无线局域网

    在这里插入图片描述

    2. 无固定基础设施无线局域网的自组织网络

    在这里插入图片描述

    四、PPP协议&HDLC协议

    (一)广域网

    • 广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
    • 广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
      在这里插入图片描述

    (二)PPP协议

    1. PPP协议的特点

    • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
    • 只支持全双工链路。

    2. PPP协议应满足的要求

    • 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。
    • 封装成帧:帧定界符
    • 透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
    • 多种网络层协议:封装的IP数据报可以采用多种协议。
    • 多种类型链路:串行/并行,同步/异步,电/光….
    • 差错检测:错就丢弃。
    • 检测连接状态:链路是否正常工作。
    • 最大传送单元:数据部分最大长度MTU。
    • 网络层地址协商:知道通信双方的网络层地址。
    • 数据压缩协商

    3. PPP协议无需满足的要求

    • 纠错
    • 流量控制
    • 序号
    • 不支持多点线路

    4. PPP协议的三个组成部分

    1. 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
    2. 链路控制协议LCP:建立并维护数据链路连接。 身份验证
    3. 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。

    5. PPP协议的状态图

    在这里插入图片描述

    6. PPP协议的帧格式

    在这里插入图片描述

    (三)HDLC协议

    1. 概念

    • 高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的.
    • 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现
    • 采用全双工通信
    • 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。

    2. HDLC的站

    • 主站、从站、复合站
    • 1.主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等。
    • 2.从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。
    • 3.复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
    • 三种数据操作方式:
      ①、正常响应方式
      ②、异步平衡方式
      ③、异步响应方式

    3. HDLC的帧格式

    在这里插入图片描述

    • (1)信息帧(I)第1位为0,⽤来传输数据信息,或使⽤捎带技术对数据进⾏确认;
    • (2)监督帧(S)10,⽤于流量控制和差错控制,执⾏对信息帧的确认、请求重发和请求暂停发送等功能
    • (3)⽆编号帧(U)11,⽤于提供对链路的建⽴、拆除等多种控制功能。

    4. PPP协议&HDLC协议

    • HDLC、PPP只支持全双工链路。
    • 都可以实现透明传输。【PPP协议:可以字节填充,也可以比特填充;HDLC协议:只能比特填充】
    • 都可以实现差错检测,但不纠正差错。
      在这里插入图片描述

    五、链路层设备

    (一)物理层扩展以太网

    在这里插入图片描述
    在这里插入图片描述

    (二)链路层扩展以太网

    • 网桥&交换机
    • 网桥根据MAC帧的目的地址对帧进行转发过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
      在这里插入图片描述

    1. 网桥

    (1)网桥分类——透明网桥

    • 透明网桥&源路由网桥
    • 透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备——自学习。
      在这里插入图片描述

    (2)网桥分类——源路由网桥

    • 源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。
    • 方法:源站以广播方式向欲通信的目的站发送一个发现帧

    2. 以太网交换机

    (1)多接口网桥——以太网交换机

    在这里插入图片描述

    (2)以太网交换机的两种交换方式

    在这里插入图片描述

    (三)冲突域和广播域

    • 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。【链路层设备只要是一个端口就是一个冲突域】
    • 广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。【通过路由器判断广播域】
      在这里插入图片描述
      在这里插入图片描述
    展开全文
  • HDLC协议基本功能模拟实现 (C语言)

    千次阅读 2020-06-04 09:23:42
    整体协议实现的都主要在模拟帧发送接收上,并没有实现真正意义上的传输,如果对你有帮助 麻烦github帮忙点个⭐吧~ 目录 文章目录计算机通信基础课程设计实验报告源码:[https://github.com/baijq643048734/HDLC]...

    源码:https://github.com/baijq643048734/HDLC

    整体协议实现的都主要在模拟帧发送接收上,并没有实现真正意义上的传输,如果对你有帮助 麻烦github帮忙点个⭐吧~

    目录

    实验内容

    ​ 完成了HDLC协议最基本的协议内容,包括:

    1. 组帧、拆帧并对组帧进行解析
    2. 连接的建立与拆除
    3. 实用停等协议的模拟演示
    4. 在数据传输过程中实现了CRC冗余校验来验证正确性

    实验步骤

    一、连接的建立与拆除

    1. 相关函数

    //链接建立与拆除相关函数
    int build_SNRM_frame(char *Address);					//建立要发起连接的SARM连接帧  
    int build_UA_frame(char *Address);						//建立确认UA连接帧 
    int build_DISC_frame(char *Address);					//建立请求断连的DISC帧 
    int connect_to_addr(char * Address);					//与目的地址主机连接 	
    //void receive(char *frame);							//接收帧	
    

    2. 主要实现功能

    1. 由用户输入要连接的地址赋值给Address 数组,然后通过调用函数connect_to_addr,来判断用户输入地址是否合法,并且判断地址为有效地址、广播地址(11111111)还是链路测试专用地址(00000000)。若用户输入广播地址或链路测试地址,则输出相关信息;若用户输入有效地址,则调用build_SNRM_frame函数建立SNRM帧,并发送SNRM帧并等待接收UA帧与远程地址建立连接。远程地址通过build_UA_frame函数建立UA帧并发送。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (注:具体组帧操作见下文)
    
    1. 在与远程地址建立连接之后,用户可以通过输入来选择继续发送数据还是与远程地址断开连接,若用户选择发送数据,则会进行进一步处理(见下文),若用户选择断连,则会通过调用build_DISC_frame函数发送DISC帧请求断连并等待远程地址发送UA帧确认断连。

    在这里插入图片描述

    3. 连接、拆除流程图

    在这里插入图片描述

    二、组帧、拆帧、帧解析操作

    1. 相关函数

    // frame.h此处函数均为组帧操作内部调用函数										
    int _2_x(int x);										//2的x次方
    void char_to_bit(char letter, char *bit);				//将单独字母转化为比特串
    int info_to_bit(char *Info, int Info_len, char *Info_temp);			//将传输数据转化为比特串 
    void print_info_bit(char *Info,int Info_len);						//打印数据比特串												
    void flag_fld_header(char *frame);						//初始化组帧帧头 
    void addr_fld(char *frame, char *Address);				//初始化组帧地址字段 												
    void control_fld(char *frame, char *Control);			//初始化组帧控制字段
    //int bit_stf(char *Info, int Info_len);					//数据字段字节扩充
    int info_fld(char *frame, char *Info, int Info_len);	//初始化组帧数据字段 
    int fcs_fld(char *frame,char *FCS,int frame_length);	//初始化组帧FCS字段
    int bit_stf(char *frame, int frame_length);				//0bit扩充
    int flag_fld_end(char *frame, int frame_length);		//初始化组帧帧尾 
    void print_frame(char *frame, int frame_length);		//打印组帧
    
    int Frameing(char *Address, char *Control, char *Info, int Info_len, char *FCS, char *frame);		//组帧操作 返回帧长 
    
    // initfield.h 初始化字段
    int init_control_fld(char *Control,int control_type); 			//控制字段生成 返回控制字段帧类型编号 
    int init_info_fld(char *Info, int info_type,char *Info_temp);	//根据控制字段帧类型编号 填充数据字段 返回数据字段长度 
    void init_fcs_fld(char *Info, char *FCS,int info_type);			//根据数据生成CRC校验码 
    void bin_div(char *inStr,char *outStr);							//bit除法 
    void checkCRC(char *inStr, char *outStr);						//CRC校验码生成 
    
    // 数据发送相关函数
    int send(int flag);										//发送帧 返回发送的帧类型 
    int frame_parsing(char *frame, int frame_len, int info_len);				//帧解析函数 调用unframe函数 然后对帧进行解析
    void unframe(char *frame, int frame_len, int info_len, char *addr, char *cont, char *info, char *fcs);								//拆帧		
    int bit_del(char *frame, int len, char *frame1);					//0bit删除	
    
    //*帧解析相关函数
    int control_parsing(char *recv_cont);				//解析控制字段 返回帧类型 
    void info_parsing(int fcs_flag, int con_type, char *recv_info, int info_len);		//解析数据字段  
    int fcs_parsing(int con_type, char *recv_info, char *recv_fcs);		//进行CRC校验 成功返回1 否则返回0
    void bit_to_info(char *recv_info, int info_len);		//bit串转字符串 
    
    

    2. 主要实现功能

    在组帧过程中,最主要的函数是`Frameing` 。
    

    ​ 首先用户建立连接,发出SNRM帧以后,进入一个循环,不断调用send函数。

    ​ 进入send函数后,若用户需要发送数据,则会调用init_control_fld函数并传入生成信息帧的标志I,来生成相应的控制帧,在函数中,会通过全局变量Info_num来告知这是已发送的第几个数据段,并写给控制字段的N(S)、N(R)。在控制字段初始化完成后,紧接着便调用init_info_fld函数来初始化数据字段,将用户输入的数据转化为比特串赋值给全局变量Info,并返回数据字段比特长度,然后调用init_fcs_fld函数对用户输入数据生成相应的CRC冗余校验码。

    ​ 在这些初始化工作完成后,便调用Frameing函数对之前的全局变量进行0比特填充(bit_stf)、拼接、加入帧头帧尾,形成一个完整的组帧。至此,组帧操作全部完成。

    在这里插入图片描述

    ​ 紧接着,在远程地址收到组帧后,调用frame_parsing函数,对帧进行解析。

    ​ 在解析函数中,首先调用unframe函数,将一个组帧进行拆除帧头帧尾、0比特删除(bit_del)等相关操作,将组帧分成地址、控制、数据、FCS字段并赋值给局部变量进行相关信息的分析检查。

    ​ 检查过程大概如下:

    ​ 在拆帧以后,首先输出对应的组帧、帧长以及其中的地址字段、控制字段、数据字段、FCS字段。然后调用control_parsing进行控制字段分析。之所以要先分析控制字段,因为控制字段中包含帧的类型,先判断出帧的类型,才可以对帧中的信息进行相应的解读。函数分析完控制字段后,返回该帧的帧类型,并传入紧接着要调用的fcs_parsing函数,若帧类型为数据帧(I),则在函数中会进行相应的CRC冗余校验,来验证信息是否正确,并将验证正确与否的结果返回,传入紧接着的数据字段分析函数info_parsing,若CRC校验成功,则函数先输出数据比特串,然后调用函数bit_to_info将数据比特串转换回字符串结构并显示给用户。
    在这里插入图片描述

    ​ 至此,帧解析完成,返回所解析帧的类型给main函数,在主函数中,通过判断返回的帧的类型进行相应的操作——若返回类型为数据帧(I),则继续进行实用停等协议的流程;而返回类型若是断连无编号帧(DISC),则发送UA帧来结束本次连接。

    三、实用停等协议的实现与模拟

    1.相关函数

    //停等协议流程相关函数
    void num_to_str(int info_num, char *info_num_str);		//将序号转为二进制存放 
    int build_RR_frame(char *Address);						//建立RR确认帧 
    int build_SREJ_frame(char *Address);					//建立SREJ请求重发帧  
    

    2.主要实现功能

    ​ 由上文,在地址接受完信息以后,由用户对比数据,选择数据是否发送成功。若校验数据成功,则发送RR帧,告知主机已收到该信息帧,并改变全局变量Info_num的值,也就是改变了N(S)、N(R);若校验数据失败,则发送SREJ帧告知主机,重新发送编号为Info_num的帧,即完成了一个简易的使用停等协议的模拟。
    在这里插入图片描述
    在这里插入图片描述

    四、CRC冗余校验

    1. 相关函数

    void init_fcs_fld(char *Info, char *FCS,int info_type);			//根据数据生成CRC校验码 
    void bin_div(char *inStr,char *outStr);							//bit除法 
    void checkCRC(char *inStr, char *outStr);						//CRC校验码生成 
    

    2. 主要实现功能

    ​ 通过调用checkCRC函数,传入数据字段,生成相应的冗余码。在校验时,通过对比组帧的FCS字段和收到数据生成的CRC冗余码是否一致来判断数据是否有变动。

    在这里插入图片描述

    实验缺陷

    一、整体情况

    ​ 由于在代码完成时使用的是Dev-C++编译器,最开始多文件连编时,总是出现类似于找不到头文件等稀奇古怪的错误,于是最后我只好把各个文件中的代码全部放入main.cpp函数中,整体代码量也较大,可能会使老师读源码比较费劲。

    ​ 其次,并没有实现老师所说的开两个线程来进行连接建立、数据传输、连接拆除的操作,而是在一个线程中进行了这些过程的模拟。

    二、组帧、拆帧、帧解析阶段

    ​ 在组帧阶段中,为了简化问题,默认地址字段为8比特,没有考虑地址首位为0的地址扩充情况;默认控制字段为8比特,并默认控制字段的P/F bit位始终为1;默认FCS字段为16比特,也就是默认冗余码的生成规则为CRC-16

    三、连接建立、拆除过程

    ​ 在连接过程中,对于广播模式和测试链路状态模式中,没有进行具体的函数实现,仅仅输出了相关的提示信息,而仅仅对有效地址进行了连接的建立、数据的传输、连接的拆除等操作。

    四、传输过程

    ​ 在传输过程中。

    ​ 对于无编号帧U:完整的HDLC协议有以下多种无编号帧。

    在这里插入图片描述

    ​ 但我只考虑了SNRMUADISC三种无编号帧来实现基本的连接建立、拆除、确认操作。

    ​ 对于监控帧S:完整的HDLC协议有以下多种无编号帧。

    在这里插入图片描述

    ​ 但我只考虑了RRSREJ两种监控帧来实现基本的实用停等协议的过程。

    展开全文
  • 使用C++程序编写实现HDLC协议的相关内容,这个是根据最近的对HDLC学习的收获再次更新改进的程序,继续供大家分享指正,希望大家在这方面共进步,呵呵。谢谢啊!
  • PPP协议 & HDLC协议

    千次阅读 2020-04-28 16:52:56
    广域网 PPP协议 点对点协议PPP是目前使用最广泛的数据链路层协议。用户使用拨号电话接入因特网时一般都使用PPP协议 。 只支持全双工链路。...HDLC协议 HDLC的帧格式 PPP协议&HDLC协议 ...
  • 文中针对专用ASIC 芯片实现HDLC 协议针对性强,使用不灵活等特点,提出了使用FPGA IP 核来实现HDLC 接口的设计方案。HDLC IP 核包括3 个模块:对外接口模块、接收模块和发送模块。IP 核接收到新数据后存入接收FIFO,...
  • 3.7PPP协议和HDLC协议

    2021-08-08 15:38:34
    PPP协议和HDLC协议 广域网 广域网(WAN):通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能够连接多个城市、国家或者跨越几个洲,形成国际性的远程网络 广域网的通信子网主要使用分组交换技术。广域...
  • PPP协议和HDLC协议

    2020-08-03 15:08:11
    PPP协议和HDLC协议 1.广域网 2.PPP协议的特点 3.PPP协议应满足的要求 4.PPP协议无需满足的要求 5.PPP协议的三个组成部分 6.PPP协议的状态图 7.PPP协议的帧格式 8.HDLC协议 9.HDLC的站 10.HDLC的帧格式 11....
  • 广域网协议(HDLC协议和PPP协议)

    千次阅读 2020-02-24 10:36:02
    2.1 HDLC(高级数据链路控制协议) 是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的,能够实现可靠传输。 ...
  • HDLC协议的配置

    2021-01-24 23:34:51
    1534 bytes, 104 Packets Input bandwidth utilization : 0.02% Output bandwidth utilization : 0.02% 在AR1和AR2的串口上分别使用LINK-PROTOCOL命令配置链路层协议HDLC。 [AR1-Serial0/0/0]link-protocol hdlc ...
  • 21、HDLC协议

    2021-08-04 10:57:19
    本节我们学习第二种广域网数据链路层的协议HDLC,可以说HDLC是PPP的前身,言外之意就是HDLC现在已经很少使用了,已经被PPP取代了。所以我们的学习,只要了解一些基本的概念,不需要对它进行深入研究,对考试来讲,也...
  • 摘 要:针对SDH传输系统板间通信传统设计方法的不足,介绍一种采用HDLC协议进行设计的新方法.并在MPC852T型嵌入式微处理器上得以实现。严格的验证证明其在可靠性和传输速率方面获得了很好的性能。 关键词:UART:...
  • 针对飞控模拟装置中基于HDLC协议通信需求,完成了一种新的基于FPGA+ARM架构HDLC协议控制器的设计。文中首先介绍了HDLC 协议的帧结构和循环冗余校验( CRC)原理,然后结合FPGA可进行任意数据宽度操作和ARM编程简单灵活...
  • 为了实现军航管制系统中雷达数据的可靠传输,根据HDLC协议的帧结构和循环冗余校验(CRC)原理,提出了一种新型的基于并行机制的HDLC协议控制器,讨论采用FPGA新技术实现HDLC协议帧的构成,解析模块及其内部的CRC码...
  • 使用嵌入式微处理器S3C4510B内部包含的HDLC控制器封装和解析HDLC协议,微处理器既可实现系统功能,又可完成HDLC协议的数据传输,降低了设计的复杂度。本设计已应用于微波网络管理系统中,该系统可以通过RS-232接口或...
  • 广域网 跨国WAN 节点交换机(数据链路层设备):只能...LCP协议:链路控制协议(建立物理连接) NCP协议:网络控制协议(建立逻辑连接) PPP协议的状态图: PPP协议的帧格式:(面向字节) A,C无含义 A:Adrees地址字
  • HDLC协议简介

    2012-11-12 16:08:02
    本文档描述了HDLC的相关协议,适合初学者

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,066
精华内容 4,426
关键字:

hdlc协议