终端多ip地址有效性检测方法

文档序号:7859225阅读:280来源:国知局
专利名称:终端多ip地址有效性检测方法
技术领域
本发明涉及互联网传输技术领域,特别涉及一种Client/Server通信模型下的具有多IP地址终端的IP地址有效性检测方法。
背景技术
近年来,随着网络技术的发展,终端能力的不断增强,IPv6网络的日益成熟,越来越多的终端具有多个可用的IP地址,例如目前主流的笔记本配置至少一个以太网卡和一个无线网卡,通过这两块网卡均可获得IP地址;另外,在IPv6环境中,一台只有一个接口的终端也可以同时拥有多个可用的IPv6地址。终端具有多IP地址为网络传输带来了巨大的优势,当前的研究热点也在围绕如何利用多地址带来的好处展开,如利用多地址提高传输速率、利用多地址实现终端的无缝 切换等。然而,在终端同时拥有的多个IP地址中,并不是所有的IP地址都是可达的,虽然有些地址(如IPv4中的127. O. O. I, IPv6中的以fe80打头的地址)可以通过地址本身的格式就可以确定是否为可达IP,但是更多的IP地址无法简单的通过格式来判断是否可达,而且有些IP地址是否可达存在一定的时效性,一个可达的IP可能在一定时间之后变成不可达地址。正是由于这些因素的存在,使得多地址终端的IP有效性检测成为利用多地址优势的一大挑战。在众多基于Client/Server模型的应用中,由于多IP地址环境的复杂性,无法获取真实有效的IP地址,多地址不但没有给应用带来应有的性能和稳定性提升,反而增加了应用出错的可能性,降低了性能和稳定性。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是,针对上述缺陷,如何提供一种Client/Server通信模型下的具有多IP地址终端的IP地址有效性检测方法,其能够在原有Client/Server模型通信协议的基础上,检测真实有效的IP地址,实现IP地址的无缝切换,从而使基于Client/Server模型的应用程序具有更好的鲁棒性。(二)技术方案为解决上述技术问题,本发明提供了一种终端多IP地址有效性检测方法,包括步骤客户端向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端;服务器端根据客户端发送来的第一请求消息生成第二请求消息,分别以第一请求消息中所列出的每个IP地址为目的地址,将所述第二请求消息发送给客户端,如果在第二预定时间内接收到客户端对第二请求消息的响应,则相应IP地址有效,否则,相应IP地址无效。
其中,所述客户端向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端具体包括客户端在网络配置(如IP地址)发生变化时,以及每间隔第一预定时间向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端。
其中,所述第一预定时间为120s。其中,所述客户端向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端具体包括客户端获取本机所有IP地址,并根据地址格式进行筛选过滤掉无法直接访问的IP地址;客户端将所有能够直接访问的IP地址填入第一请求消息的消息体中,同时将能够唯一标识终端的内容作为这些IP地址的组号ID,填入第一请求消息的消息体中,发送到服务器端。其中,所述第二预定时间为300ms。其中,所述服务器端根据客户端发送来的第一请求消息生成第二请求消息,分别以第一请求消息中所列出的每个IP地址为目的地址,将所述第二请求消息发送给客户端,如果在第二预定时间内接收到客户端对第二请求消息的响应,则相应IP地址有效,否则,相应IP地址无效具体包括服务器端从第一请求消息中获取组号ID和所有能够直接访问的IP地址;服务器端生成包含从第一请求消息中获取的组号ID的第二请求消息,然后以第一请求消息中所列出的每个IP地址为目的地址,将所述第二请求消息分别发送给客户端;如果在第二预定时间内,服务器端收到客户端对第二请求消息的响应消息,则该第二请求消息的目的地址所对应的IP地址有效;否则,则该第二请求消息的目的地址所对应的IP地址无效。其中,所述服务器端从第一请求消息中获取组号ID和所有能够直接访问的IP地址之后,进一步包括将组号ID和所有能够直接访问的IP地址存入IP地址列表数据库的步骤。其中,所述服务器端从第一请求消息中获取组号ID和所有能够直接访问的IP地址之前,进一步包括服务器端收到客户端发送来的第一请求消息后,向客户端返回响应消息。其中,所述如果在第二预定时间内,服务器端收到客户端对第二请求消息的响应消息,则该第二请求消息的目的地址所对应的IP地址有效;否则,则该第二请求消息的目的地址所对应的IP地址无效之前,进一步包括客户端对收到的以能够直接访问客户端的IP地址为目的地址的第二请求消息,向服务器端返回响应消息。(三)有益效果本发明提出了一种Client/Server通信模型下的具有多IP地址终端的IP地址有效性检测方法,通过在客户端和服务器之间,利用Client/Server模型中已有的消息通信机制,对终端IP地址的有效性进行检测,实现客户端IP地址可达状态的实时检测和维护,并提出了主IP地址的替换方案,从而使得客户端在主IP地址失效时可以无缝切换到另一个可达的备用IP地址,保证了服务器端能够及时高效地获取客户端的多个有效可达IP地址,为应用程序利用多IP地址提升传输能力、稳定性和可靠性提供了切实可行的基础。


