• HDLC协议的特点及功能,让你一看就会


    一 HDLC概述

    1.1 HDLC的发展历史

    高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的.其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。1974年,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC(Synchronous Data Link Control)。

    随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准:

    1* ANSI的高级通信控制过程ADCCP(Advanced DataControl Procedure),

    2* ISO的高级数据链路控制规程HDLC(High-level Data LinkContl)。

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

    1.2 HDLC的特点

    HDLC是面向比特的数据链路控制协议的典型代表,有着很大的优势:

    1* HDLC协议不依赖于任何一种字符编码集;

    2* 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;

    3*全双工通信,有较高的数据链路传输效率;

    4*所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高;

    5*传输控制功能与处理功能分离,具有较大灵活性。

    由于以上特点,目前网络设计及整机内部通讯设计普遍使用HDLC数据链路控制协议。HDLC已经成为通信领域额不可缺少的一个重要协议。

    二 数据链路层的控制规程

    2.1数据链路结构

    数据链路结构可以分为两种:点-点链路和点-多点链路。

    在点-点链路中,发送信息和命令的站称为主站,接收信息和命令而发出确认信息或响应的站称为从站,兼有主、从功能可发送命令与响应的站称为复合站。在点-多点链路中,往往有一个站为控制站,主管数据链路的信息流,并处理链路上出现的不可恢复的差错情况,其余各站则为受控站。

    2.2 数据链路控制规程功能

    数据链路层是OSI参考模型的第二层,它在物理层提供的通信接口与电路连接服务的基础上,将易出错的数据电路构筑成相对无差错的数据链路,以确保DTE与DTE之间、DTE与网络之间有效、可靠地传送数据信息。为了实现这个目标,数据链路控制规程的功能应包括以下几个部分:

    1*帧控制

    数据链路上传输的基本单位是帧。帧控制功能要求发送站把网络送来的数据信息分成若干码组,在每个码组中加入地址字段、控制字段、校验字段以及帧开始和结束标志,组成帧来发送;要求接收端从收到的帧中去掉标志字段,还原成原始数据信息后送到网络层。

    2*帧同步

    在传输过程中必须实现帧同步,以保证对帧中各个字段的正确识别。

    3*差错控制

    当数据信息在物理链路中传输出现差错,数据链路控制规程要求接收端能检测出差错并予以恢复,通常采用的方法有自动请求重发ARQ和前向纠错两种。采用ARQ方法时,为了防止帧的重收和漏收,常对帧采用编号发送和接收。当检测出无法恢复的差错时,应通知网络层做相应处理。

    4*流量控制

    流量控制用于克服链路的拥塞。它能对链路上信息流量进行调节,确保发送端发送的数据速率与接收端能够接收的数据速率相容。常用的流量控制方法是滑动窗口控制法。

    5*链路管理

    数据链路的建立、维持和终止,控制信息的传输方向,显示站的工作状态,这些都属于链路管理的范畴。

    6*透明传输

    规程中采用的标志和一些字段必须独立于要传输的信息,这就意味着数据链路能够传输各种各样的数据信息,即传输的透明性。

    7*寻址

    在多点链路中,帧必须能到达正确的接收站。

    8*异常状态恢复

    当链路发生异常情况时,如收到含义不清的序列或超时收不到响应等,能自动重新启动,恢复到正常工作状态。

    嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

    无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)

     

  • 相关阅读:
    uniapp h5网页打开白屏
    webpack:css代码提取插件extract-text-webpack-plugin和mini-css-extract-plugin
    火山引擎云原生存储加速实践
    Nginx配置多虚拟主机
    gitlab下载及安装
    MyBatisPlus(二十二)代码生成器
    04 如何进行数据表表分区? | OushuDB 数据库使用入门
    【Vue】ref,reactive 响应式引用的用法和原理(1)
    23. Docker image Digest你真的了解吗?
    虚幻动画系统概述
  • 原文地址:https://blog.csdn.net/m0_70888041/article/details/127902320