RELIABLE UDP LINK FAILURE POSITIONING METHOD AND DEVICE
可靠用户数据报协议链路故障定位方法及装置 技术领域 本发明涉及无线通信领域,尤其涉及一种可靠用户数据报协议( Reliable User Datagram Protocol , RUDP )链路故障定位方法及装置。 背景技术 RUDP是一种基于 RFC908 和 1151 (第二版) 的简单包传输协议。 RUDP提供基于消息的可靠通信功能, 通信是面向连接的, 底层采用用户 数据报协议(User Datagram Protocol, UDP )作为承载协议。 作为一个可靠 传输协议, RUDP用于传输 IP 网络间的电话信号。 RUDP 的一项重要功 能就是重发, 当上一跳节点向下一跳节点发送报文时, 会启动一个超时定 时器, 当超时定时器超时上一跳节点未收到下一跳节点的应答, 就会重新 发送报文, 这种机制有效的保证了数据到达对端。 图 1 为协议中的 RUDP 报文的报文头格式示意图。 其中, SYN字段表示当前为同步, ACK字段表 示报文头有效的承认序号, EACK字段表示当前为扩展承认, RST字段表 示数据包为复位, NUL字段表示数据包为空, CHK字段表示检验和是否包 含报文头或报文头与数据的检验和, TCS字段表示数据包是传输连接状态, 0字段表示其值必须设置为 0, 以上字段统称为控制位( Control Bits )字段, 表示数据包当前状态; 头长度(Header Length ) 字段表示数据包中的用户 数据起始位置; 序列号 (Sequence Number ) 字段表示当打开第一个连接, 每个对等结构任意选取一个初始序列号, 所述序列号用于 SYN字段打开连 接。 在发送数据、 空或复位字段之前, 每个传送方会相应增加序列号; 确 认编码 ( Acknowledgement Number )字段表示传送方最后传送接收方接收 的数据包的序列; 校验和(Checksum ) 字段表示报文头中总会计算出检验
和以确保完整性。 RUDP虽然能够在 RUDP链路中出现超时重传, 但却不能确定是哪个 节点出现故障, 无法对分析整条通信链路提供有效信息, 特别在通信领域 的板间通信下, 由于物理链路相当稳定, 故出现 RUDP断链时, 多半为软 件处理问题, 因此需要一种有效的方法来定位故障点。 发明内容 本发明的目的是, 提供一种 RUDP链路故障定位方法及装置, 以解决 RUDP报文传输过程中的传输路径故障定位问题。 本发明提供了一种 RUDP链路故障定位方法, 所述方法为: 源节点将故障定位参数填充到在 RUDP报文的报文头中预先增加的故 障定位字段中, 并将所述 RUDP报文发送给传输路径上的下一跳节点; 当所述传输路径发生故障时, 所述源节点根据预设策略确定故障点。 本发明进一步提供了一种 RUDP链路故障定位装置, 所述装置包括源 节点, 所述源节点包括 RUDP报文管理模块、 信息发送模块和故障确定模 块, 所述 RUDP报文管理模块, 用于将故障定位参数填充到在 RUDP报文 的报文头中预先增加的故障定位字段中并将所述 RUDP报文发送给传输路 径上的下一跳节点; 所述故障确定模块, 用于在传输路径发生故障时, 根据预设策略确定 故障点。 本发明通过在 RUDP报文的报文头中增加故障定位字段,在发送 RUDP 报文时, 即通过所述故障定位字段携带故障定位参数, 使得 RUDP报文传 输路径一旦发生故障, 即可获知故障点; 本发明减少了数据的发送量, 减 轻网络负荷。
附图说明 图 1是协议中的 RUDP报文的报文头格式的示意图; 图 2是本发明 RUDP报文的报文头格式的实施例一示意图; 图 3是本发明 RUDP报文的报文头格式的实施例二示意图; 图 4是本发明 RUDP链路故障定位方法优选实施例一的流程图; 图 5是本发明 RUDP链路故障定位方法优选实施例二的流程图; 图 6是本发明 RUDP链路故障定位装置优选实施例的原理框图。 具体实施方式 为了使本发明所要解决的技术问题、 技术方案及有益效果更加清楚、 明白, 以下结合附图和实施例, 对本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅用以解释本发明, 并不用于限定本发明。 如图 2所示, 是本发明 RUDP报文的报文头格式的实施例一示意图; 本实施例在 RUDP报文的报文头的 Checksum字段前增加了故障定位字段, 其大小可根据具体应用选择, 比如 4个字节或 2个字节; 故障定位字段用 以携带故障定位参数,例如源节点发送 RUDP报文的时间或者节点的地址; 另外, 故障定位参数为时间时, 则故障定位字段可命名为时间 (Time ) 字 段, 故障定位参数为地址时, 则故障定位字段可命名为地址(Location )字 段。 如图 3所示, 是本发明 RUDP报文的报文头格式的实施例二示意图; 其大小可根据具体应用选择, 比如 4个字节或 2个字节; 故障定位字段用 以携带故障定位参数,例如源节点发送 RUDP报文的时间或者节点的地址; 另外, 故障定位参数为时间时, 则故障定位字段可命名为 Time字段, 故障 定位参数为地址时, 则故障定位字段可命名为 Location字段。 如图 4所示, 是本发明 RUDP链路故障定位方法优选实施例一的流程
图, 本实施例基于图 2或图 3所示的 RUDP报文, 设源节点为 A、 目标节 点为 E, 中间节点分别为节点 B、 节点 C、 节点 D, 并设节点 B和节点 D 为关键节点, 节点 C为普通节点,传输路径为源节点 A-关键节点 B-普通节 点 C-关键节点 D-目标节点 E, 以时间作为故障定位参数, 具体包括以下步 驟: 步驟 S01: 源节点 A将待发送的数据置于 RUDP报文的数据段中, 并 将本地时间填充到 RUDP报文的故障定位字段中; 步驟 S02:源节点 A发送所述 RUDP报文给传输路径上的下一跳节点, 即关键节点 B; 步驟 S03: 关键节点 B获取收到的 RUDP报文的故障定位字段中的时 间, 并用本地时间减去获取的时间, 计算出时间差 后緩存, 同时将所述 RUDP报文转发给下一跳节点, 即普通节点 C; 步驟 S04: 普通节点 C将收到的 RUDP报文转发给传输路径上的下一 跳节点, 即关键节点 D; 步驟 S05: 关键节点 D获取收到的 RUDP报文的故障定位字段中的时 间, 并用本地时间减去获取的时间, 计算出时间差 LD后緩存, 同时将所述 RUDP报文转发给下一跳节点, 即目标节点 E; 步驟 S06: 源节点 A在超时未收到目标节点 E返回的应答消息时, 则 判断出传输路径故障; 步驟 S07: 获取传输路径上的关键节点 B緩存的时间差 LB和关键节点 D 緩存的时间差 LD ; 步驟 S08: 找出其中数值最大的时间差; 步驟 S09:确定故障点,所述数值最大的时间差对应的节点即为故障点。 本实施例中, 若关键节点 B发生故障, 则 RUDP报文发送到关键节点 B, 要么无法获得 B节点的应答消息, 要么应答消息超时, 源节点 A即可
得知传输路径故障, 并确定故障点。 下面的实施例 (即实施例二) 中, 传 输路径一旦发生故障, 源节点即可在最快时间内得知并确定故障点, 不需 要等待定时器超时。 如图 5所示, 是本发明 RUDP链路故障定位方法优选实施例二的流程 图, 本实施例基于图 2或图 3所示的 RUDP报文, 设源节点为 A、 目标节 点为 E, 中间节点分别为节点 B、 节点 C、 节点 D, 传输路径为源节点 A- 节点 B-节点 C-节点 D-目标节点 E, 以地址作为故障定位参数, 具体包括以 下步驟: 步驟 S11: 源节点 A将待发送的数据置于 RUDP报文的数据段中, 将 本地地址填充到 RUDP报文的故障定位字段中, 并将所述 RUDP报文发送 给传输路径上的下一跳节点, 即节点 B; 步驟 S12: 源节点 A判断是否在预设时间内收到节点 B的应答消息, 若是, 则源节点 A向节点 B发送数据成功, 传输路径正常, 进入步驟 S13; 否则, 传输路径故障, 且故障点为节点 B, 本次流程结束; 即若源节点 A在预设时间内未收到节点 B的应答消息, 则节点 B处故 障; 步驟 S13: 节点 B用本地地址替换收到的 RUDP报文的故障定位字段 中的地址, 并将替换地址后的 RUDP报文转发给下一跳节点, 即节点 C; 步驟 S14: 节点 B判断是否在预设时间内收到节点 C的应答消息, 若 是, 则节点 B向节点 C发送数据成功, 进入步驟 S15; 否则, 节点 B返回 发送失败消息给源节点 A, 进入步驟 S19; 步驟 S15: 节点 C用本地地址替换收到的 RUDP报文的故障定位字段 中的地址, 并将替换地址后的 RUDP报文转发给下一跳节点, 即节点 D; 步驟 S16: 节点 C判断是否在预设时间内收到节点 D的应答消息, 若 是, 则节点 C向节点 D发送数据成功, 进入步驟 S17; 否则, 节点 C返回
发送失败消息给源节点 A, 进入步驟 S19; 步驟 S17: 节点 D用本地地址替换收到的 RUDP报文的故障定位字段 中的地址, 并将替换地址后的 RUDP报文转发给下一跳节点, 即节点 E; 步驟 S18: 节点 D判断是否在预设时间内收到节点 E的应答消息, 若 是, 则节点 D向节点 E发送成功, 传输路径正常, 本次流程结束; 否则, 节点 D返回发送失败消息给源节点 A, 进入步驟 S19; 步驟 S19: 源节点 A收到发送失败消息后, 获知传输路径故障, 并确 定故障点为返回所述发送失败消息节点的下一跳节点。 若节点 B在预设时间内未收到节点 C的应答消息, 则返回发送失败消 息给源节点 A, 源节点 A立刻判断出传输路径故障且故障点为节点 C; 若节点 C在预设时间内未收到节点 D的应答消息, 则返回发送失败消 息给源节点 A, 源节点 A立刻判断出传输路径故障且故障点为节点 D; 若节点 D在预设时间内未收到节点 E的应答消息, 则返回发送失败消 息给源节点 A, 源节点 A立刻判断出传输路径故障且故障点为目标节点 E。 本发明可及时确认传输路径发生故障,减少了 RUDP报文的重传次数, 减轻了网络负担。 如图 6所示, 是本发明 RUDP链路故障定位装置优选实施例的原理框 图, 本实施例包括 RUDP报文管理模块和故障确定模块, 其中, RUDP报文管理模块, 用于将故障定位参数填充到在 RUDP报文的报 文头中预先增加的故障定位字段中, 并将所述 RUDP报文发送给传输路径 上的下一跳节点; 故障确定模块, 用于在传输路径发生故障时, 根据预设策略确定故障 点。 所述装置还可以包括:: 关键节点, 所述关键节点为预先配置的中间节 点, 用于接收上一跳节点发来的 RUDP报文, 获取收到的 RUDP报文的故
障定位字段中的时间, 并用本地时间减去所述获取到的时间, 计算出时间 差并緩存; 相应的, 所述故障确定模块, 具体用于获取传输路径中的关键节点上 的时间差, 找出其中数值最大的时间差, 根据所述数值最大的时间差确定 故障点。 所述装置还可以包括目标节点, 所述目标节点, 用于在收到 RUDP报 文后, 返回应答消息给源节点; 相应的, 所述故障确定模块, 具体用于接收目标节点返回的应答消息, 在超时未收到目标节点的应答消息时, 确定传输路径发生故障, 根据预设 策略确定故障点。 此外, 所述装置还可以包括: 中间节点和目标节点, 所述中间节点, 用于在收到 RUDP报文时, 返回应答消息给上一跳节点, 将收到的 RUDP 报文中的故障定位字段的地址替换为本地地址, 并将替换地址后的 RUDP 报文转发给下一跳节点, 并判断是否在预设时间内收到所述下一跳节点的 应答消息, 如果在预设时间内未收到所述述下一跳节点的应答消息, 返回 发送失败消息给源节点; 所述目标节点, 用于在收到 RUDP报文后, 返回应答消息给上一跳节 点; 相应的, 所述源节点的故障确定模块, 具体用于在收到发送失败消息 或超时未收到下一跳节点的应答消息时, 确定传输路径发生故障, 在所述预设时间内未收到下一跳节点的应答消息时, 确定所述下一跳 节点为故障点; 在收到发送失败消息时, 确定返回发送失败消息的节点的下一跳节点 为故障点。 上述说明示出并描述了本发明的优选实施例, 但如前所述, 应当理解
本发明并非局限于本文所披露的形式, 不应看作是对其他实施例的排除, 而可用于各种其他组合、 修改和环境, 并能够在本文所述发明构想范围内, 通过上述教导或相关领域的技术或知识进行改动。 而本领域人员所进行的 改动和变化不脱离本发明的精神和范围, 则都应在本发明所附权利要求的 保护范围内。
The present invention provides a reliable UDP link failure positioning method and device. The method comprises: Pads the pre-added failure positioning field in the RUDP packet header with failure positioning parameters by the source node, and sends the RUDP packet to the next hop on the transmission path. When the transmission path fails, the source node determines the failure node by preset policy. The device comprises RUDP packet management unit and failure determining unit. Method of the present invention decreases the amount of sending data, and hence reduces the network load. 权利要求书 1、 一种可靠用户数据报协议(RUDP )链路故障定位方法, 其特征在 于, 所述方法包括: 源节点将故障定位参数填充到在 RUDP报文的报文头中预先增加的故 障定位字段中, 并将所述 RUDP报文发送给传输路径上的下一跳节点; 当所述传输路径发生故障时, 所述源节点根据预设策略确定故障点。 2、 根据权利要求 1所述的方法, 其特征在于, 所述故障定位字段位于 所述报文头中的校验和(Checksum ) 字段之前或之后。 3、 根据权利要求 1所述的方法, 其特征在于, 所述故障定位参数为时 间或地址。 4、 根据权利要求 3所述的方法, 其特征在于, 当所述故障定位参数为 时间时, 所述将所述 RUDP报文发送给传输路径上的下一跳节点之后, 所 述方法还包括: 在所述传输路径上的中间节点中预先配置的关键节点, 接收上一跳节 点发来的 RUDP报文, 获取收到的 RUDP报文的故障定位字段中的时间, 并用本地时间减去所述获取到的时间, 计算出时间差并緩存; 相应的, 所述源节点根据预设策略确定故障点, 为, 获取传输路径中的关键节点上的时间差; 找出其中数值最大的时间差; 确定所述数值最大的时间差对应的节点为故障点。 5、 根据权利要求 3所述的方法, 其特征在于, 当所述故障定位参数为 时间时, 所述当所述传输路径发生故障时, 所述源节点根据预设策略确定 故障点, 为, 所述源节点在超时未收到目标节点的应答消息时, 确定传输路径发生 故障, 根据预设策略确定故障点。
6、 根据权利要求 3所述的方法, 其特征在于, 当所述故障定位参数为 地址时, 所述将所述 RUDP报文发送给传输路径上的下一跳节点之后, 所 述方法还包括: 所述传输路径上的节点收到 RUDP报文后, 返回应答消息给上一跳节 点; 收到 RUDP报文的中间节点将收到的 RUDP报文中的故障定位字段的 地址替换为本地地址, 并将替换地址后的 RUDP报文转发给下一跳节点; 向下一跳节点发送 RUDP报文的中间节点判断是否在预设时间内收到 所述下一跳节点的应答消息, 如果没有收到应答消息, 所述发送 RUDP报 文的节点返回发送失败消息给所述源节点。 7、 根据权利要求 6所述的方法, 其特征在于, 所述当所述传输路径发 生故障时, 所述源节点根据预设策略确定故障点, 为, 所述源节点在收到发送失败消息或超时未收到下一跳节点的应答消息 时, 确定传输路径发生故障, 在所述预设时间内未收到下一跳节点的应答消息时, 确定所述下一跳 节点为故障点; 在收到发送失败消息时, 确定返回发送失败消息的节点的下一跳节点 为故障点。 8、一种 RUDP链路故障定位装置,其特征在于,所述装置包括源节点, 所述源节点包括 RUDP报文管理模块和故障确定模块, 所述 RUDP报文管理模块, 用于将故障定位参数填充到在 RUDP报文 的报文头中预先增加的故障定位字段中, 并将所述 RUDP报文发送给传输 路径上的下一跳节点; 所述故障确定模块, 用于在传输路径发生故障时, 根据预设策略确定 故障点。
9、 根据权利要求 8所述的装置, 其特征在于, 所述装置还包括: 关键 节点 , 所述关键节点为预先配置的中间节点, 用于接收上一跳节点发来的 RUDP报文, 获取收到的 RUDP报文的故障定位字段中的时间, 并用本地 时间减去所述获取到的时间, 计算出时间差并緩存; 相应的, 所述故障确定模块, 具体用于获取传输路径中的关键节点上 的时间差, 找出其中数值最大的时间差, 根据所述数值最大的时间差确定 故障点。 10、 根据权利要求 9所述的装置, 其特征在于, 所述装置还包括目标 节点, 所述目标节点, 用于在收到 RUDP报文后, 返回应答消息给源节点; 相应的, 所述故障确定模块, 具体用于接收目标节点返回的应答消息, 在超时未收到目标节点的应答消息时, 确定传输路径发生故障, 根据预设 策略确定故障点。 11、 根据权利要求 8 所述的装置, 其特征在于, 所述装置还包括: 中 间节点和目标节点, 所述中间节点, 用于在收到 RUDP报文后, 返回应答消息给上一跳节 点, 将收到的 RUDP报文中的故障定位字段的地址替换为本地地址, 并将 替换地址后的 RUDP报文转发给下一跳节点; 还用于判断是否在预设时间 内收到下一跳节点的应答消息, 如果没有收到应答消息, 返回发送失败消 息给所述源节点; 所述目标节点, 用于在收到 RUDP报文后, 返回应答消息给上一跳节 点; 相应的, 所述源节点的故障确定模块, 具体用于在收到发送失败消息 或超时未收到下一跳节点的应答消息时, 确定传输路径发生故障, 在所述预设时间内未收到下一跳节点的应答消息时, 确定所述下一跳
节点为故障点; 在收到发送失败消息时, 确定返回发送失败消息的节点的下一跳节点 为故障点。