图I是本发明实施例的终端多IP地址有效性检测方法的流程图;图2是本发明所述终端多IP地址有效性检测方法中步骤SI的流程图;图3是本发明所述终端多IP地址有效性检测方法中步骤S2的流程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。 SIP (Session Initiation Protocol,会话初始协议)是由 IETF (InternetEngineering Task Force,互联网工程任务组)提出的一个类似于HTTP的基于Client/Server模型的应用层控制协议,可以用来建立、修改、和终止多媒体会话(或者会议XSIP协议是基于Client/Server模型的经典的通信协议,SIP协议标准中定义的OPTIONS消息是所有标准SIP服务器端和客户端都支持的请求,利用它的请求(REQUEST)/应答(RESPONSE)机制,通过设计合理的检测机制和IP地址存储机制,能够有效地对客户端地址可达性进行实时的检测,本发明就是以SIP协议的OPTIONS消息为例进行说明,但是本发明并不局限于SIP协议,任何在客户端与服务器端具有类似REQUEST/RESPONSE消息机制的应用,都可以采用本发明所阐述的方式进行多IP地址有效性的检测。如图I所示,本发明所述的终端多IP地址有效性检测方法包括步骤SI、客户端在网络配置(如IP地址)发生变化时,以及每间隔第一预定时间,例如120s,向服务器端发送第一请求消息,例如OPTIONS请求消息(以下简称C-0PTI0NS),将本机所有可用IP地址注册到服务器端。由于客户端的IP地址有可能发生变化,使得原本不可达的地址有可能在一段时间之后变为可达,而原本可达的地址也有可能变为不可达,因此,客户端需要定期主动发起一次检测过程,以保证客户端IP地址可达性发生变化时,能够及时通知服务器端。具体的实现,可以是在客户端单独增加一个线程,以轮询的方式,不断检查本地网络的配置情况,当发现网络配置发生改变时,则通知客户端发起IP地址有效性检查的过程;也可以通过在操作系统中以注册事件的方式,监听系统的网络配置变化,如果本机IP地址发生变化,操作系统会产生一个事件,通知监听的客户端程序,然后客户端发起IP有效性检查;客户端还可以通过设置定时器,每隔一定时间主动向服务器端发起一次检测。通过以上几种方式,都会促使客户端重新获取其所有的IP地址,对客户端IP地址的有效性进行检测,从而服务器端能够相应地对IP地址列表数据库中的IP地址及其可达性标识进行更新,并更新客户端的主IP地址。如图2所示,本步骤具体包括步骤SI. I、客户端获取本机所有IP地址,包括IPv4和IPv6地址,并根据地址格式进行筛选,过滤掉无法直接访问的IP地址。在IPv4和IPv6环境下,均有一部分IP地址是有特殊用途的,在Internet上是无法直接访问的。在IPv4中,无法直接访问的IP地址包括环路地址(127. O. O. *)、私有地JatClO. *· *· *,172. 16. *· *——172. 31. *· *,192. 168. *· *)、广播地址(255. 255. 255. 255)、组播地址(224. O. O. 0—239. 255. 255. 255)、链路本地地址(169. 254. *· *)等;在 IPv6 中,无法直接访问的IP地址包括回送地址(1/128)、多播地址(€ )1::1/1284 )2::1/128,ff02: :2/128, ff05: :2/128, ffOO: :/8)、用于 IPv4 映射的地址(ffff:0:0/96)、用于 6to4寻址(2002: :/16)、链路本地地址(fe80: :/64)和唯一本地地址(fcOO: :/8, fdOO: :/8)等。步骤SI. 2、客户端将所有能够直接访问的IP地址填入第一请求消息,例如C-0PTI0NS消息的消息体(Message Body)中,同时将能够唯一标识终端的内容,例如利用MD5算法对终端的MAC地址进行哈希计算后的值,作为这些IP地址的组号ID,填入第一请求消息的Message Body中,发送到服务器端。C-0PTI0NS中Message Body的内容格式以XML格式定义,保证服务器端能够正确解析组号ID和注册的所有IP地址。
C-0PTI0NS请求消息具体如下表I所示。其中以客户端和服务器端协商好的XML格式,写入了客户端所有的IP地址和唯一标识终端的组号ID (group id)。
权利要求
1.一种终端多IP地址有效性检测方法,其特征在于,包括步骤 客户端向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端; 服务器端根据客户端发送来的第一请求消息生成第二请求消息,分别以第一请求消息中所列出的每个IP地址为目的地址,将所述第二请求消息发送给客户端,如果在第二预定时间内接收到客户端对第二请求消息的响应,则相应IP地址有效,否则,相应IP地址无效。
2.根据权利要求I所述的终端多IP地址有效性检测方法,其特征在于,所述客户端向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端具体包括 客户端在网络配置发生变化时,以及每间隔第一预定时间向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端。
3.根据权利要求2所述的终端多IP地址有效性检测方法,其特征在于,所述第一预定时间为120s。
4.根据权利要求I所述的终端多IP地址有效性检测方法,其特征在于,所述客户端向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端具体包括 客户端获取本机所有IP地址,并根据地址格式进行筛选过滤掉无法直接访问的IP地址; 客户端将所有能够直接访问的IP地址填入第一请求消息的消息体中,同时将能够唯一标识终端的内容作为这些IP地址的组号ID,填入第一请求消息的消息体中,发送到服务器端。
5.根据权利要求I所述的终端多IP地址有效性检测方法,其特征在于,所述第二预定时间为300ms。
6.根据权利要求I所述的终端多IP地址有效性检测方法,其特征在于,所述服务器端根据客户端发送来的第一请求消息生成第二请求消息,分别以第一请求消息中所列出的每个IP地址为目的地址,将所述第二请求消息发送给客户端,如果在第二预定时间内接收到客户端对第二请求消息的响应,则相应IP地址有效,否则,相应IP地址无效具体包括 服务器端从第一请求消息中获取组号ID和所有能够直接访问的IP地址; 服务器端生成包含从第一请求消息中获取的组号ID的第二请求消息,然后以第一请求消息中所列出的每个IP地址为目的地址,将所述第二请求消息分别发送给客户端; 如果在第二预定时间内,服务器端收到客户端对第二请求消息的响应消息,则该第二请求消息的目的地址所对应的IP地址有效;否则,则该第二请求消息的目的地址所对应的IP地址无效。
7.根据权利要求6所述的终端多IP地址有效性检测方法,其特征在于,所述服务器端从第一请求消息中获取组号ID和所有能够直接访问的IP地址之后,进一步包括 将组号ID和所有能够直接访问的IP地址存入IP地址列表数据库的步骤。
8.根据权利要求6所述的终端多IP地址有效性检测方法,其特征在于,所述服务器端从第一请求消息中获取组号ID和所有能够直接访问的IP地址之前,进一步包括 服务器端收到客户端发送来的第一请求消息后,向客户端返回响应消息。
9.根据权利要求6所述的终端多IP地址有效性检测方法,其特征在于,所述如果在第二预定时间内,服务器端收到客户端对第二请求消息的响应消息,则该第二请求消息的目 的地址所对应的IP地址有效;否则,则该第二请求消息的目的地址所对应的IP地址无效之前,进一步包括 客户端对收到的以能够直接访问客户端的IP地址为目的地址的第二请求消息,向服务器端返回 响应消息。
全文摘要
本发明公开了一种终端多IP地址有效性检测方法,包括步骤客户端向服务器端发送第一请求消息,将本机所有可用IP地址注册到服务器端;服务器端根据客户端发送来的第一请求消息生成第二请求消息,分别以第一请求消息中所列出的每个IP地址为目的地址,将所述第二请求消息发送给客户端,如果在第二预定时间内接收到客户端对第二请求消息的响应,则相应IP地址有效,否则,相应IP地址无效。应用本发明,实现客户端IP地址可达状态的实时检测和维护,保证了服务器端能够及时高效地获取客户端的多个有效可达IP地址,为应用程序利用多IP地址提升传输能力、稳定性和可靠性提供了切实可行的基础。
文档编号H04L29/12GK102801825SQ20121031408
公开日2012年11月28日 申请日期2012年8月29日 优先权日2012年8月29日
发明者李贺武, 吴茜, 林会杰, 张文涛 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1