《一种高级数据链路控制数据发送方法.pdf》由会员分享,可在线阅读,更多相关《一种高级数据链路控制数据发送方法.pdf(19页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104283650 A (43)申请公布日 2015.01.14 CN 104283650 A (21)申请号 201410620117.X (22)申请日 2014.11.05 H04L 1/16(2006.01) (71)申请人 株洲南车时代电气股份有限公司 地址 412001 湖南省株洲市石峰区时代路 169 号 (72)发明人 杨卫峰 粟爱军 唐军 王大君 罗林 蒋国涛 邹智荣 (74)专利代理机构 北京集佳知识产权代理有限 公司 11227 代理人 王宝筠 (54) 发明名称 一种高级数据链路控制数据发送方法 (57) 摘要 本发明提供了一种 HDLC 重发。
2、方法, 该方法应 用于发送端, 在发送端发送数据包时, 添加的包头 中包括发包序号和发包类型, 并通过 HDLC 发送所 述数据包。 接收到重发指令时, 直接根据该重发指 令获取待重发的数据包, 并将该数据包重发, 无需 进行是否需要重传的判断, 减少了重传过程对发 送端的占用时间, 不影响发送端发送数据的速度。 并且, 采用该方法只是将发包序号和发包类型添 加到数据包中, 无需对 HDLC 芯片进行改变, 不会 增加 HDLC 的成本。 (51)Int.Cl. 权利要求书 2 页 说明书 10 页 附图 6 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明。
3、书10页 附图6页 (10)申请公布号 CN 104283650 A CN 104283650 A 1/2 页 2 1. 一种高级数据链路控制 HDLC 数据发送方法, 其特征在于, 应用于发送端, 所述方法 包括 : 依据预设的组包规则, 对待发送的数据打包得到数据包 ; 所述数据包的包头中包括发 包序号和发包类型, 所述发包类型为正常发包 ; 通过 HDLC 发送所述数据包 ; 当接收到接收端反馈的重发指令时, 依据所述重发指令获取待重发的数据包, 所述待 重发的数据包的包头中包括发包序号和发包类型, 所述发包类型为重传包 ; 通过 HDLC 发送所述待重发的数据包。 2. 根据权利要求 。
4、1 所述的方法, 其特征在于, 所述依据预设的组包规则, 对待发送数据 打包得到数据包具体包括 : 将所述 HDLC 的底层发送接收接口封装到所述待发送数据中 ; 按照预设的帧格式将所述待发送数据进行封包, 得到数据包。 3. 根据权利要求 1 所述的方法, 其特征在于, 对待发送数据打包得到数据包之后, 还包 括 : 缓存所述数据包至预设存储区域。 4. 根据权利要求 1 所述的方法, 其特征在于, 所述重发指令中携带待重发数据对应的 数据包的指示信息, 则所述依据所述重发指令获取待重发的数据包包括 : 解析所述重发指令, 得到待重发数据对应的数据包的指示信息 ; 依据所述指示信息, 从所述。
5、预设存储区域获取与所述指示信息相应的数据包 ; 将所述数据包的包头中携带的发包类型由正常发包修改为重传包, 得到待重发的数据 包。 5. 根据权利要求 1 所述的方法, 其特征在于, 所述接收到接收端反馈的重发指令之后, 依据所述重发指令获取待重发的数据包之前, 还包括 : 控制当前的数据包发送进程暂停。 6. 一种 HDLC 数据发送方法, 其特征在于, 应用于接收端, 包括 : 通过 HDLC 接收发送端发送的数据包, 所述数据包的包头中包括发包序号和发包类型 ; 分析所述数据包, 并判断是否出现数据包传输错误 ; 如果传输错误, 生成重发指令并反馈发送端。 7. 根据权利要求 6 所述的。
6、方法, 其特征在于, 所述分析所述数据包, 并判断是否出现数 据包传输错误包括 : 解析所述数据包, 得到所述包头中的发包序号和发包类型 ; 依据所述数据包的发包类型, 判断所述数据包为正常发包的数据包, 还是重发的数据 包 ; 当所述数据包为正常发包的数据包时, 依据所述正常发包的数据包中的发包序号, 判 断是否出现丢包, 如果是, 出现传输错误 ; 当所述数据包为重发的数据包时, 依据所述重发的数据包中发包序号与所述接收端中 存储的正常发包的数据包判断是否出现丢包, 如果是, 出现传输错误。 8. 根据权利要求 7 所述的方法, 其特征在于, 所述分析所述数据包, 并判断是否出现数 据包传。
7、输错误包括 : 权 利 要 求 书 CN 104283650 A 2 2/2 页 3 所述数据包的帧格式是否满足预设的帧格式 ; 如果不满足, 则出现数据包传输错误。 9. 根据权利要求 6 所述的方法, 其特征在于, 所述数据包的包头中还包括 : 数据长度和 发送数据, 则分析所述数据包, 并判断是否出现数据包传输错误包括 : 分析所述数据包, 确定所述发送数据中的实际数据长度 ; 将所述实际数据长度和所述数据包中的数据长度比对, 得到比对结果 ; 当所述比对结果表示所述实际数据长度和所述数据包中的数据长度不同时, 数据包传 输错误。 10. 根据权利要求 7-9 任一项所述的方法, 其特征。
8、在于, 所述生成重发指令包括 : 依据接收到的数据包的发包序号确定被丢包的数据包的发包序号 ; 依据被丢包的数据包的发包序号生成重发指令。 权 利 要 求 书 CN 104283650 A 3 1/10 页 4 一种高级数据链路控制数据发送方法 技术领域 0001 本发明涉及信息传输领域, 更具体的说, 是涉及一种高级数据链路控制数据发送 方法。 背景技术 0002 HDLC(High-Level Data Link Control, 高级数据链路控制)是一个在同步网上传 输数据、 面向比特的数据链路层协议, 具有较高的传输效率, 目前在轨道交通领域得到了比 较广泛的应用。 0003 但是, 。
9、由于现有的 HDLC 芯片在运行过程中, HDLC 数据存在一定的丢包现象, 导致 数据传输不稳定。由于轨道交通领域要求的高安全性和可靠性, 使得需要有一种有效的重 发方法, 以保证 HDLC 通信的可靠性。 0004 现有技术中, HDLC 重发方法, 是基于改进后的 HDLC 芯片增加的内部帧计数功能, 发送端 ( 即改进后的 HDLC 芯片 ) 在发送每一帧数据时自动添加帧序号, 由于接收端接收到 数据时只反馈 ACK(Acknowledgement, 确认字符 ), 则发送端根据接收到的 ACK 和该帧序号 判断是否出现丢包情况, 判断方式可以为根据帧序号计算发送帧数据个数, 并将该帧。
10、数据 个数与 ACK 个数比较是否一致, 如果不一致则出现丢包现象, 如果有丢包, 重新发送数据。 0005 然而采用该方法, 需要在发送端将该数据的序号与反馈的 ACK 进行比对, 导致重 传过程较复杂, 当发送数据较多时, 比对过程耗时长, 长期占用发送端, 到导致影响发送端 发送数据的进度, 降低了 HDLC 传输数据的速度。 发明内容 0006 有鉴于此, 本发明提供了一种 HDLC 数据发送方法, 解决了现有的基于改进的 HDLC 芯片, 由于根据 ACK 和该帧序号判断是否出现丢包情况的计算导致的重传过程复杂, 耗时 长的问题。 0007 为实现上述目的, 本发明提供如下技术方案 。
11、: 0008 一种高级数据链路控制 HDLC 数据发送方法, , 应用于发送端, 所述方法包括 : 0009 依据预设的组包规则, 对待发送的数据打包得到数据包 ; 所述数据包的包头中包 括发包序号和发包类型, 所述发包类型为正常发包 ; 0010 通过 HDLC 发送所述数据包 ; 0011 当接收到接收端反馈的重发指令时, 依据所述重发指令获取待重发的数据包, 所 述待重发的数据包的包头中包括发包序号和发包类型, 所述发包类型为重传包 ; 0012 通过 HDLC 发送所述待重发的数据包。 0013 上述的方法, 优选的, 所述依据预设的组包规则, 对待发送数据打包得到数据包具 体包括 :。
12、 0014 将所述 HDLC 的底层发送接收接口封装到所述待发送数据中 ; 0015 按照预设的帧格式将所述待发送数据进行封包, 得到数据包。 说 明 书 CN 104283650 A 4 2/10 页 5 0016 上述的方法, 优选的, 对待发送数据打包得到数据包之后, 还包括 : 0017 缓存所述数据包至预设存储区域。 0018 上述的方法, 优选的, 所述重发指令中携带待重发数据对应的数据包的指示信息, 则所述依据所述重发指令获取待重发的数据包包括 : 0019 解析所述重发指令, 得到待重发数据对应的数据包的指示信息 ; 0020 依据所述指示信息, 从所述预设存储区域获取与所述指。
13、示信息相应的数据包 ; 0021 将所述数据包的包头中携带的发包类型由正常发包修改为重传包, 得到待重发的 数据包。 0022 上述的方法, 优选的, 所述接收到接收端反馈的重发指令之后, 依据所述重发指令 获取待重发的数据包之前, 还包括 : 0023 控制当前的数据包发送进程暂停。 0024 一种 HDLC 数据发送方法, 应用于接收端, 包括 : 0025 通过 HDLC 接收发送端发送的数据包, 所述数据包的包头中包括发包序号和发包 类型 ; 0026 分析所述数据包, 并判断是否出现数据包传输错误 ; 0027 如果传输错误, 生成重发指令并反馈发送端。 0028 上述的方法, 优选。
14、的, 所述分析所述数据包, 并判断是否出现数据包传输错误包 括 : 0029 解析所述数据包, 得到所述包头中的发包序号和发包类型 ; 0030 依据所述数据包的发包类型, 判断所述数据包为正常发包的数据包, 还是重发的 数据包 ; 0031 当所述数据包为正常发包的数据包时, 依据所述正常发包的数据包中的发包序 号, 判断是否出现丢包, 如果是, 出现传输错误 ; 0032 当所述数据包为重发的数据包时, 依据所述重发的数据包中发包序号与所述接收 端中存储的正常发包的数据包判断是否出现丢包, 如果是, 出现传输错误。 0033 上述的方法, 优选的, 所述分析所述数据包, 并判断是否出现数据。
15、包传输错误包 括 : 0034 所述数据包的帧格式是否满足预设的帧格式 ; 0035 如果不满足, 则出现数据包传输错误。 0036 上述的方法, 优选的, 所述数据包的包头中还包括 : 数据长度和发送数据, 则分析 所述数据包, 并判断是否出现数据包传输错误包括 : 0037 分析所述数据包, 确定所述发送数据中的实际数据长度 ; 0038 将所述实际数据长度和所述数据包中的数据长度比对, 得到比对结果 ; 0039 当所述比对结果表示所述实际数据长度和所述数据包中的数据长度不同时, 数据 包传输错误。 0040 上述的方法, 优选的, 所述生成重发指令包括 : 0041 依据接收到的数据包。
16、的发包序号确定被丢包的数据包的发包序号 ; 0042 依据被丢包的数据包的发包序号生成重发指令。 0043 经由上述的技术方案可知, 与现有技术相比, 本发明提供了一种 HDLC 数据发送方 说 明 书 CN 104283650 A 5 3/10 页 6 法, 该方法应用于发送端, 包括 : 依据预设的组包规则, 对待发送的数据打包得到数据包 ; 所述数据包的包头中包括发包序号和发包类型, 所述发包类型为正常发包 ; 通过 HDLC 发 送所述数据包 ; 当接收到接收端反馈的重发指令时, 依据所述重发指令获取待重发的数据 包, 所述待重发的数据包的包头中包括发包序号和发包类型, 所述发包类型为。
17、重传包 ; 通过 HDLC 发送所述待重发的数据包。本发明中提供的 HDLC 重发方法, 在发送端发送数据包时, 添加的包头中包括发包序号和发包类型, 并通过 HDLC 发送所述数据包。接收到重发指令 时, 直接根据该重发指令获取待重发的数据包, 并将该数据包重发, 无需进行是否需要重传 的判断, 减少了重传过程对发送端的占用时间, 不影响发送端发送数据的速度。并且, 采用 该方法只是将发包序号和发包类型添加到数据包中, 无需对 HDLC 芯片进行改变, 不会增加 HDLC 的成本。 附图说明 0044 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需。
18、要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据 提供的附图获得其他的附图。 0045 图 1 为本发明提供的一种 HDLC 数据发送方法实施例 1 的流程图 ; 0046 图 2 为本发明提供的一种 HDLC 数据发送方法实施例 2 的流程图 ; 0047 图 3 为本发明提供的一种 HDLC 数据发送方法实施例 2 的软件封装的关联关系图 ; 0048 图 4 为本发明提供的一种 HDLC 数据发送方法实施例 2 的帧格式图 ; 0049 图 5 为本发明提供的一种 HDLC 数据发送。
19、方法实施例 3 的流程图 ; 0050 图 6 为本发明提供的一种 HDLC 数据发送方法实施例 4 的流程图 ; 0051 图 7 为本发明提供的一种 HDLC 数据发送方法实施例 5 的流程图 ; 0052 图 8 为本发明提供的一种 HDLC 数据发送方法实施例 6 的流程图 ; 0053 图 9 为本发明提供的一种 HDLC 数据发送方法实施例 7 的流程图 ; 0054 图 10 为本发明提供的一种 HDLC 数据发送方法实施例 8 的流程图。 具体实施方式 0055 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是。
20、本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。 0056 如图 1 示出了本发明提供的一种 HDLC 数据发送方法实施例 1 的流程图, 该方法应 用于发送端, 该方法具体通过以下步骤实现 : 0057 步骤 S101 : 依据预设的组包规则, 对待发送的数据打包得到数据包 ; 0058 其中, 该发送端预设有组包规则, 根据该组包规则对待发送的数据打包, 并在打包 得到的数据包中添加包头。 0059 其中, 所述数据的包头中包括发包序号和发包类型, 所述发包类型为正常发包。 。
21、0060 需要说明的是, 由于待发送信息中包含的数据较多, 一个数据包不能发送, 则可将 说 明 书 CN 104283650 A 6 4/10 页 7 该数据拆分为几个部分, 每个部分的数据打包得到一个数据包, 在该数据包中添加表示该 部分数据的顺序的发包序号。 0061 如, 有 5 个数据包共同发送一个信息, 则将该信息拆分为 5 部分, 分别打包得到 5 个数据包, 每个数据包的包头中添加该数据包的发包序号, 根据该发包序号可确定这 5 个 数据包发送的为同一个消息以及其先后顺序。 0062 步骤 S102 : 通过 HDLC 发送所述数据包 ; 0063 其中, 将打包完成的数据包通。
22、过 HDLC 协议发送, 以使得接收端对该数据包进行接 收。 0064 当然, 在发送过程中, 可能会无误的发送到接收端, 也可能在数据包传输出现问 题, 如接收端无法接收到数据包出现丢包现象, 还有可能发送过程中出现其他问题, 导致接 收端接收到的数据包发生错误。 0065 步骤 S103 : 当接收到接收端反馈的重发指令时, 依据所述重发指令获取待重发的 数据包 ; 0066 其中, 所述待重发的数据包的包头中包括发包序号和发包类型, 所述发包类型为 重传包。 0067 其中, 当接收端不能准确无误的接收到该数据包时, 则会反馈发送端重发指令。 0068 其中, 当接收到该重发指令后, 可。
23、对该重发指令进行解析, 根据该重发指令中携带 的信息确定需要待重发的数据包。 0069 需要说明的是, 由于该重发指令也是一种通过 HDLC 的传输的特殊的数据包, 该重 发指令中包头中也相应的携带有发包类型, 该类型发包类型为请求重传包。 0070 具体, 对接收到的信息(重发指令)进行解析, 得到其包头中的发包类型为请求重 传包, 则确定该信息为重发指令, 响应该重发指令, 依据该重发指令获取待重发的数据包。 0071 步骤 S104 : 通过 HDLC 发送所述待重发的数据包。 0072 其中, 将待重发的数据通过 HDLC 协议发送, 以使得接收端对该数据包重新进行接 收, 以对步骤 。
24、S102 发送过程中出现问题时接收端处缺失的正确数据包补齐。 0073 综上, 本实施例中提供了一种 HDLC 数据发送方法, 该方法应用于发送端, 在发送 端发送数据包时, 添加的包头中包括发包序号和发包类型, 并通过 HDLC 发送所述数据包。 接收到重发指令时, 直接根据该重发指令获取待重发的数据包, 并将该数据包重发, 无需进 行是否需要重传的判断, 减少了重传过程对发送端的占用时间, 不影响发送端发送数据的 速度。并且, 采用该方法只是将发包序号和发包类型添加到数据包中, 无需对 HDLC 芯片进 行改变, 不会增加 HDLC 的成本。 0074 如图 2 示出了本发明提供的一种 H。
25、DLC 数据发送方法实施例 2 的流程图, 该方法应 用于发送端, 该方法具体通过以下步骤实现 : 0075 步骤 S201 : 将所述 HDLC 的底层发送接收接口封装到所述待发送数据中 ; 0076 其中, 软件包提供的带有重发功能的接受发送端口, 该发送接收端口供应用层使 用, HDLC 驱动层提供数据发送接收端口, 该端口供软件包使用。 0077 具体的, 如图 3 所示的软件封装的关联关系图, 包括 : 应用软件 301、 软件包 302 和 HDLC 底层驱动包 303。应用软件调用软件包封装的带有重发功能的发送接收接口发送数 据, 软件包中对数据进行封装, 然后调用 HDLC 驱。
26、动提供的接收发送端口, 通过 HDLC 发送最 说 明 书 CN 104283650 A 7 5/10 页 8 终的数据包。 0078 步骤 S202 : 按照预设的帧格式将所述待发送数据进行封包, 得到数据包 ; 0079 其中, 发送端中预设有帧格式, 依据该帧格式对待发送的数据进行封包。 0080 具体的, 如图 4 所示的帧格式图, 该帧格式中的 seq(H)+seq(L) 为发包序号、 pkgType 为发包类型、 dataLen 为数据长度、 data 为发送数据。 0081 其中, 该发包类型中, 0 表示正常发包, 1 表示请求重传包, 2 表示重传包, 其他预 留。 0082。
27、 需要说明的是, 重发指令也可采用该帧格式, 以方便发送端对其进行分析, 其中, 该重发指令的发包类型是 1。 0083 其中, seq(H) 为 64 为数据的高段, seq(L) 为低段, 二者可以合并为一个。 0084 例如数据 : 0085 0x00 0x00 0x01 0x00 0xaf 0x23 0x32 0x1b 0x00 0x00 0x00 0x0a 0x11 0x120x43 0x35 0x11 0x12 0x43 0x350x11 0x12 0086 其中, 发包序号为 0x00000100af23321b, 发包类型 : 0x0000( 正常发包 ), 数据长 度 : 0。
28、x000a 发送数据 : 0x11 0x12 0x43 0x35 0x11 0x12 0x43 0x35 0x110x12 0087 需要说明的是, 本实施例中的帧格式为一个标准的帧格式, 实际实施中不限定于 此, 只需要有发包序号, 发包类型, 数据长度和发送数据这几个字段也可实现。 0088 需要说明的是, 对待发送数据打包得到数据包之后, 还包括 : 缓存所述数据包至预 设存储区域, 以为后续接收到重发指令时, 依据该缓存的数据包生成待重发的数据包。 0089 步骤 S203 : 通过 HDLC 发送所述数据包 ; 0090 步骤 S204 : 当接收到接收端反馈的重发指令时, 依据所述。
29、重发指令获取待重发的 数据包 ; 0091 步骤 S205 : 通过 HDLC 发送所述待重发的数据包。 0092 其中, 步骤 S203-205 与实施例 1 中的步骤 S102-104 一致, 本实施例不再赘述。 0093 综上, 本实施例中提供的一种 HDLC 数据发送方法在, 依据预设的组包规则, 对待 发送数据打包得到数据包具体包括 : 将所述 HDLC 的底层发送接收接口封装到所述待发送 数据中 ; 按照预设的帧格式将所述待发送数据进行封包, 得到数据包。采用该方法, 将 HDLC 的底层发送接收接口封装到所述待发送数据中, 以使得可根据该 HDLC 驱动通过 HDLC 发送 最终。
30、的数据包。 0094 如图 5 示出了本发明提供的一种 HDLC 数据发送方法实施例 3 的流程图, 该方法应 用于发送端, 该方法具体通过以下步骤实现 : 0095 步骤 S501 : 依据预设的组包规则, 对待发送的数据打包得到数据包 ; 0096 步骤 S502 : 通过 HDLC 发送所述数据包 ; 0097 其中, 步骤 S501-502 与实施例 1 中的步骤 S101-102 一致, 本申请不再赘述。 0098 步骤 S503 : 当接收到接收端反馈的重发指令时, 解析所述重发指令, 得到待重发 数据对应的数据包的指示信息 ; 0099 其中, 重发指令中携带待重发数据对应的数据。
31、包的指示信息。 0100 其中, 该重发指令采用与发送端发送的数据包相同的帧格式, 该指示信息作为发 送数据写入该格式中。 说 明 书 CN 104283650 A 8 6/10 页 9 0101 具体的, 对该重发指令进行解析, 即可其中的发送数据内容对应的指示信息。 0102 步骤 S504 : 依据所述指示信息, 从所述预设存储区域获取与所述指示信息相应的 数据包 ; 0103 其中, 发送数据包时, 还将该数据包缓存至预设存储区域。 0104 因此, 根据该指示信息, 从该存储区域中获取与该指示信息相应的数据包。 0105 具体实施中, 一个待发送的信息对应的多个数据包的发包序号具有一。
32、定的规律, 根据相邻的数据包可确定一数据包的发包序号, 因此该指示信息可以为该数据包的发包序 号。 0106 具体的, 根据该发包序号, 可从存储区域中查找具有相同的发包序号的数据包。 0107 当然, 接收端也可根据接收到的数据包中的携带的数据生成指示信息, 该指示信 息中包含有接收端接收到的数据包的信息, 发送端根据该指示信息从存储区域中确定该数 据包对应的该待发送的信息, 进而从该待发送的信息中确定接收端未接收到的数据包。 0108 例如, 当该发送端发送的信息为 1-30, 信息 1-10、 信息 11-20、 信息 21-30 分别组 包发送, 信息 1-10 为数据包 1, 信息 。
33、11-20 为数据包 2, 信息 21-30 为数据包 3, 当接收端接 收到数据包 1 和数据包 2 后, 未收到数据包 3, 该接收端根据该数据携带的数据生成指示信 息, 该指示信息包含有该接收端接受到信息 1-20, 发送端接受到该指示信息后, 根据该指示 信息可确定接收失败的信息为 21-30, 从存储区域中存储的该待发送信息中的 21-30 信息 组成的数据包, 即数据包 3。 0109 步骤 S505 : 将所述数据包的包头中携带的发包类型由正常发包修改为重传包, 得 到待重发的数据包 ; 0110 其中, 步骤 S504 中获取的数据包为正常发包的数据包, 为将其改为待重发的数据。
34、 包, 可将其包头的发包类型由正常发包修改为重传包, 如从 0 修改为 2。 0111 步骤 S506 : 通过 HDLC 发送所述待重发的数据包。 0112 其中, 步骤 S506 与实施例 1 中的步骤 S104 一致, 本申请不再赘述。 0113 综上, 本实施例提供的一种 HDLC 数据发送方法中, 该重发指令中携带待重发数据 对应的数据包的指示信息, 则所述依据所述重发指令获取待重发的数据包包括 : 解析所述 重发指令, 得到待重发数据对应的数据包的指示信息 ; 依据所述指示信息, 从所述预设存储 区域获取与所述指示信息相应的数据包 ; 将所述数据包的包头中携带的发包类型由正常发 包。
35、修改为重传包, 得到待重发的数据包。 采用该方法, 根据重发指令中携带的待重发数据对 应的数据包的指示信息, 可直接根据该指示信息从存储区域中获取相应的数据包, 将该数 据包包头中的发包类型修改为重传包即可, 该确定重传包的过程简单, 耗时短, 重传过程迅 速。 0114 如图 6 示出了本发明提供的一种 HDLC 数据发送方法实施例 4 的流程图, 该方法应 用于发送端, 该方法具体通过以下步骤实现 : 0115 步骤 S601 : 依据预设的组包规则, 对待发送的数据打包得到数据包 ; 0116 步骤 S602 : 通过 HDLC 发送所述数据包 ; 0117 其中, 步骤 S601-60。
36、2 与实施例 1 中的步骤 S101-102 一致, 本实施例不再赘述。 0118 步骤 S603 : 当接收到接收端反馈的重发指令时, 控制当前的数据包发送进程暂 停 ; 说 明 书 CN 104283650 A 9 7/10 页 10 0119 其中, 在执行本次的重发之前, 发送端还需要对当前的数据包发送进程暂停, 以保 证对该重发优先执行, 使得接收端尽快接收到完整正确的数据内容。 0120 当重发完成后, 继续数据包发送进程。 0121 需要说明的是, 在本实施例中为先执行步骤 S603, 然后执行步骤 S604 后, 但不限 定于此, 实际实施中二者可以同时进行。 0122 步骤 。
37、S604 : 依据所述重发指令获取待重发的数据包 ; 0123 步骤 S605 : 通过 HDLC 发送所述待重发的数据包。 0124 其中, 步骤 S604-605 与实施例 1 中的步骤 S103-104 一致, 本实施例不再赘述。 0125 需要说明的是, 该发送端可设置有发送控制器, 用于接收重发指令, 当其接收到该 重发指令时, 指示重新发送封包, 对重新发送的过程进行控制。 0126 综上, 本实施例中提供的一种 HDLC 数据发送方法, 所述接收到接收端反馈的重发 指令之后, 依据所述重发指令获取待重发的数据包之前, 还包括 : 控制当前的数据包发送进 程暂停, 以保证对该重发优。
38、先执行, 使得接收端尽快接收到完整正确的数据内容。 0127 上述本发明提供的实施例中详细描述了发送端执行的一种 HDLC 数据发送方法, 相应的, 本发明还提供了接收端端执行的一种 HDLC 数据发送方法, 下面给出具体的实施例 进行详细说明。 0128 如图 7 示出了本发明提供的一种 HDLC 数据发送方法实施例 5 的流程图, 该方法应 用于接收端, 该方法具体通过以下步骤实现 : 0129 步骤 S701 : 通过 HDLC 接收发送端发送的数据包 ; 0130 其中, 所述数据包的包头中包括发包序号和发包类型。 0131 步骤 S702 : 分析所述数据包, 并判断是否出现数据包传。
39、输错误 ; 0132 其中, 接收到数据包后, 根据该数数据包中携带的信息, 判断是否出现数据包传输 错误。 0133 其中, 该数据传输错误包括 : 丢包和数据包发生错误等。 0134 具体的, 该丢包的情况可根据数据包的包头中的发包序号进行判断, 该数据包发 生错误可对数据包的格式进行判断。 0135 步骤 S703 : 如果传输错误, 生成重发指令并反馈发送端。 0136 其中, 当出现传输错误时, 根据该错误生成重发指令, 并反馈给发送端, 以使发送 端重新发送相应的数据包。 0137 具体点, 根据该传输错误内容, 按照预设的帧格式生成重发指令。 0138 其中, 该重发指令的发包类。
40、型为 1, 即请求重传包。 0139 当然, 步骤 S702 在判断结果为当未出现丢包时, 继续接收后续的数据包。 0140 综上, 本实施例提供了一种 HDLC 数据发送方法, 包括 : 通过 HDLC 接收发送端发送 的数据包, 所述数据包的包头中包括发包序号和发包类型 ; 分析所述数据包, 并判断是否出 现数据包传输错误 ; 如果传输错误, 生成重发指令并反馈发送端。采用该方法, 在接收端处 判断是否出现传输错误, 并在出现传输错误时生成重发指令反馈发送端, 保证了发送端无 需进行是否需要重传的判断, 减少了重传过程对发送端的占用时间, 不影响发送端发送数 据的速度。 0141 如图 8。
41、 示出了本发明提供的一种 HDLC 数据发送方法实施例 6 的流程图, 该方法应 说 明 书 CN 104283650 A 10 8/10 页 11 用于接收端, 该方法具体通过以下步骤实现 : 0142 步骤 S801 : 通过 HDLC 接收发送端发送的数据包 ; 0143 其中, 步骤 S801 与实施例 5 中的步骤 S701 一致, 本实施例不再赘述。 0144 步骤 S802 : 解析所述数据包, 得到所述包头中的发包序号和发包类型 ; 0145 其中, 该数据包的包头中有发包序号和发包类型, 解析该数据包即可得到其发包 序号和发包类型。 0146 步骤 S803 : 依据所述数据。
42、包的发包类型, 判断所述数据包是正常发包的数据包, 还是重发的数据包 ; 0147 其中, 该发包类型中, 0 表示正常发包, 1 表示请求重传包, 2 表示重传包, 其他预 留。 0148 具体的, 当该数据包中的发包类型为 0 时, 则其为正常发包的数据包 ; 当其发包类 型为 2 中, 则其为重传的数据包。 0149 步骤 S804 : 当所述数据包为正常发包的数据包时, 依据所述正常发包的数据包中 的发包序号, 判断是否出现丢包, 如果是, 出现传输错误 ; 0150 其中, 同一信息对应的多个数据包的发包序号连续。 0151 具体的, 当该数据为正常发包的数据包时, 将该数据包中的发。
43、包序号与之前接收 到的数据包的发包序号进行比对, 当二者连续时, 则认为无丢包, 如果二者出现不连续, 则 出现丢包情况, 此时出现传输错误, 需要重新传输丢包的数据包。 0152 步骤 S805 : 当所述数据包为重发的数据包时, 依据所述重发的数据包中发包序号 与所述接收端中存储的正常发包的数据包判断是否出现丢包, 如果是, 出现传输错误 ; 0153 其中, 同一信息对应的多个数据包的发包序号连续。 0154 具体的, 当该数据为重发的数据包时, 将该数据包中的发包序号与之前正常发包 的发包序号进行比对, 当二者连续时, 则认为修正了上次的丢包问题, 本次重传未出现丢 包。 0155 但。
44、是, 该数据包中的发包序号与之前正常发包的发包序号进行比对, 如果二者仍 然不连续, 则出现丢包情况, 此时出现传输错误, 需要再次重新传输丢包的数据包。 0156 步骤 S806 : 如果传输错误, 依据接收到的数据包的发包序号确定被丢包的数据包 的发包序号 ; 0157 其中, 结合步骤S804和步骤S805中确定出现丢包的过程, 可根据接收到的各个数 据包的发包序号确定被丢包的数据包的发包序号。 0158 如接收到的各个数据包的发包序号为 1、 2、 4 和 5, 根据发包序号的连续性, 可确定 被丢包的数据包的发包数据为 3。 0159 步骤 S807 : 依据被丢包的数据包的发包序号。
45、生成重发指令并反馈发送端。 0160 其中, 生成重发指令, 该重发指令中携带有该被丢包的数据包的发包序号, 如 4 号 数据包。 0161 其中, 该重发指令采用预设的帧格式, 具体的, 将该被丢包的数据包的发包序号作 为发送数据写入该重发指令中。 0162 具体实施中, 如果判断有传输错误就关闭进程等待重发, 在等待重发时间中接收 到的数据包则无需判断其的发包类型, 其直接根据其中发包序号与存储的正常发包的数据 说 明 书 CN 104283650 A 11 9/10 页 12 包是否连续进行判断。 0163 综上, 本实施例提供的一种 HDLC 数据发送方法中, 该分析所述数据包, 并判。
46、断是 否出现数据包传输错误包括 : 解析所述数据包, 得到所述包头中的发包序号和发包类型 ; 依据所述数据包的发包类型, 判断所述数据包为正常发包的数据包, 还是重发的数据包 ; 当 所述数据包为正常发包的数据包时, 依据所述正常发包的数据包中的发包序号, 判断是否 出现丢包, 如果是, 出现传输错误 ; 当所述数据包为重发的数据包时, 依据所述重发的数据 包中发包序号与所述接收端中存储的正常发包的数据包判断是否出现丢包, 如果是, 出现 传输错误。采用该方法, 根据该数据包中的发包序号判断是否出现丢包, 判断方法简单, 易 于实现。 0164 如图 9 示出了本发明提供的一种 HDLC 数据。
47、发送方法实施例 7 的流程图, 该方法应 用于接收端, 该方法具体通过以下步骤实现 : 0165 步骤 S901 : 通过 HDLC 接收发送端发送的数据包 ; 0166 其中, 步骤 S901 与实施例 5 中的步骤 S701 一致, 本实施例不再赘述。 0167 步骤 S902 : 所述数据包的帧格式是否满足预设的帧格式 ; 如果不满足, 则出现数 据包传输错误 ; 0168 其中, 由于接收端和发送端之间采用预设的帧格式形式的数据包进行数据传输, 当传输过程中出现故障, 会导致接收端接收到数据包的帧格式不满足该预设的帧格式, 此 时可能出现数据包传输错误。 0169 即使该数据包被接收端。
48、接收, 由于其帧格式已变, 其内部传输的数据也会受到影 响, 因此, 将其判断为数据包传输错误, 需要重发该数据包。 0170 步骤 S903 : 如果传输错误, 生成重发指令并反馈发送端。 0171 其中, 步骤 S903 与实施例 5 中的步骤 S703 一致, 本实施例不再赘述。 0172 综上, 本实施例提供的一种 HDLC 数据发送方法中, 该分析所述数据包, 并判断是 否出现数据包传输错误包括 : 所述数据包的帧格式是否满足预设的帧格式 ; 如果不满足, 则出现数据包传输错误。采用该方法, 直接对该数据包的帧格式进行判断, 判断方法简单, 易于实现。 0173 如图 10 示出了本发明提供的一种 HDLC 数据发送方法实施例 8 的流程图, 该方法 应用于接收端, 该方法具体通过以下步骤实现 : 0174 步骤 S1001 : 通过 HDLC 接收发送端发送的数据包 ; 0175 其中, 步骤 S1001 与实施例 5 中的步骤 S701 一致, 本实施例不再赘述。 0176 步骤 S1002 : 分析所述数据包, 确定所述发送数据中的实际数据长度 ; 0177 具体的, 对接收到的数据包进行分析, 得到其中携带的发包序号, 发包类型, 数据 长度和发送数据等信息。