发明内容
本发明要解决的技术问题是提供一种基于主机标识协议的通信方法、系统及设备,以减少用于HIP连接建立的开销。
为解决以上技术问题,本发明提供了一种基于主机标识协议的通信方法,该方法基于主机标识协议(HIP)设备和HIP设备接入节点(HAP)实现,该方法包括:
源端HIP设备与源端HAP建立HIP连接;
所述源端HIP设备通过所述HIP连接向所述源端HAP发送数据包;
所述源端HAP接收所述数据包并根据目的端设备的HIP连接关系或IP地址进行转发。
进一步地,所述目的端设备为HIP设备且与所述目的端设备存在HIP连接关系的目的端HAP与所述源端HAP不同时,所述源端HAP将数据包转发至所述目的端HAP;所述目的端HAP通过与所述目的端设备的HIP连接将数据包转发至目的端设备。
进一步地,所述HAP保存并维护与其存在HIP连接的HIP设备的主机标识标签(HIT)与IP地址的对应关系;所述目的端HAP根据目的端设备的HIT与IP地址的对应关系向目的端设备转发数据包。
进一步地,所述HAP维护所述HIP设备的对应关系的方法为:所述HAP与所述HIP设备建立HIP连接时,缓存所述对应关系;所述HIP设备的HIP连接中断或关闭后,删除所述对应关系;所述HIP设备的IP地址改变时,更新所述对应关系。
进一步地,连接关系维护系统和/或所述HAP保存并维护用以体现HIP连接关系的所述HIP设备的HIT与所述HAP的IP地址的绑定关系;所述HAP接收数据包后,先根据数据包中的目的HIT查询本地保存的对应关系,若查到,表明所述HAP与目的端设备存在HIP连接;若未查到,再根据所述目的HIT查询对应的绑定关系,进而根据查询结果向目的端HAP或目的端HIP设备转发。
进一步地,所述HAP向所述连接关系维护系统查询对应的绑定关系后在本地缓存所述绑定关系,和/或目的端HAP收到要发送到目的端HIP设备的数据包时,根据数据包保存源端HIP设备的HIT与源端HAP的IP地址的绑定关系,并定时删除。
进一步地,所述HIP设备与所述HAP建立HIP连接后通过以下方法实现HIP连接保活:
所述HIP设备定时向所述HAP发送通知消息,所述HAP收到所述通知消息后发送应答消息;
若所述HAP在预定时间内未收到通知消息,则删除本地保存的对应关系,并通知所述连接关系维护系统或相关的HAP删除对应的绑定关系,收到发往所述HIP设备的数据包时,通知发送端数据发送失败;
若所述HIP设备在预定时间内未收到应答消息,则重新与所述HAP或新的HAP建立HIP连接。
进一步地,所述源端HIP设备发送的数据包的源、目的主机标识标签(HIT)分别为所述源端HIP设备与所述目的端HIP设备的HIT,源、目的IP地址分别为所述源端HIP设备和所述源端HAP的IP地址;所述源端HAP将所述数据包处理后再向所述目的端HAP转发,所述源端HAP处理数据包的方法为:在接收的数据包的基础上封装源、目的IP地址分别为所述源端HAP和目的端HAP的IP地址,或,将源、目的IP地址分别替换为所述源端HAP和目的端HAP的IP地址。
进一步地,所述HIP设备具有多个IP地址,所述HIP设备通过更新流程向所述HAP上报所述多个IP地址,所述HAP缓存所述HIP设备的HIT与多个IP地址的对应关系;所述HAP收到发往所述HIP设备的数据包时,根据特定的策略选择其中一个IP地址作为发送给所述HIP设备的数据包的目的IP地址。
进一步地,与所述HIP设备建立HIP连接的所述HAP是所述HIP设备通过查询静态配置服务器、IPv6的动态主机配置协议(DHCPv6)或DNS确定的包来回时间(RTT)小于预设阈值的HAP。
为解决以上技术问题,本发明还提供了一种基于主机标识协议的通信系统,该系统包括主机标识协议(HIP)设备及HIP设备接入节点(HAP),其中,
所述HIP设备包括:
HIP连接建立模块,用于与HIP设备接入节点(HAP)建立HIP连接;
所述数据包收发模块,作为源端设备时,用于通过所述HIP连接发送数据包;作为目的端设备时,用于通过所述HIP连接接收数据包;
所述HAP包括:
HIP连接建立模块,用于与所述HIP设备建立HIP连接;
数据包转发模块,用于接收数据包,以及根据目的端设备的HIP连接关系或IP地址进行转发。
为解决以上技术问题,本发明还提供了一种主机标识协议设备,所述主机标识协议(HIP)设备包括HIP连接建立模块及数据包收发模块,其中:
所述HIP连接建立模块,用于与HIP设备接入节点(HAP)建立HIP连接;
所述数据包收发模块,作为源端设备时,用于通过所述HIP连接向所述HAP发送数据包;作为目的端设备时,用于接收所述HAP通过所述HIP连接发送的数据包。
进一步地,所述设备还包括IP地址更新模块,用于在所述HIP设备IP地址改变或具有多个IP地址时通过更新流程向所述HAP上报所述HIP设备的IP地址。
为解决以上技术问题,本发明还提供了一种主机标识协议设备的接入节点,所述主机标识协议设备的接入节点(HAP)包括HIP连接建立模块及数据包转发模块,其中,
HIP连接建立模块,用于与HIP设备建立HIP连接;
数据包转发模块,用于接收数据包,以及根据目的端设备的HIP连接关系或IP地址进行转发。
本发明基于主机标识协议的通信方法、系统及设备,引入HIP设备接入节点(HIP Access Point,HAP),HIP设备与HAP建立HIP连接后,由HAP设备转发HIP设备与其他HIP设备和/或非HIP设备之间的数据,从而可以减少HIP设备需要建立的HIP连接和时延,提高用户体验。
具体实施方式
本发明的思路是改变HIP设备端到端连接方式,引入HIP设备接入节点(HIP Access Point,HAP),HIP设备与HAP建立HIP连接后,由HAP设备转发HIP设备与其他HIP设备和/或非HIP设备之间的数据,从而可以减少HIP设备需要建立的HIP连接和时延,提高用户体验。
以下结合图5对HIP设备及HIP设备接入节点进行说明。
图5中UE1、UE2、UE3、UE4为HIP设备,支持HIP协议;HAP1、HAP2和HAP3是基础架构的HIP接入节点,提供各HIP设备的HIP接入,数据转发,其中,HAP1与UE1和UE4建立HIP连接,HAP2与UE2建立HIP连接,HAP3与UE3建立HIP连接。
由于HIP基于端到端的连接,每个HIP设备都需要四次握手来与一个新的HIP设备建立关联,增加了HIP设备的开销。同时,当一个HIP设备与另一个HIP设备之间的RTT较长时,建立连接时延较长,影响用户体验。因此优选地,HIP设备与RTT(Round Trip Time,包来回时间)较小的HAP建立HIP连接,HIP设备发送的数据包由该HAP转发。
与HIP设备建立HIP连接的HAP可以是HIP设备通过查询静态配置服务器、IPv6的动态主机配置协议(DHCPv6)或DNS确定的包来回时间(RTT)小于预设阈值的HAP。
如图6所示,本发明基于主机标识协议的通信方法包括以下步骤:
步骤601:源端HIP设备与源端HAP建立HIP连接;
步骤602:所述源端HIP设备通过所述HIP连接向所述源端HAP发送数据包;
步骤603:所述源端HAP接收所述数据包并根据目的端设备的HIP连接关系或IP地址进行转发。
根据本发明思想,HIP设备可以与其他HIP设备进行通信,也可以与其他非HIP设备进行通信。
为了保存并维护HIP设备与HAP之间的连接关系,本发明引入连接关系维护系统,如图7所示,其中:
HIP设备701表示支持HIP协议的用户设备,与HAP 702进行HIP连接;HAP 702负责HIP设备701的数据转发,HAP之间可使用隧道也可直接转发HIP包;
连接关系维护系统703,存储HIP设备的HIT与HAP的IP地址的绑定关系,HAP通过数据存取接口存取HIP设备与HAP的绑定关系。
另外,HAP也可保存上述绑定关系。
连接关系维护系统由若干个节点组成,图8是SN(Super Node)节点存储HIP设备HIT与当前HAP的IP地址的绑定关系的示意图。SN节点是一些均质化的节点。HAP根据特定的存储规则通过SN节点的存储、获取接口来存储和获取HIP设备HIT与HAP的绑定关系。其中:
801,UE1关联的HAP1通过SN1节点来存储和获取UE1的HIT与HAP1的绑定关系。
802,根据存储规则和UE2的标识(如HIT)来确定的UE2的HIT和与其关联的HAP绑定关系的存储SN节点。其它SN节点可以根据存储规则和UE2的标识(如HIT)到此SN节点获取UE2HIT和与其关联的HAP绑定信息。
实施例一
图9是基于图8所示的SN节点组成的连接关系维护系统存储HIP设备HIT和HAP的绑定关系,通讯两端的HIP设备UE1和UE2连接在不同的HAP上,包括以下步骤:
步骤901,UE1与HAP1建立HIP连接,UE2与HAP2建立HIP连接;
以UE为例,UE1通过查询静态配置的服务器,DHCPv6(IPv6的动态主机配置协议)或DNS等方式得到RTT较小的HAP1地址,UE1与HAP1建立HIP连接。HAP1存储UE1的HIT与UE1的IP地址的对应关系。HAP1在UE1的负责SN节点中存储其与UE1的HIT的绑定关系。
步骤902,UE1使用其与HAP1的HIP连接向HAP1发送其想发往UE2的数据包;
UE1需要告诉HAP1数据包是发给UE2的,本发明提供一种新的HIP包类型DATA,该数据包的HIP头中的源HIT填写UE1的标识符HIT_ue1,目的HIT填写UE2的标识符HIT_ue2;源和目的的IP地址分别是UE1和HAP1的IP地址。
步骤903,HAP1收到UE1发送的数据包后,根据目的HIT值HIT_ue2,查询其是否缓存了HIT_ue2的绑定关系,如无,则向其连接的SN1查询HIT_ue2的绑定关系;
步骤904,SN1根据存储规则向UE2的负责SN节点获取UE2关联的HAP2的信息并返回给HAP1;
步骤905,HAP1缓存UE2与HAP2的绑定关系,并向HAP2转发UE1发送给UE2的数据;
从而不用每次通过SN节点去取绑定关系,并可设置定时器,在定时器超时后删除绑定关系的缓存。HAP1向HAP2转发UE1发送给UE2的数据,可有多种实现方式,以下给出两种实现方式:
方式一:HAP1直接转发UE1发送的HIP包,把HIP包作为IP包的内容,源和目的IP地址分别是HAP1和HAP2的IP地址;
方式二:HAP1与HAP2使用隧道关联,HAP1去掉HIP头,在内层IP包头的源地址和目的地址分别填写HIT_ue1和HIT_ue2,在外层IP包头的源地址和目的地址分别填写HAP1和HAP2的IP地址。
步骤906,HAP2收到HAP1发送的数据包后,取得相应目的标识HIT_ue2,根据目的HIT_ue2查找相应的UE2的IP地址,向UE2转发数据。其中HIP包类型为DATA,HIP头中的源HIT为UE1的标识符HIT_ue1,0目的HIT为UE2的标识符HIT_ue2,源和目的的IP地址分别是HAP2和UE2的IP地址。
HAP2可根据接收的数据包,缓存UE1的HIT与HAP1的绑定关系,并可设置定时器,在定时器超时后删除绑定关系的缓存,每次HAP2收到由HAP1发送的UE1的数据可重置定时器。如果HAP2查询不到UE2的IP地址,例如UE2已断开与HAP2的HIP连接,HAP2向HAP1发送数据发送失败通知,包含UE2HIT,也可包含HAP2的标识。HAP1收到数据发送失败通知后,删除UE2HIT与HAP2的绑定关系。
图9所示的实施例可以有多种变换,如:
HAP存储HAP与HIP设备的绑定绑定关系,每个HAP实现连接关系维护系统的功能,存储所有的绑定关系;或由所有HAP共同实现连接关系维护系统的功能,各个HAP根据存储规则对应实现SN节点的功能;或,
不使用连接关系维护系统存储HAP与HIP设备的绑定关系,而使用类似DNS的服务器集群;或,
HAP不缓存HAP与HIP设备的绑定关系,即HAP1每次转发发往UE2的数据时,都从负责存储HIP设备与HAP绑定关系的SN节点或HAP处获取UE2与HAP2的绑定关系;或,
步骤903中,HAP1先判断UE2是否与其存在HIP连接,即先查询本地是否保存有UE2的HIT与UE2的IP地址的对应关系,如查询到,HAP1直接向UE2转发数据,其中HIP包类型为DATA,HIP头中的源HIT为UE1的标识符HIT_ue1,目的HIT为UE2的标识符HIT_ue2。源和目的的IP地址分别是HAP1和UE2的IP地址;未查询到时,再查询对应的绑定关系。
HAP与HIP设备之间建立如下保活机制实现HIP连接保活:
HIP设备定时向HAP发送通知消息,所述HAP收到所述通知消息后发送应答消息;
若HAP在预定时间内未收到通知消息,则删除本地保存的对应关系,并通知所述连接关系维护系统或相关的HAP删除对应的绑定关系(比如,通知负责SN节点删除其保存的HIP设备与该HAP的绑定关系),在收到其它HAP发送的发往该HIP设备的数据包时,通知发送端(如对端HAP或对端HIP设备)数据发送失败,包含UE HIT,也可包含HAP标识;
若所述HIP设备在预定时间内未收到应答消息,表明HIP连接中断,则重新执行步骤901与该HAP或新的HAP建立HIP连接;如果与新的HAP建立了HIP连接,该HIP设备可通知新的HAP,让其通知删除原绑定关系。
HAP与HAP之间可建立保活机制:一个HAP发现其它HAP不可达时,删除其缓存的HIP设备与不可达的HAP的绑定关系,并发送广播消息通知其它HAP,及删除连接关系维护系统中不可达HAP对应的绑定关系。
如HIP设备有多个IP地址,在步骤901中,UE使用HIP协议的更新流程(如Update包)向HAP说明其多个IP地址,HAP保存HIP设备的HIT与多个IP地址的对应关系。在步骤902中,UE可用不同的IP地址向HAP发送数据,其源IP地址填写UE的用于发送这个包的IP地址,步骤903至步骤906相同。当HAP收到发往该HIP设备的数据时,其可根据HIP设备的HIT与多个IP地址的绑定,在这多个IP地址中根据一些策略,如负载均衡策略,选取一个IP地址作为发送给该HIP设备的数据包的目的IP地址。
以上实施例一中的数据包格式仅为本发明优选格式,例如为了实现源端HAP向目的端HAP的转发,源端HIP设备发送的数据包中只要包括目的端HIP设备的信息,使得源端HAP能查询到相应的目的端转发路由即可,例如,可以在源端HIP设备发送的数据包中以信元的方式携带目的端HIP设备的HIT信息。源端HAP可以通过记录通信双方或数据包的相关信息实现返回的数据包的转发。
实施例二
图10是本发明的HIP设备关闭其与HAP之间的HIP连接的实施例,其中,使用图8所示的SN节点组成的连接关系维护系统来存储HIP设备和HAP的绑定关系,通讯两端的HIP设备UE1和UE2连接在不同的HAP上,包括以下步骤:
步骤1001UE1与HAP1建立HIP连接,UE2与HAP2建立HIP连接;以UE为例,UE1通过查询静态配置的服务器,DHCPv6(IPv6的动态主机配置协议)或DNS等方式得到RTT较小的HAP1地址,UE1与HAP1建立HIP连接。HAP1存储UE1的HIT与UE1的IP地址的对应关系。HAP1在UE1的负责SN节点中存储其与UE 1的HIT的绑定关系。
步骤1002,UE1使用其与HAP1的HIP连接向HAP1发送HIP Close包,关闭其与HAP1的HIP连接;
步骤1003,HAP1收到UE1发送的Close包后,向其连接的SN1节点发送删除其与UE1的绑定关系的命令,并且删除其缓存的UE1的HIT与UE1的IP的对应关系;
步骤1004,SN1节点根据存储规则向UE1的负责SN节点发送删除HAP1与UE1的绑定关系的命令,UE1的负责SN节点删除UE1HIT与HAP1的绑定关系;
步骤1005,UE2向HAP2发送数据,目的设备是UE1;
步骤1006,HAP2收到UE2发送的数据包后,取得相应目的标识HIT_ue1,根据目的HIT_ue1查找到缓存的UE1的HIT与HAP1的IP地址的绑定关系,向HAP1转发数据;
步骤1007,HAP1发现其与UE1无HIP连接,向HAP2发送数据发送失败通知,包含UE1HIT,也可包含HAP1的标识;
步骤1008,HAP2删除其缓存的UE1的HIT与HAP1的IP地址的绑定关系,HAP2查找SN节点组成的连接关系维护系统,查看UE1是否与新的HAP建立了HIP连接,如UE1无其它连接的HAP,HAP2通知UE2,UE1不可达。
实施例三
如图11为HIP设备IP地址改变的示意图,基于图11的情形,IP地址改变的流程如图12所示,包括以下步骤:
步骤1201,UE1通过查询静态配置的服务器,DHCPv6(IPv6的动态主机配置协议),或DNS等方式得到HAP地址,UE1与HAP1建立HIP连接,HAP1存储UE1的HIT与IP地址的对应关系;
步骤1202,UE1的IP地址发生改变;
步骤1203,UE1向其所关联的HAP1发送HIP Update来通知IP地址的改变。HAP1记录UE1这个IP地址的改变;
步骤1204,与UE1通讯的其它设备如UE2向UE1发送数据;
步骤1205,HAP1发现UE1通知IP地址改变的IP地址是唯一发往UE1的地址,则可缓存发往UE1的数据;
步骤1206,HAP1往UE1的新IP地址发送Update的确认;
步骤1207,UE1往HAP1发送Update的确认;
步骤1208,HAP1存储UE的HIT与新IP地址的对应关系,删除原对应关系;
步骤1209,HAP1向UE1发送缓存的数据。
本实施例三可以有多种变换,如:
HAP1不需验证UE1的新IP地址,HAP1不缓存数据,在收到UE1的IP地址改变的Update消息后,直接向UE的新IP地址转发数据;或
UE1在IP地址改变前提前获知其新IP地址,UE1提前通知HAP1其新IP地址,HAP可选择同时往UE的旧IP地址和新IP地址转发数据包。
另外,基于本发明思想,HIP设备将数据包发送给HAP后,还可以通过该HAP实现与非HIP设备的通信,此时HAP只需要将接收的数据包的源、目的IP地址分别修改为HAP的IP地址及非HIP设备的IP地址并转发即可,与该非HIP设备通信时,并不妨碍该HIP设备与其他HIP设备通过已建立的HIP连接进行通信。
为实现以上方法,本发明还提供了一种基于主机标识协议的通信系统,其特征在于,该系统包括主机标识协议(HIP)设备及HIP设备接入节点(HAP),其中,所述HIP设备包括:
HIP连接建立模块,用于与HIP设备接入节点(HAP)建立HIP连接;
所述数据包收发模块,作为源端设备时,用于通过所述HIP连接发送数据包;作为目的端设备时,用于通过所述HIP连接接收数据包;
所述HAP包括:
HIP连接建立模块,用于与所述HIP设备建立HIP连接;
数据包转发模块,用于接收数据包,以及根据目的端设备的HIP连接关系或IP地址进行转发。
所述目的端设备为HIP设备,且源端HAP与目的端HAP不同时,所述源端HAP的数据包转发模块将接收的数据包转发至所述目的端HAP;所述目的端HAP的数据包转发模块通过与目的端设备的HIP连接将接收的数据包转发至目的端设备。
所述HAP还包括与所述数据包转发模块连接的对应关系缓存模块,用于保存并维护与其存在HIP连接的HIP设备的主机标识标签(HIT)与IP地址的对应关系;目的端HAP的数据包转发模块将接收的数据包根据目的端设备的HIT与IP地址的对应关系向目的端设备转发。
所述HAP的对应关系缓存模块维护所述HIP设备的对应关系包括:所述HAP与所述HIP设备建立HIP连接时,缓存所述对应关系;所述HIP设备的HIP连接中断或关闭后,删除所述对应关系;所述HIP设备的IP地址改变时,更新所述对应关系。
所述通信系统还包括连接关系维护系统,用于保存并维护用以体现HIP连接关系的所述HIP设备的HIT与所述HAP的IP地址的绑定关系;所述HAP还包括查询模块,用于先根据接收的数据包中的目的HIT查询对应关系缓存模块,若查到,表明所述HAP与目的端设备存在HIP连接;若未查到,再根据所述目的HIT向所述连接关系维护系统查询对应的绑定关系;所述数据包转发模块将接收的数据包根据所述查询模块的查询结果向目的端HAP或目的端HIP设备转发。
所述HIP设备还包括IP地址更新模块,用于在所述HIP设备IP地址改变或具有多个IP地址时通过更新流程向所述HAP上报所述HIP设备的IP地址;所述HIP设备有多个IP地址时,所述HAP的对应关系缓存模块缓存所述HIP设备的HIT与所述多个IP地址的对应关系;所述HAP作为目的端HAP时,所述数据包转发模块还用于根据特定的策略选择其中一个IP地址作为发送给所述目的端HIP设备的数据包的目的IP地址。
本发明还提供了一种主机标识协议设备,所述主机标识协议(HIP)设备包括HIP连接建立模块及数据包收发模块,其中:
所述HIP连接建立模块,用于与HIP设备接入节点(HAP)建立HIP连接;
所述数据包收发模块,作为源端设备时,用于通过所述HIP连接向所述HAP发送数据包;作为目的端设备时,用于接收所述HAP通过所述HIP连接发送的数据包。
所述设备还包括IP地址更新模块,用于在所述HIP设备IP地址改变或具有多个IP地址时通过更新流程向所述HAP上报所述HIP设备的IP地址。
另外,本发明还提供了一种主机标识协议设备的接入节点,所述主机标识协议设备的接入节点(HAP)包括HIP连接建立模块及数据包转发模块,其中,
HIP连接建立模块,用于与HIP设备建立HIP连接;
数据包转发模块,用于接收数据包,以及根据目的端设备的HIP连接关系或IP地址进行转发。
所述目的端设备为HIP设备,且源端HAP且与目的端HAP不同时,所述源端HAP的数据包转发模块将接收的数据包转发至所述目的端HAP;所述目的端HAP的数据包转发模块通过与目的端设备的HIP连接将接收的数据包转发至目的端设备。
所述HAP还包括与所述数据包转发模块连接的对应关系缓存模块,用于保存并维护与其存在HIP连接的HIP设备的主机标识标签(HIT)与IP地址的对应关系;所述HIP设备有多个IP地址时,所述HAP的对应关系缓存模块缓存所述HIP设备的HIT与所述多个IP地址的对应关系;所述HAP作为目的端HAP时,所述数据包转发模块还用于根据特定的策略选择其中一个IP地址作为发送给所述HIP设备的数据包的目的IP地址。
所述HAP还包括绑定关系缓存模块和查询模块,所述绑定关系缓存模块,用于根据存储规则保存并维护用以体现HIP连接关系的所述HIP设备的HIT与HAP的IP地址的绑定关系;所述查询模块,用于先根据接收的数据包中的目的HIT查询对应关系缓存模块,若查到,表明所述HAP与目的端设备存在HIP连接;若未查到,再根据所述目的HIT及存储规则查询所述绑定关系缓存模块;所述数据包转发模块将接收的数据包根据所述查询模块的查询结果向目的端HAP或目的端HIP设备转发。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
本发明基于主机标识协议的通信方法、系统及HIP设备及HAP,使得HIP设备只需要与HAP建立HIP连接,即可与一个或多个HIP设备或非HIP设备实现通信;尤其是在与多个HIP设备通信时,无需建立多个HIP连接,减少了设备的开销。另外,HIP设备选择与RTT小于预设阈值的HAP建立HIP连接,可以减小HIP连接建立的时延,给用户提供良好的用户体验。当HIP设备的IP地址改变时,仅需要通知与其有HIP连接的HAP,减小了时延和开销。
与其他HIP设备通信时,只需指明接收数据的设备的标识,不需查找接收数据的HIP设备的IP地址。