一种基于 HIP 设备的数据传输方法及系统 【技术领域】
本 发 明 涉 及 数 据 传 输 领 域, 尤 其 涉 及 一 种 基 于 主 机 标 识 协 议 (Host IdentityProtocol, HIP) 设备的数据传输方法及系统。背景技术
Internet 的名字空间主要有两种, 即 IP 地址和域名系统, 其中, IP 地址既担任寻 址功能, 又担任着标识通信设备节点的作用, 此双重功能决定了当 IP 地址变化时, 不仅路 由发生了变化, 而且通信设备主机的标识也发生了变化。对于前者, 我们可以接受, 但是设 备标识的变化却会导致应用和连接中断。
HIP 通过对设备标识和地址进行绑定, 能够解决上述设备标识的变化导致应用 和连接中断的问题, 具体的, HIP 要求任何设备都有全球范围内唯一的主机识别码 (Host Identifier, HI), 其定义了主机标识标签 (HIT), 在协议中用主机标识标签的好处是在程序 中可以使用定长的接口、 方便与 128 位 IPV6 地址统一。
HIP 协议对于 TCP/IP 的通信层协议做了与现在不同的限定, 在 TCP/IP 协议中, TCP 和 UDP 联接是同 IP 地址联系起来的。而一旦 HIP 架构建立起来, 这些联接就同主机 ID, 而 不是 IP 地址联系起来, HIP 之所以能够如此是因为它改变了 TCP/IP 协议中的网络层和传 输层的绑定, 图 1 为 HIP 网络层次结构示意图, 如图 1 所示, HIP 网络在 TCP、 IP 之间引入了 HI 层, 在 HIP 架构之中, IP 地址仍然具有位置标识的功用, 但是, HI 取代了 IP 地址的设备 标识的功能, 这就使得无论一个主机的 IP 地址如何变换, 它都能够拥有唯一不变的标识, 从而解决了主机的移动性问题和多穴的问题。
HIP 协议在 IP 包头之上有自己的包头, 其中各字段的含义如下 :
Next Header 字段用于描述附加头的位置, 目前没有使用, 固定使用十进制的 59 来表示没有 Next Header ;
Header Length 字段说明 HIP 包头的长度, 以 8 字节的整数倍计数, 不包含开始的 8 字节包头 ;
Packet Type 字段说明 HIP 包的类型 ;
VER. 字段说明 HIP 协议的版本号 ;
RES. 字段为以后的应用预留, 目前没有使用 ;
Checksum 字段是 HIP 包头的校验和 ;
Controls 字段是包结构和主机能力描述的字段, 目前只定义了主机以匿名发送的 方式一种情况 ;
Sender′ s Host Identity Tag(HIT) 字段描述了发送者的 HIT, 128 位的 ORCHID ;
Receiver ′ s Host Identity Tag(HIT) 字 段 描 述 了 接 收 者 的 HIT, 128 位 的 ORCHID ;
HIP Parameters 字段描述了 HIP 包携带的 HIP 参数。
图 2 为 HIP 基础交互流程示意图, 如图 2 所示, HIP 基础交互是两个主机之间基础信息的交互过程, 用于交互两个主机通讯的基础信息。HIP 基础交互流程有四个包的交互, 在第二和第三个包中交互 DH 密钥算法所需要的参数, 用于在两个主机间协商共享密钥, 通 过在第二个和第三个包中携带的公钥、 签名和 HIT 分别认证对方的身份。在四个包的交互 完成后, 建立了端到端的安全连接。在网络中发起 HIP 交互包的主机是发起者, 发起者想交 互的主机是响应者, 当四个包的基础交互流程结束后, 这种区别就不存在了, 在后续通讯中 交互的任何一方都可能成为发起者, 通知对方自己状态的改变。在发起者发起的第一个包 I1 中, 仅包含发起者的主机标识标签和响应者的主机标识标签, 在响应者发送的第二个包 R1 中开始实际上的信息交互过程, 在第二个包 R1 中包含了对发起者的秘密挑战 ( 用于降低 拒绝服务攻击的威胁 ), 发起方必须响应这个挑战, 交互才能继续, 在发送者发送的第三个 包 I2 中, 包含了发送者对 R1 包中秘密挑战的应答, 响应者发送的第四个包 R2 包含响应者 的签名, 同时结束四个包的 HIP 基础交互流程。
Overlay Routable Cryptographic Hash Identifiers(ORCHID) 是一种特殊的 IPV6 地址, 其不能作为普通的可路由的 IPV6 地址, 通过在头部使用特殊的 28 位的标记来 与普通 IPV6 地址区分, 其构成如下 : 28 位的前缀 2001:10::/28 加 100 位的二进制串。HIP 中的 HIT 使用 ORCHID。 由于 HIP 基于端到端的连接, 每个 HIP 设备都需要四次握手来与一个新的 HIP 设 备建立关联, 增加了设备开销, 而且当一个 HIP 设备与另一个 HIP 设备之间的包来回时间 (Round Trip Time, RTT) 较长时, 建立连接时延较长, 影响用户体验。 同时, 如果一个 HIP 设 备连接了多个 HIP 设备, 则 IP 地址的变更需要通知所有连接的设备, 时延也较长, 影响用户 体验。因此, 引入 HIP 基础架构, 图 3 为 HIP 服务基础架构示意图, 如图 3 所示, 该 HIP 服务 基础架构包括 : HIP 设备、 HIP 设备接入节点 (HIP Access Point, HAP), 其中, HIP 设备为支 持 HIP 协议的用户设备 (User Equipment, UE), HAP 提供 UE HIP 接入, 以及数据转发。
现有技术中, HIP 设备一般与 RTT 较小的一 HAP 建立 HIP 连接, HIP 设备发送和接 收的数据包由 HAP 转发, HIP 设备只需与 HAP 建立 HIP 连接, 而不用每次都与新 HIP 设备建 立 HIP 连接。但是, 现有技术中, 由于一 HIP 设备仅与一 HAP 建立 HIP 连接, 当某一 HAP 故 障时, 与其连接的 HIP 设备需要重新选取 HAP 进行关联, 时延较长, 并且, 某一 HAP 故障时, 其它 HAP 不能及时转发发往连接在故障 HAP 上的 HIP 设备的数据, 容易造成数据丢失、 降低 数据传输效率。
发明内容
有鉴于此, 本发明的主要目的在于提供一种基于 HIP 设备的数据传输方法及系 统, 能够在 HAP 故障时, 减小 HIP 设备之间数据传输的时延、 避免数据丢失, 从而提高数据传 输效率、 提高用户体验。
为达到上述目的, 本发明的技术方案是这样实现的 :
一种基于主机标识协议 HIP 设备的数据传输方法, 包括 :
源 HIP 设备需要向目的 HIP 设备发送数据时, 选择与所述源 HIP 设备关联的一 HIP 设备接入节点 HAP 进行数据发送。
所述源 HIP 设备通过 HAP 向目的 HIP 设备发送数据之前, 该方法还包括 : 所述源 HIP 设备、 目的 HIP 设备分别与多个 HAP 进行关联 ; 所述与源 HIP 设备、 目的 HIP 设备关联的 HAP 在与所述 HIP 设备关联后, 存储所述 HIP 设备的主机标识标签 HIT 及 IP 地址, 并将 所述 HIP 设备与所述 HAP 的绑定关系发送至绑定关系存储模块进行存储。
所述源 HIP 设备、 目的 HIP 设备与多个 HAP 进行关联为 : 所述源 HIP 设备、 目的 HIP 设备通过查询静态配置的服务器、 IPv6 的动态主机配置协议 DHCPv6 服务器或域名系统 DNS 得到包来回时间 RTT 较小的多个 HAP 地址, 并与所述得到的多个 HAP 地址相应的 HAP 进行 关联, 或者, 从所述得到的多个 HAP 地址中选择部分 HAP 地址, 并与其相应的 HAP 进行关联。
所述源 HIP 设备选择与所述源 HIP 设备关联的一 HAP 进行数据发送为 :
所述源 HIP 设备根据负载均衡策略选择与所述源 HIP 设备关联的一 HAP ; 所述源 HIP 设备向所述选择的 HAP 发送数据发送请求, 所述数据发送请求至少携带目的 HIP 设备信 息、 需要发送的数据 ;
所述与源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联, 则所述与源 HIP 设备关联的 HAP 直接将所述需要发送的数据发送至所述目的 HIP 设备 ; 否则, 所述与源 HIP 设备关联的 HAP 通过查询自身或绑定关系存储模块存储的绑定关系获取与所述目的 HIP 设 备关联的 HAP, 并从中选择一 HAP 将所述需要发送的数据转发至所述目的 HIP 设备, 所述与 源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联为 : 所述与源 HIP 设备关联的 HAP 判定自身存储有所述目的 HIP 设备的 HIT。 该方法还包括 : 所述源 HIP 设备当前选择的与源 HIP 设备关联的 HAP 因为故障导 致数据发送失败时, 所述源 HIP 设备继续选择与所述源 HIP 设备关联的其他 HAP 发送数据。
该方法还包括 :
所述与源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联时, 进一步将该 情况通知所述源 HIP 设备 ; 之后, 所述源 HIP 设备需要向所述目的 HIP 设备发送数据时, 直 接通过所述与源 HIP 设备关联的 HAP 进行发送。
所述与源 HIP 设备关联的 HAP 从与所述目的 HIP 设备关联的 HAP 中选择的 HAP 转 发数据失败时, 该方法还包括 : 所述与源 HIP 设备关联的 HAP 继续选择其他与目的 HIP 设备 关联的 HAP 进行数据转发 ; 或者, 所述转发数据失败的与目的 HIP 设备关联的 HAP 通过查询 自身或绑定关系存储模块存储的绑定关系, 将需要发送的数据转发给其他与目的 HIP 设备 关联的 HAP, 由所述其他与目的 HIP 设备关联的 HAP 再转发给目的 HIP 设备。
所述与源 HIP 设备关联的 HAP 从与所述目的 HIP 设备关联的 HAP 中选择的 HAP 转 发数据失败时, 该方法还包括 : 所述与源 HIP 设备关联的 HAP 删除自身及绑定关系存储模块 存储的当前选择的 HAP 与目的 HIP 设备的绑定关系。
所述与目的 HIP 设备关联的 HAP 转发源 HIP 设备的数据后, 该方法还包括 : 所述与 目的 HIP 设备关联的 HAP 存储相应的源 HIP 设备与所述与源 HIP 设备关联的 HAP 的绑定关 系。
该方法还包括 : 所述 HAP 存储从绑定关系存储模块查询的所述目的 HIP 设备与 HAP 的绑定关系。
该方法还包括 : 一 HAP 发生故障时, 其他 HAP 删除自身存储的与所述故障 HAP 相关 的绑定关系, 并如由所述故障 HAP 的保活节点通知绑定关系存储模块删除与所述故障 HAP 相关的绑定关系, 所述 HAP 判定一 HAP 发生故障为 : 所述 HAP 判定与一 HAP 的保活失败或收 到其它 HAP 发送的 HAP 故障通知。
该方法还包括 : HIP 设备向与其关联的 HAP 发送关闭 Close 包 ; 所述 HAP 收到所述 HIP 设备发送的 Close 包后, 删除自身存储的所述 HIP 设备的 HIT 及 IP 地址, 并通知绑定关 系存储模块删除所述 HAP 与所述 HIP 设备的绑定关系。
所述 HAP 和绑定关系存储模块合设或分开设置, 所述 HAP 和绑定关系存储模块分 开设置时, 所述 HAP 缓存 HIP 设备与 HAP 的绑定关系。
所述绑定关系存储模块为 SN 节点组成的 DHT 叠加网。
所述 HAP 与 HIP 设备的绑定关系为 : HAP 标识与 HIP 设备的主机标识标签 HIT 的 绑定关系。
一种基于 HIP 设备的数据传输系统, 包括 : 源 HIP 设备、 HAP 和目的 HIP 设备 ; 其 中,
所述源 HIP 设备, 用于在需要向目的 HIP 设备发送数据时, 选择与所述源 HIP 设备 关联的一 HAP 进行数据发送 ;
所述 HAP, 用于在与所述源 HIP 设备关联、 且被选择进行数据发送时, 将数据发送 至所述目的 HIP 设备。
该系统还包括绑定关系存储模块,
所述源 HIP 设备、 目的 HIP 设备, 还用于在进行数据传输之前, 与多个 HAP 进行关 联;
所述 HAP, 还用于在与 HIP 设备关联后, 存储所述 HIP 设备的 HIT 及 IP 地址, 并将 所述 HIP 设备与所述 HAP 的绑定关系发送至绑定关系存储模块进行存储。
该系统还包括静态配置的服务器、 IPv6 的动态主机配置协议 DHCPv6 服务器或域 名系统 DNS,
所述源 HIP 设备、 目的 HIP 设备与多个 HAP 进行关联为 : 所述源 HIP 设备、 目的 HIP 设备通过查询静态配置的服务器、 IPv6 的动态主机配置协议 DHCPv6 服务器或域名系统 DNS 得到包来回时间 RTT 较小的多个 HAP 地址, 并与所述得到的多个 HAP 地址相应的 HAP 进行 关联, 或者, 从所述得到的多个 HAP 地址中选择部分 HAP 地址, 并与其相应的 HAP 进行关联。
所述源 HIP 设备选择与所述源 HIP 设备关联的一 HAP 进行数据发送为 :
所述源 HIP 设备根据负载均衡策略选择与所述源 HIP 设备关联的一 HAP ; 所述源 HIP 设备向所述选择的 HAP 发送数据发送请求, 所述数据发送请求至少携带目的 HIP 设备信 息、 需要发送的数据 :
所述与源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联, 则所述与源 HIP 设备关联的 HAP 直接将所述需要发送的数据发送至所述目的 HIP 设备 ; 否则, 所述与源 HIP 设备关联的 HAP 通过查询自身或绑定关系存储模块存储的绑定关系获取与所述目的 HIP 设 备关联的 HAP, 并从中选择一 HAP 将所述需要发送的数据转发至所述目的 HIP 设备, 所述与 源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联为 : 所述与源 HIP 设备关联的 HAP 判定自身存储有所述目的 HIP 设备的 HIT。
所述源 HIP 设备, 还用于在当前选择的与源 HIP 设备关联的 HAP 因为故障导致数 据发送失败时, 继续选择与所述源 HIP 设备关联的其他 HAP 发送数据。
所述 HAP, 还用于在与源 HIP 设备关联、 且判定所述目的 HIP 设备与自身关联时, 进 一步将该情况通知源 HIP 设备 ;所述源 HIP, 还用于在收到所述 HAP 的通知后, 在需要向所述目的 HIP 设备发送数 据时, 直接通过所述与源 HIP 设备关联的 HAP 进行发送。
所述 HAP, 还用于在从与所述目的 HIP 设备关联的 HAP 中选择的 HAP 转发数据失败 时, 继续选择其他与目的 HIP 设备关联的 HAP 进行数据转发, 或者, 在转发数据失败时, 通过 查询自身或绑定关系存储模块存储的绑定关系, 将需要发送的数据转发给其他与目的 HIP 设备关联的 HAP, 由所述其他与目的 HIP 设备关联的 HAP 再转发给目的 HIP 设备。
所述 HAP, 还用于在从与目的 HIP 设备关联的 HAP 中选择的 HAP 转发数据失败时, 删除自身及绑定关系存储模块存储的当前选择的 HAP 与目的 HIP 设备的绑定关系。
所述 HAP, 还用于在与目的 HIP 设备关联、 且转发源 HIP 设备的数据后, 存储相应的 源 HIP 设备与所述与源 HIP 设备关联的 HAP 的绑定关系。
所述 HAP, 还用于存储从绑定关系存储模块查询的所述目的 HIP 设备与 HAP 的绑定 关系。
所述 HAP, 还用于在其他 HAP 发生故障时, 删除自身存储的与所述故障 HAP 相关的 绑定关系, 以及在其保活的 HAP 发生故障时, 进一步通知绑定关系存储模块删除与所述故 障 HAP 相关的绑定关系, 所述 HAP 判定其他 HAP 发生故障为 : 所述 HAP 判定与其他 HAP 的保 活失败或收到其它 HAP 发送的 HAP 故障通知。 所述源 HIP 设备、 目的 HIP 设备, 还用于向与其关联的 HAP 发送关闭 Close 包 ;
所述 HAP, 还用于在收到 HIP 设备发送的 Close 包后, 删除自身存储的所述 HIP 设 备的 HIT 及 IP 地址, 并通知绑定关系存储模块删除所述 HAP 与所述 HIP 设备的绑定关系。
所述 HAP 和绑定关系存储模块合设或分开设置, 所述 HAP 和绑定关系存储模块分 开设置时, 所述 HAP 缓存 HIP 设备与 HAP 的绑定关系。
所述绑定关系存储模块为 SN 节点组成的 DHT 叠加网。
所述 HAP 与 HIP 设备的绑定关系为 : HAP 标识与 HIP 设备的主机标识标签 HIT 的 绑定关系。
本发明种基于 HIP 设备的数据传输方法及系统, 一个 HIP 设备可以和多个 HAP 建 立 HIP 连接, 通过本发明, 当某一 HAP 发生故障时, 与其关联的 HIP 设备可选择其它与该 HIP 设备关联 ( 即已建立 HIP 连接 ) 的 HAP 发送数据, 发往该 HIP 设备的数据也可由其它与该 HIP 设备关联的 HAP 转发, 从而能够减少当某一 HAP 故障 HIP 设备发送数据的时延、 避免数 据的丢失, HIP 设备还可以根据负载均衡等策略选择 HAP 进行数据的发送, 从而能够提高数 据传输效率、 提高用户体验。
附图说明
图 1 为 HIP 网络层次结构示意图 ; 图 2 为 HIP 基础交互流程示意图 ; 图 3 为 HIP 服务基础架构示意图 ; 图 4 为本发明基于 HIP 设备的数据传输方法流程示意图 ; 图 5 为本发明一使用 DHT 叠加网来存储 HIP 设备与 HAP 的绑定关系的结构示意 图 6 为本发明基于 HIP 设备的数据传输系统结构示意图 ;10图;
102413098 A CN 102413111
说明书6/12 页图 7 为本发明实施例 1 基于 HIP 设备的数据传输方法流程示意图 ; 图 8 为本发明实施例 2 基于 HIP 设备的数据传输方法流程示意图 ; 图 9 为本发明实施例 3 基于 HIP 设备的数据传输方法流程示意图。具体实施方式
本发明的基本思想是 : 一个 HIP 设备可以和多个 HAP 建立 HIP 连接。
图 4 为本发明基于 HIP 设备的数据传输方法流程示意图, 如图 4 所示, 该方法包 括:
步骤 401 : 源 HIP 设备需要向目的 HIP 设备发送数据, 则所述源 HIP 设备选择与其 关联的一 HAP( 即与所述源 HIP 设备关联的一 HAP), 并向所述选择的 HAP 发送数据发送请 求, 所述数据发送请求至少携带目的 HIP 设备信息、 需要发送的数据。
这里, 源 HIP 设备选择与其关联的一 HAP 可以是根据负载均衡策略进行选择。如 果源 HIP 设备当前选择的 HAP 因为故障导致数据发送失败, 则源 HIP 设备可继续选择与其 关联的其他 HAP 发送数据。
步骤 402 : 所述 HAP 判断所述目的 HIP 设备是否与自身关联, 如果是, 执行步骤 403 ; 否则, 执行步骤 404。 本发明中, HIP 设备可以通过查询静态配置的服务器、 IPv6 的动态主机配置协议 (DHCPv6) 服务器或域名系统 (DNS) 等方式得到 RTT 较小 ( 即较近 ) 的多个 HAP 地址, 并与 所述得到的多个 HAP 地址相应的 HAP 进行关联 (UE 获取的多个 HAP 地址可以是已经按照优 先级排序的多个 HAP 地址 ), 或者, 从所述得到的多个 HAP 地址中选择部分 HAP 地址, 并与所 述选择的部分 HAP 地址相应的 HAP 进行关联。HIP 设备与 HAP 进行关联后, 所述 HAP 会存储 ( 一般为缓存 ) 所述 HIP 设备的 HIT 及 IP 地址, 并将所述 HAP 与所述 HIP 设备的绑定关系 发送至绑定关系存储模块进行存储, 发送至绑定关系存储模块的 HAP 与 HIP 设备的绑定关 系一般体现为 : HAP 标识与 HIP 设备的主机标识标签 HIT 的绑定关系。
与源 HIP 设备关联的 HAP 判断所述目的 HIP 设备是否与自身关联为 : 所述与源 HIP 设备关联的 HAP 判断自身是否存储有所述目的 HIP 设备的 HIT。优选的, 如果所述与源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联, 可以进一步将该情况通知源 HIP 设备, 之后, 所述源 HIP 设备需要向所述目的 HIP 设备发送数据时, 直接通过所述与源 HIP 设备关 联的 HAP 进行发送。
步骤 403 : 所述 HAP 直接将所述需要发送的数据发送至所述目的 HIP 设备, 流程结 束。
步骤 404 : 所述 HAP 判断自身是否存储有所述目的 HIP 设备与 HAP 的绑定关系, 如 果是, 执行步骤 405 ; 否则, 执行步骤 406。
步骤 405 : 所述 HAP 根据所述自身存储的所述目的 HIP 设备与 HAP 的绑定关系, 获 取与所述目的 HIP 设备关联的 HAP, 并从中选择一 HAP 将所述需要发送的数据转发至所述目 的 HIP 设备, 流程结束。
这里, 如果所述 HAP( 与源 HIP 设备关联 ) 当前选择的 HAP( 与目的 HIP 设备关联 ) 因为故障导致数据发送失败, 则所述 HAP( 与源 HIP 设备关联 ) 可继续选择其他 HAP( 与目 的 HIP 设备关联 ) 来进行数据转发, 数据发送失败时, 所述 HAP( 与源 HIP 设备关联 ) 还可以
进一步删除自身及绑定关系存储模块存储的当前选择的 HAP 与目的 HIP 设备的绑定关系 ; 所述 HAP( 与源 HIP 设备关联 ) 当前选择的 HAP( 与目的 HIP 设备关联 ) 发生故障时, 也可 以由所述发生故障的 HAP( 与目的 HIP 设备关联 ) 通过查询自身或绑定关系存储模块存储 的绑定关系, 将需要发送的数据转发给其他与目的 HIP 设备关联的 HAP, 由所述其他与目的 HIP 设备关联的 HAP 再转发给目的 HIP 设备。
优选的, 与目的 HIP 设备关联的 HAP 转发源 HIP 设备的数据后, 存储相应的源 HIP 设备与 HAP 的绑定关系。
需要说明的是, 由于 HAP 上不一定存储所有 HIP 设备与 HAP 的绑定关系, 所以, 如 果 HAP 根据所述自身存储的所述目的 HIP 设备与 HAP 的绑定关系发送数据失败, 还可以进 一步向绑定关系存储模块查询, 获取自身未存储的目的 HIP 设备与 HAP 的绑定关系进行数 据转发, 并存储所述绑定关系。
步骤 406 : 所述 HAP 向绑定关系存储模块查询所述目的 HIP 设备与 HAP 的绑定关 系, 获取与所述目的 HIP 设备关联的 HAP, 并从中选择一 HAP 将所述需要发送的数据转发至 所述目的 HIP 设备, 流程结束。
优选的, HAP 存储从绑定关系存储模块查询的所述目的 HIP 设备与 HAP 的绑定关 系。 本发明中, 绑定关系存储模块存储所有 HIP 设备与 HAP 的绑定关系, HAP 通过数据 存取接口存取绑定关系, 绑定关系存储模块可以是 SN(Super Node) 节点组成的 DHT 叠加 网, 这里, SN 节点是一些均质化的节点, 组成 DHT 叠加网, 存储 HIP 设备与 HAP 的绑定关系。 HAP 通过 SN 节点组成的 DHT 叠加网规定的存储、 获取接口来存储和获取 HIP 设备与 HAP 的 绑定关系。
图 5 为本发明一使用 DHT 叠加网来存储 HIP 设备与 HAP 的绑定关系的结构示意图, 如图 5 所示, UE1 先后与 HAP1A 与 HAP1B 建立 HIP 连接, 用以转发数据, UE1 关联的 HAP1A 与 HAP1B 通过 SN1 节点来存储和获取 HIP 设备与 HAP 的绑定关系。HAP1A 与 HAP1B 也可关 联不同的 SN 节点, 如 HAP1B 也可关联在 SN3 节点上。另外, SN5 节点为负责存储 UE2 数据 的 SN 节点, 即 UE2 和与其关联的 HAP 的绑定关系存储在 SN5 节点上, 其它 SN 节点可以根据 DHT 叠加网规则和 UE2 的标识 ( 如 HIT) 到 SN5 节点获取 UE2 和其关联的 HAP 绑定信息。
需要说明的是, HAP 和绑定关系存储模块可以合设, 也可以分开设置, HAP 和绑定 关系存储模块合设时, HAP 将 HIP 设备与 HAP 的绑定关系存储在自身的存储空间中 ; HAP 和 绑定关系存储模块分开设置时, HAP 缓存 HIP 设备与 HAP 的绑定关系, 而绑定关系存储模块 将 HIP 设备与 HAP 的绑定关系存储在自身的存储空间中。
本发明中, 如果一 HAP 发生故障, 则其他 HAP 会删除自身存储的与所述故障 HAP 相 关的绑定关系, 并通知 ( 如由所述故障 HAP 的保活节点通知 ) 绑定关系存储模块删除与所 述故障 HAP 相关的绑定关系。 HAP 判定某一 HAP 发生故障的方式可以有多种, 例如, 所述 HAP 判定与某一 HAP 的保活失败或收到其它 HAP 发送的 HAP 故障通知。
本发明中, HIP 设备可以关闭某些 HAP 连接, 具体的, HIP 设备可以向与其关联的 HAP 发送关闭 (Close) 包 ; 所述 HAP 收到所述 HIP 设备发送的 Close 包后, 删除自身存储的 所述 HIP 设备的 HIT 及 IP 地址, 并通知绑定关系存储模块删除所述 HAP 与所述 HIP 设备的 绑定关系。
图 6 为本发明基于 HIP 设备的数据传输系统结构示意图, 如图 6 所示, 该系统包 括: 源 HIP 设备、 HAP 和目的 HIP 设备 ; 其中,
所述源 HIP 设备, 用于在需要向目的 HIP 设备发送数据时, 选择与所述源 HIP 设备 关联的一 HAP 进行数据发送 ;
所述 HAP, 用于在与所述源 HIP 设备关联、 且被选择进行数据发送时, 将数据发送 至所述目的 HIP 设备。
该系统还包括绑定关系存储模块,
所述源 HIP 设备、 目的 HIP 设备, 还用于在进行数据传输之前, 与多个 HAP 进行关 联;
所述 HAP, 还用于在与 HIP 设备关联后, 存储所述 HAP 的 HIT 及 IP 地址, 并将所述 HIP 设备与所述 HAP 的绑定关系发送至绑定关系存储模块进行存储。
该系统还包括静态配置的服务器、 IPv6 的动态主机配置协议 DHCPv6 服务器或域 名系统 DNS,
所述源 HIP 设备、 目的 HIP 设备与多个 HAP 进行关联为 : 所述源 HIP 设备、 目的 HIP 设备通过查询静态配置的服务器、 IPv6 的动态主机配置协议 DHCPv6 服务器或域名系统 DNS 得到包来回时间 RTT 较小的多个 HAP 地址, 并与所述得到的多个 HAP 地址相应的 HAP 进行 关联, 或者, 从所述得到的多个 HAP 地址中选择部分 HAP 地址, 并与其相应的 HAP 进行关联。
所述源 HIP 设备选择与所述源 HIP 设备关联的一 HAP 进行数据发送为 :
所述源 HIP 设备根据负载均衡策略选择与所述源 HIP 设备关联的一 HAP ; 所述源 HIP 设备向所述选择的 HAP 发送数据发送请求, 所述数据发送请求至少携带目的 HIP 设备信 息、 需要发送的数据 ;
所述与源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联, 则所述与源 HIP 设备关联的 HAP 直接将所述需要发送的数据发送至所述目的 HIP 设备 ; 否则, 所述与源 HIP 设备关联的 HAP 通过查询自身或绑定关系存储模块存储的绑定关系获取与所述目的 HIP 设 备关联的 HAP, 并从中选择一 HAP 将所述需要发送的数据转发至所述目的 HIP 设备, 所述与 源 HIP 设备关联的 HAP 判定所述目的 HIP 设备与自身关联为 : 所述与源 HIP 设备关联的 HAP 判定自身存储有所述目的 HIP 设备的 HIT。
所述源 HIP 设备, 还用于在当前选择的与源 HIP 设备关联的 HAP 因为故障导致数 据发送失败时, 继续选择与所述源 HIP 设备关联的其他 HAP 发送数据。
所述 HAP, 还用于在与源源 HIP 设备关联、 且判定所述目的 HIP 设备与自身关联时, 进一步将该情况通知源 HIP 设备 ;
所述源 HIP, 还用于在收到所述 HAP 的通知后, 在需要向所述目的 HIP 设备发送数 据时, 直接通过所述与源 HIP 设备关联的 HAP 进行发送。
所述 HAP, 还用于在从与所述目的 HIP 设备关联的 HAP 中选择的 HAP 转发数据失败 时, 继续选择其他与目的 HIP 设备关联的 HAP 进行数据转发, 或者, 在转发数据失败时, 通过 查询自身或绑定关系存储模块存储的绑定关系, 将需要发送的数据转发给其他与目的 HIP 设备关联的 HAP, 由所述其他与目的 HIP 设备关联的 HAP 再转发给目的 HIP 设备。
所述 HAP, 还用于在从与目的 HIP 设备关联的 HAP 中选择的 HAP 转发数据失败时, 删除自身及绑定关系存储模块存储的当前选择的 HAP 与目的 HIP 设备的绑定关系。所述 HAP, 还用于在与目的 HIP 设备关联、 且转发源 HIP 设备的数据后, 存储相应的 源 HIP 设备与所述与源 HIP 设备关联的 HAP 的绑定关系。
所述 HAP, 还用于存储从绑定关系存储模块查询的所述目的 HIP 设备与 HAP 的绑定 关系。
所述 HAP, 还用于在其他 HAP 发生故障时, 删除自身存储的与所述故障 HAP 相关的 绑定关系, 以及在其保活的 HAP 发生故障时, 进一步通知绑定关系存储模块删除与所述故 障 HAP 相关的绑定关系, 所述 HAP 判定其他 HAP 发生故障为 : 所述 HAP 判定与其他 HAP 的保 活失败或收到其它 HAP 发送的 HAP 故障通知。
所述源 HIP 设备、 目的 HIP 设备, 还用于向与其关联的 HAP 发送关闭 Close 包 ;
所述 HAP, 还用于在收到 HIP 设备发送的 Close 包后, 删除自身存储的所述 HIP 设 备的 HIT 及 IP 地址, 并通知绑定关系存储模块删除所述 HAP 与所述 HIP 设备的绑定关系。
所述 HAP 和绑定关系存储模块合设或分开设置, 所述 HAP 和绑定关系存储模块分 开设置时, 所述 HAP 缓存 HIP 设备与 HAP 的绑定关系。
所述绑定关系存储模块为 SN 节点组成的 DHT 叠加网。
所述 HAP 与 HIP 设备的绑定关系为 : HAP 标识与 HIP 设备的主机标识标签 HIT 的 绑定关系。
下面结合具体实施例对本发明技术方案的实施作进一步的详细描述。
实施例 1
本实施例基于图 5 所示的系统结构, 即本实施例中 HIP 设备可同时连接多个 HAP, 且通讯的两端连接在不同的 HAP 上。图 7 为本发明实施例 1 基于 HIP 设备的数据传输方法 流程示意图, 如图 7 所示, 该方法包括 :
步骤 701 : UE2 通过查询静态配置的服务器、 DHCPv6 服务器或 DNS 等方式得到 RTT 较小的 HAP 地址, 并与其中的 HAP2 建立 HIP 关联。
这里, HAP2 缓存 UE2 的 HIT 与 UE2IP 地址的绑定关系, 并将所述绑定关系传递至 负责存储 UE2 数据的 SN5 节点进行存储。
步骤 702 : UE1 通过查询静态配置的服务器、 DHCPv6 服务器或 DNS 等方式得到 RTT 较小的 HAP 地址列表, 获取的 HAP 地址列表中包含 HAP1A 与 HAP1B。
步骤 703 : UE1 选择 HAP1A 建立 HIP 连接。
步骤 704 : HAP1A 缓存 UE1HIT 与 UE1IP 的绑定, 并向其关联的 SN 节点 (SN1) 发送 存储其与 UE1HIT 绑定关系的请求。
步骤 705 : HAP1A 关联的 SN 向负责存储 UE1 数据的 SN 节点 (SN4 节点 ) 发送存储 UE1HIT 与 HAP1A 标识绑定关系的请求。
步骤 706 : UE1 选择 HAP1B 建立 HIP 连接。
步骤 707 : HAP1B 缓存 UE1HIT 与 UE1IP 的绑定, 并向其关联的 SN 节点 (SN1 节点 ) 发送存储其与 UE1HIT 绑定关系的请求。
步骤 708 : HAP1B 关联的 SN 向负责存储 UE1 数据的 SN 节点 (SN4 节点 ) 发送存储 UE1HIT 与 HAP2 标识绑定关系的请求。
此时负责存储 UE1 数据的 SN 节点存储了 UE1HIT 与 HAP1A 标识、 UE1HIT 与 HAP1B 标识的绑定关系。步骤 709 : UE1 需要向 UE2 发送数据, UE1 根据负载均衡等策略选择其所关联的 HAP 发送数据, 此处, UE1 选择 HAP1A 发送发往 UE2 的数据。
具体的, UE1 可以向 HAP1A 发送携带 UE2HIT 的数据发送请求消息。
步骤 710 : HAP1A 向其关联的 SN1 节点获取 UE2 关联的 HAP 的信息。
步骤 711 : SN1 向负责存储 UE2 数据的 SN 节点 (SN5 节点 ) 获取 UE2 与 HAP2 的绑 定信息, 并返回给 HAP1A。
步骤 712 : HAP1A 向 HAP2 转发发往 UE2 的数据。
如果 UE2 与多个 HAP 绑定, HAP1A 可从多个 HAP 中根据负载均衡等策略选一个 HAP 进行数据转发。
步骤 713 : HAP2 根据其缓存的 UE2HIT 与 HAP2 标识的绑定关系, 向 UE2 转发数据。 优选的, HAP2 缓存 UE1 与 HAP1A 的绑定关系。
步骤 714 : UE1 需要向 UE2 发送数据, UE1 选择 HAP1B 发送发往 UE2 的数据。
具体的, UE1 可以向 HAP1B 发送携带 UE2HIT 的数据发送请求消息。
步骤 715 : HAP1B 向其关联的 SN1 节点获取 UE2 关联的 HAP 的信息。
步骤 716 : SN1 向负责存储 UE2 数据的 SN 节点 (SN5 节点 ) 获取 UE2 与 HAP2 的绑 定信息, 并返回给 HAP1B。 步骤 717 : HAP1B 向 HAP2 转发发往 UE2 的数据。
如果 UE2 与多个 HAP 绑定, HAP1B 可从多个 HAP 中根据负载均衡等策略选一个 HAP 进行数据转发。
步骤 718 : HAP2 根据其缓存的 UE2HIT 与 HAP2 标识的绑定关系, 向 UE2 转发数据。 优选的, HAP2 缓存 UE1 与 HAP1B 的绑定关系。
步骤 719 : UE2 需要向 UE1 发送数据, 则 UE2 向 HAP2 发送发往 UE1 的数据。
具体的, UE2 可以向 HAP2 发送携带 UE1HIT 的数据发送请求消息。
步骤 720 : HAP2 根据缓存的 UE1 与 HAP1A 及 HAP1B 的绑定, 根据负载均衡等策略, 在 HAP1A 或 HAP1B 中选择一个转发数据。
步骤 721 : HAP2 向所述选择的 HAP 转发发往 UE1 的数据, 此处是 HAP1A。
步骤 722 : HAP1A 向 UE1 转发数据。
本实施例可以有多种变换, 例如,
HAP 与 SN 节点可以合设, 即 HAP 组成 DHT 叠加网, 存储 HAP 与设备 HIT 的绑定 ;
可以不使用叠加网来存储 HAP 与 HIP 设备 HIT 的绑定, 而使用类似 DNS 的服务器 集群 ;
UE2 可得到两个以上的 HAP, 并选择两个以上的 HAP 进行连接, 用来转发数据 ;
服务器给 UE 的 HAP 列表可按优先级排序 ; UE 在与 HAP 建立连接时, 可携带参数说 明使用该 HAP 仅作为备用 HAP, 即仅仅事先建立 HIP 连接而不使用此 HAP 转发数据, HAP 把 其与 UE HIT 绑定关系存入 SN 节点组成的叠加网时, 也可说明此 HAP 仅做备用, 当 UE 的主 用 HAP 发生异常故障时, UE 可用备用 HAP 发送数据和接收数据, UE 可设置备用 HAP 成主用 HAP。
实施例 2
本实施例基于图 5 所示的系统结构, 描述单个 HAP 故障, HIP 设备通过非故障 HAP
与其它 HIP 设备通讯的情况, 图 8 为本发明实施例 2 基于 HIP 设备的数据传输方法流程示 意图, 如图 8 所示, 该方法包括 :
步骤 801 : UE1 通过查询静态配置的服务器、 DHCPv6 服务器或 DNS 等方式得到 RTT 较小的 HAP 地址列表, 并根据所述列表与 HAP1A 建立 HIP 关联。 HAP1A 存储 UE1HIT 与 UE1IP 地址的绑定关系, 并将所述绑定关系传递至负责存储 UE1 数据的 SN4 节点进行存储。
步骤 802 : UE1 通过查询静态配置的服务器, DHCPv6 服务器或 DNS 等方式得到 RTT 较小的 HAP 地址列表, 并根据所述列表与与 HAP1B 建立 HIP 关联。HAP1B 存储 UE1HIT 与 UE1IP 地址的绑定关系, 并将所述绑定关系传递至负责存储 UE1 数据的 SN4 节点进行存储。
步骤 803 : UE2 通过查询静态配置的服务器、 DHCPv6 服务器或 DNS 等方式得到 RTT 较小的 HAP 地址, 并根据所述列表与 HAP2 建立 HIP 关联。HAP2 存储 UE2HIT 与 UE2IP 地址 的绑定关系, 并将所述绑定关系传递至负责存储 UE2 数据的 SN5 节点进行存储。
这里, 对步骤 801、 802、 803 的执行顺序不作限定。
步骤 804 : HAP1A 发生异常故障。
步骤 805 : UE1 与 HAP1A 的保活失败, UE1 获知 HAP1A 发生故障, 通过 HAP1B 发送数 据。UE1 也可与新的 HAP 建立 HIP 连接, 以维护同时与多个 HAP 保持连接。 步骤 806 : HAP2 获知 HAP1A 发生故障, 即与 HAP1A 的保活失败或收到其它 HAP 发送 的 HAP1A 故障通知, 则删除有关 HAP1A 的缓存, 如 HAP1A 标识与 UE1HIT 绑定关系的缓存。
这里, 如果 HAP2 是 HAP1A 的保活节点, HAP2 向所有 HAP 发送 HAP1A 故障的广播通 知。
步骤 807 : HAP1A 的保活节点 ( 本实施例中为 HAP2) 通过与其关联的 SN 节点, 删除 在 SN 节点组成的叠加网中存储的 HAP1A 与 UE 的绑定信息。
步骤 808 : UE2 向 HAP2 发送发往 UE1 的数据。
步骤 809 : HAP2 查找 UE1 绑定的 HAP 的缓存, 如无, 则通过 SN2 查找 SN 节点组成的 叠加网, 获取 HAP1B 与 UE1 的绑定关系。
步骤 810 : HAP2 向 HAP1B 转发数据。
步骤 811 : HAP1B 向 UE1 转发数据。
实施例 3
本实施例基于图 5 所示的系统结构, HIP 设备有多个 HAP 连接, 在数据发送过程中 会关闭某些 HAP 连接。图 9 为本发明实施例 3 基于 HIP 设备的数据传输方法流程示意图, 如图 9 所示, 该方法包括 :
步骤 901 ~步骤 903 : 同步骤 801 ~步骤 803。
步骤 904 : UE1 使用 HIP Close 包关闭其与 HIP1A 的 HIP 连接。
步骤 905 : HAP1A 收到 UE1 发送的 Close 包后, 向其连接的 SN1 节点发送删除其与 UE1 的绑定关系的命令。并且删除其缓存的 UE1HIT 与 UE1IP 的绑定。
步骤 906 : SN1 节点根据 DHT 叠加网的路由规则向负责存储 UE1 数据的 SN 节点发送 删除 HAP1A 与 UE1 的绑定关系的命令。负责存储 UE1 数据的 SN 节点删除 UE1HIT 与 HAP1A 标识的绑定关系。
步骤 907 : UE2 向 HAP2 发送数据, 目的设备是 UE1。
步骤 908 : HAP2 按照 UE1HIT 与 HAP1A 绑定的缓存向 HAP1A 转发发往 UE1 的数据。
步骤 909 : HAP1A 发现其与 UE1 没有 HIP 连接, 向 HAP2 发送失败通知, 包含 UE1HIT, 也可包含 HAP1A 的标识。
步骤 910 : HAP2 收到 HAP1A 发送的失败通知, 删除其缓存的 UE1HIT 与 HAP1A 的绑 定关系。同时 HAP2 查找 UE1HIT 是否还与其它 HAP 连接, 如其缓存没有, 可查找 SN 节点组 成的叠加网, 发现 UE1HIT 与 HAP1B 连接, 不向 UE2 发送 UE1 不可达通知。
步骤 911 : HAP2 向 HAP1B 转发发往 UE1 的数据。
步骤 912 : HAP1B 根据 UE1HIT 与 UE1IP 的绑定关系, 向 UE1 转发数据。
步骤 913 : UE1 使用 HIP Close 包关闭其与 HIP1B 的 HIP 连接。
步骤 914 : HAP1B 收到 UE1 发送的 Close 包后, 向其连接的 SN1 节点发送删除其与 UE1 的绑定关系的命令。并且删除其缓存的 UE1HIT 与 UE1IP 的绑定关系。
步骤 915 : SN1 节点根据 DHT 叠加网的路由规则向负责存储 UE1 数据的 SN 节点发送 删除 HAP1B 与 UE1 的绑定关系的命令。负责存储 UE1 数据的 SN 节点删除 UE1HIT 与 HAP1B 的绑定关系。
步骤 916 : UE2 向 HAP2 发送数据, 目的设备是 UE1。
步骤 917 : HAP2 按照 UE1HIT 与 HAP1B 绑定的缓存向 HAP1B 转发发往 UE1 的数据。
步骤 918 : HAP1B 发现其与 UE1 没有 HIP 连接, 向 HAP2 发送失败通知, 该通知包含 UE1HIT, 也可包含 HAP1B 的标识。
步骤 919 : HAP2 收到 HAP1B 发送的失败通知, 删除其缓存的 UE1HIT 与 HAP1B 的绑 定。同时 HAP2 查找 UE1HIT 是否还与其它 HAP 连接, 如其缓存没有, 可查找 SN 节点组成的 叠加网。发现没有 HAP 与 UE1HIT 绑定。
步骤 920 : HAP2 向 UE2 发送 UE1 不可达通知。
本实施例 UE1 给 HAP1A 发送的 Close 包中, 可增加 HIP 参数, 例如 Active HAP, 来 通知 HAP1A 其与 HAP1B 连接。本实施例同样可用于 UE2 与两个以上的 HAP 连接。
需要说明的是, 本发明上述实施例中, HAP 保存 UE 的 HIT 与 IP 的绑定关系, SN-C 保存 UE HIT 与此 UE 关联的 HAP IP 地址的绑定关系。
以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范围。