书签 分享 收藏 举报 版权申诉 / 19

一种高级数据链路控制数据发送方法.pdf

  • 上传人:a2
  • 文档编号:4900258
  • 上传时间:2018-11-25
  • 格式:PDF
  • 页数:19
  • 大小:2.51MB
  • 摘要
    申请专利号:

    CN201410620117.X

    申请日:

    2014.11.05

    公开号:

    CN104283650A

    公开日:

    2015.01.14

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):H04L 1/16申请日:20141105|||公开

    IPC分类号:

    H04L1/16

    主分类号:

    H04L1/16

    申请人:

    株洲南车时代电气股份有限公司

    发明人:

    杨卫峰; 粟爱军; 唐军; 王大君; 罗林; 蒋国涛; 邹智荣

    地址:

    412001 湖南省株洲市石峰区时代路169号

    优先权:

    专利代理机构:

    北京集佳知识产权代理有限公司 11227

    代理人:

    王宝筠

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供了一种HDLC重发方法,该方法应用于发送端,在发送端发送数据包时,添加的包头中包括发包序号和发包类型,并通过HDLC发送所述数据包。接收到重发指令时,直接根据该重发指令获取待重发的数据包,并将该数据包重发,无需进行是否需要重传的判断,减少了重传过程对发送端的占用时间,不影响发送端发送数据的速度。并且,采用该方法只是将发包序号和发包类型添加到数据包中,无需对HDLC芯片进行改变,不会增加HDLC的成本。

    权利要求书

    权利要求书1.  一种高级数据链路控制HDLC数据发送方法,其特征在于,应用于发送端,所述方法包括:依据预设的组包规则,对待发送的数据打包得到数据包;所述数据包的包头中包括发包序号和发包类型,所述发包类型为正常发包;通过HDLC发送所述数据包;当接收到接收端反馈的重发指令时,依据所述重发指令获取待重发的数据包,所述待重发的数据包的包头中包括发包序号和发包类型,所述发包类型为重传包;通过HDLC发送所述待重发的数据包。2.  根据权利要求1所述的方法,其特征在于,所述依据预设的组包规则,对待发送数据打包得到数据包具体包括:将所述HDLC的底层发送接收接口封装到所述待发送数据中;按照预设的帧格式将所述待发送数据进行封包,得到数据包。3.  根据权利要求1所述的方法,其特征在于,对待发送数据打包得到数据包之后,还包括:缓存所述数据包至预设存储区域。4.  根据权利要求1所述的方法,其特征在于,所述重发指令中携带待重发数据对应的数据包的指示信息,则所述依据所述重发指令获取待重发的数据包包括:解析所述重发指令,得到待重发数据对应的数据包的指示信息;依据所述指示信息,从所述预设存储区域获取与所述指示信息相应的数据包;将所述数据包的包头中携带的发包类型由正常发包修改为重传包,得到待重发的数据包。5.  根据权利要求1所述的方法,其特征在于,所述接收到接收端反馈的重发指令之后,依据所述重发指令获取待重发的数据包之前,还包括:控制当前的数据包发送进程暂停。6.  一种HDLC数据发送方法,其特征在于,应用于接收端,包括:通过HDLC接收发送端发送的数据包,所述数据包的包头中包括发包序号和发包类型;分析所述数据包,并判断是否出现数据包传输错误;如果传输错误,生成重发指令并反馈发送端。7.  根据权利要求6所述的方法,其特征在于,所述分析所述数据包,并判断是否出现数据包传输错误包括:解析所述数据包,得到所述包头中的发包序号和发包类型;依据所述数据包的发包类型,判断所述数据包为正常发包的数据包,还是重发的数据包;当所述数据包为正常发包的数据包时,依据所述正常发包的数据包中的发包序号,判断是否出现丢包,如果是,出现传输错误;当所述数据包为重发的数据包时,依据所述重发的数据包中发包序号与所述接收端中存储的正常发包的数据包判断是否出现丢包,如果是,出现传输错误。8.  根据权利要求7所述的方法,其特征在于,所述分析所述数据包,并判断是否出现数据包传输错误包括:所述数据包的帧格式是否满足预设的帧格式;如果不满足,则出现数据包传输错误。9.  根据权利要求6所述的方法,其特征在于,所述数据包的包头中还包括:数据长度和发送数据,则分析所述数据包,并判断是否出现数据包传输错误包括:分析所述数据包,确定所述发送数据中的实际数据长度;将所述实际数据长度和所述数据包中的数据长度比对,得到比对结果;当所述比对结果表示所述实际数据长度和所述数据包中的数据长度不同时,数据包传输错误。10.  根据权利要求7-9任一项所述的方法,其特征在于,所述生成重发指令包括:依据接收到的数据包的发包序号确定被丢包的数据包的发包序号;依据被丢包的数据包的发包序号生成重发指令。

    说明书

    说明书一种高级数据链路控制数据发送方法
    技术领域
    本发明涉及信息传输领域,更具体的说,是涉及一种高级数据链路控制数据发送方法。
    背景技术
    HDLC(High-Level Data Link Control,高级数据链路控制)是一个在同步网上传输数据、面向比特的数据链路层协议,具有较高的传输效率,目前在轨道交通领域得到了比较广泛的应用。
    但是,由于现有的HDLC芯片在运行过程中,HDLC数据存在一定的丢包现象,导致数据传输不稳定。由于轨道交通领域要求的高安全性和可靠性,使得需要有一种有效的重发方法,以保证HDLC通信的可靠性。
    现有技术中,HDLC重发方法,是基于改进后的HDLC芯片增加的内部帧计数功能,发送端(即改进后的HDLC芯片)在发送每一帧数据时自动添加帧序号,由于接收端接收到数据时只反馈ACK(Acknowledgement,确认字符),则发送端根据接收到的ACK和该帧序号判断是否出现丢包情况,判断方式可以为根据帧序号计算发送帧数据个数,并将该帧数据个数与ACK个数比较是否一致,如果不一致则出现丢包现象,如果有丢包,重新发送数据。
    然而采用该方法,需要在发送端将该数据的序号与反馈的ACK进行比对,导致重传过程较复杂,当发送数据较多时,比对过程耗时长,长期占用发送端,到导致影响发送端发送数据的进度,降低了HDLC传输数据的速度。
    发明内容
    有鉴于此,本发明提供了一种HDLC数据发送方法,解决了现有的基于改进的HDLC芯片,由于根据ACK和该帧序号判断是否出现丢包情况的计算导致的重传过程复杂,耗时长的问题。
    为实现上述目的,本发明提供如下技术方案:
    一种高级数据链路控制HDLC数据发送方法,,应用于发送端,所述方法包括:
    依据预设的组包规则,对待发送的数据打包得到数据包;所述数据包的包头中包括发包序号和发包类型,所述发包类型为正常发包;
    通过HDLC发送所述数据包;
    当接收到接收端反馈的重发指令时,依据所述重发指令获取待重发的数据包,所述待重发的数据包的包头中包括发包序号和发包类型,所述发包类型为重传包;
    通过HDLC发送所述待重发的数据包。
    上述的方法,优选的,所述依据预设的组包规则,对待发送数据打包得到数据包具体包括:
    将所述HDLC的底层发送接收接口封装到所述待发送数据中;
    按照预设的帧格式将所述待发送数据进行封包,得到数据包。
    上述的方法,优选的,对待发送数据打包得到数据包之后,还包括:
    缓存所述数据包至预设存储区域。
    上述的方法,优选的,所述重发指令中携带待重发数据对应的数据包的指示信息,则所述依据所述重发指令获取待重发的数据包包括:
    解析所述重发指令,得到待重发数据对应的数据包的指示信息;
    依据所述指示信息,从所述预设存储区域获取与所述指示信息相应的数据包;
    将所述数据包的包头中携带的发包类型由正常发包修改为重传包,得到待重发的数据包。
    上述的方法,优选的,所述接收到接收端反馈的重发指令之后,依据所述重发指令获取待重发的数据包之前,还包括:
    控制当前的数据包发送进程暂停。
    一种HDLC数据发送方法,应用于接收端,包括:
    通过HDLC接收发送端发送的数据包,所述数据包的包头中包括发包序号和发包类型;
    分析所述数据包,并判断是否出现数据包传输错误;
    如果传输错误,生成重发指令并反馈发送端。
    上述的方法,优选的,所述分析所述数据包,并判断是否出现数据包传输错误包括:
    解析所述数据包,得到所述包头中的发包序号和发包类型;
    依据所述数据包的发包类型,判断所述数据包为正常发包的数据包,还是重发的数据包;
    当所述数据包为正常发包的数据包时,依据所述正常发包的数据包中的发包序号,判断是否出现丢包,如果是,出现传输错误;
    当所述数据包为重发的数据包时,依据所述重发的数据包中发包序号与所述接收端中存储的正常发包的数据包判断是否出现丢包,如果是,出现传输错误。
    上述的方法,优选的,所述分析所述数据包,并判断是否出现数据包传输错误包括:
    所述数据包的帧格式是否满足预设的帧格式;
    如果不满足,则出现数据包传输错误。
    上述的方法,优选的,所述数据包的包头中还包括:数据长度和发送数据,则分析所述数据包,并判断是否出现数据包传输错误包括:
    分析所述数据包,确定所述发送数据中的实际数据长度;
    将所述实际数据长度和所述数据包中的数据长度比对,得到比对结果;
    当所述比对结果表示所述实际数据长度和所述数据包中的数据长度不同时,数据包传输错误。
    上述的方法,优选的,所述生成重发指令包括:
    依据接收到的数据包的发包序号确定被丢包的数据包的发包序号;
    依据被丢包的数据包的发包序号生成重发指令。
    经由上述的技术方案可知,与现有技术相比,本发明提供了一种HDLC数据发送方法,该方法应用于发送端,包括:依据预设的组包规则,对待发送的数据打包得到数据包;所述数据包的包头中包括发包序号和发包类型,所述发包类型为正常发包;通过HDLC发送所述数据包;当接收到接收端反馈的重发指令时,依据所述重发指令获取待重发的数据包,所述待重发的数据包的包头中包括发包序号和发包类型,所述发包类型为重传包;通过HDLC发送所述待重发的数据包。本发明中提供的HDLC重发方法,在发送端发送数据包时,添加的包头中包括发包序号和发包类型,并通过HDLC发送所述数据包。接收到重发指令时,直接根据该重发指令获取待重发的数据包,并 将该数据包重发,无需进行是否需要重传的判断,减少了重传过程对发送端的占用时间,不影响发送端发送数据的速度。并且,采用该方法只是将发包序号和发包类型添加到数据包中,无需对HDLC芯片进行改变,不会增加HDLC的成本。
    附图说明
    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
    图1为本发明提供的一种HDLC数据发送方法实施例1的流程图;
    图2为本发明提供的一种HDLC数据发送方法实施例2的流程图;
    图3为本发明提供的一种HDLC数据发送方法实施例2的软件封装的关联关系图;
    图4为本发明提供的一种HDLC数据发送方法实施例2的帧格式图;
    图5为本发明提供的一种HDLC数据发送方法实施例3的流程图;
    图6为本发明提供的一种HDLC数据发送方法实施例4的流程图;
    图7为本发明提供的一种HDLC数据发送方法实施例5的流程图;
    图8为本发明提供的一种HDLC数据发送方法实施例6的流程图;
    图9为本发明提供的一种HDLC数据发送方法实施例7的流程图;
    图10为本发明提供的一种HDLC数据发送方法实施例8的流程图。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
    如图1示出了本发明提供的一种HDLC数据发送方法实施例1的流程图,该方法应用于发送端,该方法具体通过以下步骤实现:
    步骤S101:依据预设的组包规则,对待发送的数据打包得到数据包;
    其中,该发送端预设有组包规则,根据该组包规则对待发送的数据打包,并在打包得到的数据包中添加包头。
    其中,所述数据的包头中包括发包序号和发包类型,所述发包类型为正常发包。
    需要说明的是,由于待发送信息中包含的数据较多,一个数据包不能发送,则可将该数据拆分为几个部分,每个部分的数据打包得到一个数据包,在该数据包中添加表示该部分数据的顺序的发包序号。
    如,有5个数据包共同发送一个信息,则将该信息拆分为5部分,分别打包得到5个数据包,每个数据包的包头中添加该数据包的发包序号,根据该发包序号可确定这5个数据包发送的为同一个消息以及其先后顺序。
    步骤S102:通过HDLC发送所述数据包;
    其中,将打包完成的数据包通过HDLC协议发送,以使得接收端对该数据包进行接收。
    当然,在发送过程中,可能会无误的发送到接收端,也可能在数据包传输出现问题,如接收端无法接收到数据包出现丢包现象,还有可能发送过程中出现其他问题,导致接收端接收到的数据包发生错误。
    步骤S103:当接收到接收端反馈的重发指令时,依据所述重发指令获取待重发的数据包;
    其中,所述待重发的数据包的包头中包括发包序号和发包类型,所述发包类型为重传包。
    其中,当接收端不能准确无误的接收到该数据包时,则会反馈发送端重发指令。
    其中,当接收到该重发指令后,可对该重发指令进行解析,根据该重发指令中携带的信息确定需要待重发的数据包。
    需要说明的是,由于该重发指令也是一种通过HDLC的传输的特殊的数据包,该重发指令中包头中也相应的携带有发包类型,该类型发包类型为请求重传包。
    具体,对接收到的信息(重发指令)进行解析,得到其包头中的发包类型为请求重传包,则确定该信息为重发指令,响应该重发指令,依据该重发指令获取待重发的数据包。
    步骤S104:通过HDLC发送所述待重发的数据包。
    其中,将待重发的数据通过HDLC协议发送,以使得接收端对该数据包重新进行接收,以对步骤S102发送过程中出现问题时接收端处缺失的正确数据包补齐。
    综上,本实施例中提供了一种HDLC数据发送方法,该方法应用于发送端,在发送端发送数据包时,添加的包头中包括发包序号和发包类型,并通过HDLC发送所述数据包。接收到重发指令时,直接根据该重发指令获取待重发的数据包,并将该数据包重发,无需进行是否需要重传的判断,减少了重传过程对发送端的占用时间,不影响发送端发送数据的速度。并且,采用该方法只是将发包序号和发包类型添加到数据包中,无需对HDLC芯片进行改变,不会增加HDLC的成本。
    如图2示出了本发明提供的一种HDLC数据发送方法实施例2的流程图,该方法应用于发送端,该方法具体通过以下步骤实现:
    步骤S201:将所述HDLC的底层发送接收接口封装到所述待发送数据中;
    其中,软件包提供的带有重发功能的接受发送端口,该发送接收端口供应用层使用,HDLC驱动层提供数据发送接收端口,该端口供软件包使用。
    具体的,如图3所示的软件封装的关联关系图,包括:应用软件301、软件包302和HDLC底层驱动包303。应用软件调用软件包封装的带有重发功能的发送接收接口发送数据,软件包中对数据进行封装,然后调用HDLC驱动提供的接收发送端口,通过HDLC发送最终的数据包。
    步骤S202:按照预设的帧格式将所述待发送数据进行封包,得到数据包;
    其中,发送端中预设有帧格式,依据该帧格式对待发送的数据进行封包。
    具体的,如图4所示的帧格式图,该帧格式中的seq(H)+seq(L)为发包序号、pkgType为发包类型、dataLen为数据长度、data为发送数据。
    其中,该发包类型中,0表示正常发包,1表示请求重传包,2表示重传包,其他预留。
    需要说明的是,重发指令也可采用该帧格式,以方便发送端对其进行分析,其中,该重发指令的发包类型是1。
    其中,seq(H)为64为数据的高段,seq(L)为低段,二者可以合并为一个。
    例如数据:
    0x00 0x00 0x01 0x00 0xaf 0x23 0x32 0x1b 0x00 0x00 0x00 0x0a 0x11 0x120x43 0x35 0x11 0x12 0x43 0x350x11 0x12
    其中,发包序号为0x00000100af23321b,发包类型:0x0000(正常发包),数据长度:0x000a 发送数据:0x11 0x12 0x43 0x35 0x11 0x12 0x43 0x35 0x110x12
    需要说明的是,本实施例中的帧格式为一个标准的帧格式,实际实施中不限定于此,只需要有发包序号,发包类型,数据长度和发送数据这几个字段也可实现。
    需要说明的是,对待发送数据打包得到数据包之后,还包括:缓存所述数据包至预设存储区域,以为后续接收到重发指令时,依据该缓存的数据包生成待重发的数据包。
    步骤S203:通过HDLC发送所述数据包;
    步骤S204:当接收到接收端反馈的重发指令时,依据所述重发指令获取待重发的数据包;
    步骤S205:通过HDLC发送所述待重发的数据包。
    其中,步骤S203-205与实施例1中的步骤S102-104一致,本实施例不再赘述。
    综上,本实施例中提供的一种HDLC数据发送方法在,依据预设的组包规则,对待发送数据打包得到数据包具体包括:将所述HDLC的底层发送接收接口封装到所述待发送数据中;按照预设的帧格式将所述待发送数据进行封包,得到数据包。采用该方法,将HDLC的底层发送接收接口封装到所述待发送数据中,以使得可根据该HDLC驱动通过HDLC发送最终的数据包。
    如图5示出了本发明提供的一种HDLC数据发送方法实施例3的流程图,该方法应用于发送端,该方法具体通过以下步骤实现:
    步骤S501:依据预设的组包规则,对待发送的数据打包得到数据包;
    步骤S502:通过HDLC发送所述数据包;
    其中,步骤S501-502与实施例1中的步骤S101-102一致,本申请不再赘述。
    步骤S503:当接收到接收端反馈的重发指令时,解析所述重发指令,得到待重发数据对应的数据包的指示信息;
    其中,重发指令中携带待重发数据对应的数据包的指示信息。
    其中,该重发指令采用与发送端发送的数据包相同的帧格式,该指示信息作为发送数据写入该格式中。
    具体的,对该重发指令进行解析,即可其中的发送数据内容对应的指示信息。
    步骤S504:依据所述指示信息,从所述预设存储区域获取与所述指示信息相应的数据包;
    其中,发送数据包时,还将该数据包缓存至预设存储区域。
    因此,根据该指示信息,从该存储区域中获取与该指示信息相应的数据包。
    具体实施中,一个待发送的信息对应的多个数据包的发包序号具有一定的规律,根据相邻的数据包可确定一数据包的发包序号,因此该指示信息可以为该数据包的发包序号。
    具体的,根据该发包序号,可从存储区域中查找具有相同的发包序号的数据包。
    当然,接收端也可根据接收到的数据包中的携带的数据生成指示信息,该指示信息中包含有接收端接收到的数据包的信息,发送端根据该指示信息从存储区域中确定该数据包对应的该待发送的信息,进而从该待发送的信息中确定接收端未接收到的数据包。
    例如,当该发送端发送的信息为1-30,信息1-10、信息11-20、信息21-30分别组包发送,信息1-10为数据包1,信息11-20为数据包2,信息21-30为数据包3,当接收端接收到数据包1和数据包2后,未收到数据包3,该接收端根据该数据携带的数据生成指示信息,该指示信息包含有该接收端接受到信息1-20,发送端接受到该指示信息后,根据该指示信息可确定接收失败的信息为21-30,从存储区域中存储的该待发送信息中的21-30信息组成的数据包,即数据包3。
    步骤S505:将所述数据包的包头中携带的发包类型由正常发包修改为重传包,得到待重发的数据包;
    其中,步骤S504中获取的数据包为正常发包的数据包,为将其改为待重发的数据包,可将其包头的发包类型由正常发包修改为重传包,如从0修改为2。
    步骤S506:通过HDLC发送所述待重发的数据包。
    其中,步骤S506与实施例1中的步骤S104一致,本申请不再赘述。
    综上,本实施例提供的一种HDLC数据发送方法中,该重发指令中携带待重发数据对应的数据包的指示信息,则所述依据所述重发指令获取待重发的数据包包括:解析所述重发指令,得到待重发数据对应的数据包的指示信息;依据所述指示信息,从所述预设存储区域获取与所述指示信息相应的数据包;将所述数据包的包头中携带的发包类型由正常发包修改为重传包,得到待重发的数据包。采用该方法,根据重发指令中携带的待重发数据对应的数据包的指示信息,可直接根据该指示信息从存储区域中获取相应的数据包,将该数据包包头中的发包类型修改为重传包即可,该确定重传包的过程简单,耗时短,重传过程迅速。
    如图6示出了本发明提供的一种HDLC数据发送方法实施例4的流程图,该方法应用于发送端,该方法具体通过以下步骤实现:
    步骤S601:依据预设的组包规则,对待发送的数据打包得到数据包;
    步骤S602:通过HDLC发送所述数据包;
    其中,步骤S601-602与实施例1中的步骤S101-102一致,本实施例不再赘述。
    步骤S603:当接收到接收端反馈的重发指令时,控制当前的数据包发送进程暂停;
    其中,在执行本次的重发之前,发送端还需要对当前的数据包发送进程暂停,以保证对该重发优先执行,使得接收端尽快接收到完整正确的数据内容。
    当重发完成后,继续数据包发送进程。
    需要说明的是,在本实施例中为先执行步骤S603,然后执行步骤S604后,但不限定于此,实际实施中二者可以同时进行。
    步骤S604:依据所述重发指令获取待重发的数据包;
    步骤S605:通过HDLC发送所述待重发的数据包。
    其中,步骤S604-605与实施例1中的步骤S103-104一致,本实施例不再赘述。
    需要说明的是,该发送端可设置有发送控制器,用于接收重发指令,当其接收到该重发指令时,指示重新发送封包,对重新发送的过程进行控制。
    综上,本实施例中提供的一种HDLC数据发送方法,所述接收到接收端反馈的重发指令之后,依据所述重发指令获取待重发的数据包之前,还包括:控制当前的数据包发送进程暂停,以保证对该重发优先执行,使得接收端尽快接收到完整正确的数据内容。
    上述本发明提供的实施例中详细描述了发送端执行的一种HDLC数据发送方法,相应的,本发明还提供了接收端端执行的一种HDLC数据发送方法,下面给出具体的实施例进行详细说明。
    如图7示出了本发明提供的一种HDLC数据发送方法实施例5的流程图,该方法应用于接收端,该方法具体通过以下步骤实现:
    步骤S701:通过HDLC接收发送端发送的数据包;
    其中,所述数据包的包头中包括发包序号和发包类型。
    步骤S702:分析所述数据包,并判断是否出现数据包传输错误;
    其中,接收到数据包后,根据该数数据包中携带的信息,判断是否出现数据包传输错误。
    其中,该数据传输错误包括:丢包和数据包发生错误等。
    具体的,该丢包的情况可根据数据包的包头中的发包序号进行判断,该数据包发生错误可对数据包的格式进行判断。
    步骤S703:如果传输错误,生成重发指令并反馈发送端。
    其中,当出现传输错误时,根据该错误生成重发指令,并反馈给发送端,以使发送端重新发送相应的数据包。
    具体点,根据该传输错误内容,按照预设的帧格式生成重发指令。
    其中,该重发指令的发包类型为1,即请求重传包。
    当然,步骤S702在判断结果为当未出现丢包时,继续接收后续的数据包。
    综上,本实施例提供了一种HDLC数据发送方法,包括:通过HDLC接收发送端发送的数据包,所述数据包的包头中包括发包序号和发包类型;分析所述数据包,并判断是否出现数据包传输错误;如果传输错误,生成重发指令并反馈发送端。采用该方法,在接收端处判断是否出现传输错误,并在出现传输错误时生成重发指令反馈发送端,保证了发送端无需进行是否需要重传的判断,减少了重传过程对发送端的占用时间,不影响发送端发送数据的速度。
    如图8示出了本发明提供的一种HDLC数据发送方法实施例6的流程图,该方法应用于接收端,该方法具体通过以下步骤实现:
    步骤S801:通过HDLC接收发送端发送的数据包;
    其中,步骤S801与实施例5中的步骤S701一致,本实施例不再赘述。
    步骤S802:解析所述数据包,得到所述包头中的发包序号和发包类型;
    其中,该数据包的包头中有发包序号和发包类型,解析该数据包即可得到其发包序号和发包类型。
    步骤S803:依据所述数据包的发包类型,判断所述数据包是正常发包的数据包,还是重发的数据包;
    其中,该发包类型中,0表示正常发包,1表示请求重传包,2表示重传包,其他预留。
    具体的,当该数据包中的发包类型为0时,则其为正常发包的数据包;当其发包类型为2中,则其为重传的数据包。
    步骤S804:当所述数据包为正常发包的数据包时,依据所述正常发包的数据包中的发包序号,判断是否出现丢包,如果是,出现传输错误;
    其中,同一信息对应的多个数据包的发包序号连续。
    具体的,当该数据为正常发包的数据包时,将该数据包中的发包序号与之前接收到的数据包的发包序号进行比对,当二者连续时,则认为无丢包,如果二者出现不连续,则出现丢包情况,此时出现传输错误,需要重新传输丢包的数据包。
    步骤S805:当所述数据包为重发的数据包时,依据所述重发的数据包中发包序号与所述接收端中存储的正常发包的数据包判断是否出现丢包,如果是,出现传输错误;
    其中,同一信息对应的多个数据包的发包序号连续。
    具体的,当该数据为重发的数据包时,将该数据包中的发包序号与之前正常发包的发包序号进行比对,当二者连续时,则认为修正了上次的丢包问题,本次重传未出现丢包。
    但是,该数据包中的发包序号与之前正常发包的发包序号进行比对,如果二者仍然不连续,则出现丢包情况,此时出现传输错误,需要再次重新传输丢包的数据包。
    步骤S806:如果传输错误,依据接收到的数据包的发包序号确定被丢包的数据包的发包序号;
    其中,结合步骤S804和步骤S805中确定出现丢包的过程,可根据接收到的各个数据包的发包序号确定被丢包的数据包的发包序号。
    如接收到的各个数据包的发包序号为1、2、4和5,根据发包序号的连续性,可确定被丢包的数据包的发包数据为3。
    步骤S807:依据被丢包的数据包的发包序号生成重发指令并反馈发送端。
    其中,生成重发指令,该重发指令中携带有该被丢包的数据包的发包序号,如4号数据包。
    其中,该重发指令采用预设的帧格式,具体的,将该被丢包的数据包的发包序号作为发送数据写入该重发指令中。
    具体实施中,如果判断有传输错误就关闭进程等待重发,在等待重发时间中接收到的数据包则无需判断其的发包类型,其直接根据其中发包序号与存储的正常发包的数据包是否连续进行判断。
    综上,本实施例提供的一种HDLC数据发送方法中,该分析所述数据包,并判断是否出现数据包传输错误包括:解析所述数据包,得到所述包头中的发包序号和发包类型;依据所述数据包的发包类型,判断所述数据包为正常发包的数据包,还是重发的数据包;当所述数据包为正常发包的数据包时,依据所述正常发包的数据包中的发包序号,判断是否出现丢包,如果是,出现传输错误;当所述数据包为重发的数据包时,依据所述重发的数据包中发 包序号与所述接收端中存储的正常发包的数据包判断是否出现丢包,如果是,出现传输错误。采用该方法,根据该数据包中的发包序号判断是否出现丢包,判断方法简单,易于实现。
    如图9示出了本发明提供的一种HDLC数据发送方法实施例7的流程图,该方法应用于接收端,该方法具体通过以下步骤实现:
    步骤S901:通过HDLC接收发送端发送的数据包;
    其中,步骤S901与实施例5中的步骤S701一致,本实施例不再赘述。
    步骤S902:所述数据包的帧格式是否满足预设的帧格式;如果不满足,则出现数据包传输错误;
    其中,由于接收端和发送端之间采用预设的帧格式形式的数据包进行数据传输,当传输过程中出现故障,会导致接收端接收到数据包的帧格式不满足该预设的帧格式,此时可能出现数据包传输错误。
    即使该数据包被接收端接收,由于其帧格式已变,其内部传输的数据也会受到影响,因此,将其判断为数据包传输错误,需要重发该数据包。
    步骤S903:如果传输错误,生成重发指令并反馈发送端。
    其中,步骤S903与实施例5中的步骤S703一致,本实施例不再赘述。
    综上,本实施例提供的一种HDLC数据发送方法中,该分析所述数据包,并判断是否出现数据包传输错误包括:所述数据包的帧格式是否满足预设的帧格式;如果不满足,则出现数据包传输错误。采用该方法,直接对该数据包的帧格式进行判断,判断方法简单,易于实现。
    如图10示出了本发明提供的一种HDLC数据发送方法实施例8的流程图,该方法应用于接收端,该方法具体通过以下步骤实现:
    步骤S1001:通过HDLC接收发送端发送的数据包;
    其中,步骤S1001与实施例5中的步骤S701一致,本实施例不再赘述。
    步骤S1002:分析所述数据包,确定所述发送数据中的实际数据长度;
    具体的,对接收到的数据包进行分析,得到其中携带的发包序号,发包类型,数据长度和发送数据等信息,进一步对该数据包中的发送数据进行分析得到其占用的实际数据长度。
    步骤S1003:将所述实际数据长度和所述数据包中的数据长度比对,得到比对结果;
    其中,该数据包中携带的数据长度为发送端发出的数据长度,其应该与发送数据占用的实际数据长度一致。
    具体的,将该实际数据长度和数据包中的携带数据长度信息比较,得到比较结果,该比较结果为两种:相同或者不同。
    步骤S1004:当所述比对结果表示所述实际数据长度和所述数据包中的数据长度不同时,数据包传输错误;
    其中,当实际数据长度和数据包中的携带数据长度信息不同时,表明该数据包传输过程中,其携带的发送数据出现问题,导致接收端接收到的发送数据与发送端发送出的发送数据不同,数据包传输故障。
    步骤S1005:如果传输错误,生成重发指令并反馈发送端。
    其中,步骤S1005与实施例5中的步骤S703一致,本实施例不再赘述。
    综上,本实施例提供的一种HDLC数据发送方法中,所述数据包的包头中还包括:数据长度和发送数据,则分析所述数据包,并判断是否出现数据包传输错误包括:分析所述数据包,确定所述发送数据中的实际数据长度;将所述实际数据长度和所述数据包中的数据长度比对,得到比对结果;当所述比对结果表示所述实际数据长度和所述数据包中的数据长度不同时,数据包传输错误。采用该方法,通过对数据包中发送数据的实际数据长度与所述数据包中携带的数据长度比对,判断方法简单,易于实现。
    本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
    对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。

    关 键  词:
    一种 高级 数据链 控制 数据 发送 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种高级数据链路控制数据发送方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4900258.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1