防止客户端频繁发起ip地址分配请求的方法、装置和系统的制作方法
【专利摘要】本申请提供了一种防止客户端频繁发起IP地址分配请求的方法、客户端、服务器和系统。所述方法包括:客户端生成IP地址分配请求的最大重传时间的参考值;客户端向服务器发送IP地址分配请求,所述请求中承载有所述最大重传时间的参考值;服务器基于所述最大重传时间的参考值确定最大重传时间的实际值并将承载有所述最大重传时间的实际值的消息发送到客户端;客户端根据所述最大重传时间的实际值确定向服务器再次发起IP地址分配请求的时间。根据本申请的防止客户端频繁发起IP地址分配请求的方法,有效阻止了客户端频繁发起IP地址分配请求的次数,缓解了网络压力。
【专利说明】防止客户端频繁发起IP地址分配请求的方法、装置和系统
【技术领域】
[0001]本申请涉及数据通信领域,更具体地,涉及防止客户端频繁发起IP地址分配请求的方法、客户端、服务器和系统。
【背景技术】
[0002]IPv4协议(Internet Protocol version 4,互联网协议版本4)是目前全球因特网所采用的协议族TCP/IP协议族中的核心协议。IPv4协议采用32位的静态IP地址,即最多有232个客户端可以联到互联网上。近十年来由于互联网的蓬勃发展,IP位址的需求量愈来愈大,为了避免出现IP地址资源短缺和资源浪费的问题,IETF (Internet EngineeringTask Force,互联网工程任务组)制定了一种动态分配IP地址的机制,即DHCP协议。
[0003]根据IPv4下的DHCP协议(以下简称DHCP协议),当客户端首次接入网络时,它会向网络中的服务器广播DHCPDiscover消息,以请求服务器分配IP地址。网络中可能会有多个服务器收到DHCPDiscover消息,收到DHCPDiscover消息的服务器会选择一个未被使用的IP地址,连同其它TCP/IP设定,以DHCPOffer消息响应客户端。当服务器和相关通信链路处于非正常状态时,客户端就无法获得来自于服务器的DHCPOfTer消息。此时,客户端会重复广播DHCPDiscover消息,以请求服务器分配IP地址。经测试,不同的客户端在无法获取DHCPOffer消息时,重复发起DHCPDiscover组播请求的方式完全取决于客户端的实现。当无法获得DHCPOffer消息时,有的客户端会频繁地发起DHCPDiscover消息,从而给网络和服务器带来很大的压力。
[0004]IPv6 协议(Internet Protocol Version 6,互联网协议版本 6)是 IETF 设计用来替代现行的IPv4协议的下一代IP协议。IPv6协议支持两种地址分配方式:无状态地址自动配置和有状态地址自动配置,其中,无状态地址自动配置是基于IPv6下的NDP协议(Neighbor Discovery Protocol,邻居发现协议)进行的,而有状态地址自动配置方式是基于IPv6下的DHCP协议即DHCPv6进行的。
[0005]支持IPv6协议的客户端首次接入网络时,会基于NDP协议通过向服务器发送RS(Router Solicitation,路由器请求)消息,以请求服务器分配全局地址前缀。如果服务器侧的M标记(托管地址配置标记)的值被配置为0,则服务器将全局地址前缀及其它参数承载于RA (Router Advertisement,路由器公告)消息中发送给客户端。客户端从接收到的RA消息中解析出全局地址前缀,然后在后边缀上自己的接口地址,从而得到全局IP地址。如果服务器侧的M标记(托管地址配置标记)的值被配置为I,则指示客户端通过IPv6下的DHCPv6协议进行有状态地址自动配置。在这种情况下,客户端会基于DHCPv6协议向服务器广播Solicit消息,以请求服务器分配IP地址。收到Solicit消息的服务器会选择一个未被使用的IP地址,连同其它TCP/IP设定,以Advertise消息响应客户端。
[0006]目前网络、客户端等正处于向IPv6演进的时期,支持IPv6协议的设备、客户端一般也均支持IPv4协议。在服务器被配置为IPv6服务器而客户端被配置为IPV4/IPv6客户端的情况下,客户端首次接入网络时,会同时或先后向网络中的服务器广播DHCPDiscover消息和Solicit消息,以请求服务器分配IP地址。此时,由于服务器端被配置为IPv6单栈,因此服务器不会对客户端所广播的DHCPDiscover消息做出响应。这种情况下,有些客户端可能会频繁地广播DHCPDiscover消息,从而给网络和服务器带来很大的压力。或者,虽然服务器被配置为IPv4/IPv6服务器,若其中的IPv4模块关闭,则当客户端同时或先后广播DHCPDiscover消息和Solicit消息时,服务器也无法以DHCPOffer消息响应客户端。此时,有些客户端可能也会频繁地广播DHCPDiscover消息,从而给网络和服务器带来很大的压力。
【发明内容】
[0007]鉴于现有技术中存在的上述问题,根据本申请的第一方面,提供了一种防止客户端频繁发起IP地址分配请求的方法,包括:客户端生成IP地址分配请求的最大重传时间的参考值;客户端向服务器发送IP地址分配请求,所述请求中承载有所述最大重传时间的参考值;服务器基于所述最大重传时间的参考值确定最大重传时间的实际值并将承载有所述最大重传时间的实际值的消息发送到客户端;客户端根据所述最大重传时间的实际值确定向服务器再次发起IP地址分配请求的时间。
[0008]根据本申请的第一方面的一个实施方式,一种防止客户端频繁发起IP地址分配请求的方法包括:客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值;以及客户端基于所述第一通信协议,以广播消息的方式向服务器发送所述第一IP地址分配请求,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述消息中用于存放参数信息的字段中。
[0009]根据本申请的第一方面的另一个实施方式,一种防止客户端频繁发起IP地址分配请求的方法包括:客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值;客户端分别基于所述第一和第二通信协议,以广播第一消息和第二消息的方式向服务器发送所述第一和第二 IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第二消息中用于存放参数信息的字段中;服务器分别基于所述第一和第二IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值,并将所确定的最大重传时间的实际值承载于所述第二消息的响应消息中发送到客户端;以及客户端根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
[0010]根据本申请的第一方面的又一个实施方式,一种防止客户端频繁发起IP地址分配请求的方法包括:客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值;客户端分别基于所述第一通信协议和第三通信协议,以广播第一消息和第三消息的方式向服务器发送所述第一 IP地址分配请求和第三IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第三消息中用于存放参数信息的字段中;服务器分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二IP地址分配请求的最大重传时间的实际值,并将所确定的最大重传时间的实际值承载于所述第三消息的响应消息中发送到客户端;以及客户端根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
[0011]根据本申请的第二方面,提供了一种防止频繁发起IP地址分配请求的客户端,包括:生成模块,基于预定算法生成IP地址分配请求的最大重传时间的参考值;通信模块,向服务器发送承载有所述最大重传时间的参考值的IP地址分配请求,并且从服务器接收承载有最大重传时间的实际值的消息;以及设定模块,根据所述最大重传时间的实际值设定向服务器再次发送IP地址分配请求的时间。
[0012]根据本申请的第三方面,提供了一种防止客户端频繁发起IP地址分配请求的服务器,包括:接收模块,从客户端接收IP地址分配请求,所述请求中承载有该请求的最大重传时间的参考值;确定模块,解析所述请求以从中获取所述最大重传时间的参考值,并基于所述最大重传时间的参考值确定最大重传时间的实际值;以及发送模块,将承载有所述最大重传时间的实际值的消息发送到客户端。
[0013]根据本申请的第四方面,提供了一种防止客户端频繁发起IP地址分配请求的系统,包括如上所述的客户端和服务器。
[0014]根据本申请的防止客户端频繁发起IP地址分配请求的方法,有效阻止了客户端频繁发起IP地址分配请求的次数,缓解了网络压力,并且对现网设备及客户端的改造量较小,非常易于实施。
【专利附图】
【附图说明】
[0015]图1示出了根据本申请第一方面的防止客户端频繁发起IP地址分配请求的方法的流程图;
[0016]图2示出了 DHCP协议下客户端与服务器之间传输的DHCPDiscover报文的封包格式;
[0017]图3示出了 DHCPDiscover报文中新定义的option字段的具体内容;
[0018]图4示出了 NDP协议下客户端与服务器之间传输的RS报文的封包格式;
[0019]图5示出了 RS报文中新定义的option字段的具体内容;
[0020]图6示出了 NDP协议下客户端与服务器之间传输的RA报文的封包格式;
[0021]图7示出了 DHCPv6协议下客户端与服务器之间传输的Solicit报文的封包格式;
[0022]图8示出了 Solicit报文中新定义的option字段的具体内容;
[0023]图9示出了根据本申请第二方面的一个实施方式的防止频繁发起IP地址分配请求的客户端的方框图;
[0024]图10示出了根据本申请第二方面的另一个实施方式的防止频繁发起IP地址分配请求的客户端的方框图;
[0025]图11示出了根据本申请第二方面的再一个实施方式的防止频繁发起IP地址分配请求的客户端的方框图;
[0026]图12示出了根据本申请第三方面的防止客户端频繁发起IP地址分配请求的服务器的方框图。
【具体实施方式】[0027]下面将参照图1详细描述根据本申请的第一方面的防止客户端频繁发起IP地址分配请求的方法。
[0028]在步骤101中,客户端生成IP地址分配请求的最大重传时间的参考值。例如,客户端可以采用本领域技术人员公知的随机算法、回退算法等生成最大重传时间的参考值。
[0029]接下来,在步骤102中,客户端向服务器发送IP地址分配请求,所述请求中承载有所述最大重传时间的参考值。
[0030]然后,在步骤103中,服务器基于从客户端获取的最大重传时间的参考值确定最大重传时间的实际值。例如,服务器可以解析所述IP地址分配请求以从中获取所述最大重传时间的参考值。之后,服务器可以判断所述最大重传时间的参考值是否适当,如果适当,则将所述最大重传时间的参考值确定为最大重传时间的实际值,如果不适当,例如,最大重传时间的参考值为“0001 (16进制数)”,表明客户端将于I秒钟后重新广播IP地址分配请求,而服务器认为I秒钟的时间间隔过短,则服务器可修改该最大重传时间的参考值,例如修改为“003C (16进制数)”,即希望客户端在60秒钟后重新广播IP地址分配请求。又例如,服务器可将最大重传时间的参考值修改为“ffff (16进制数)”,则表明服务器希望客户端不再广播IP地址分配请求。之后,服务器可将修改后的最大重传时间的参考值确定为最大重传时间的实际值。
[0031]然后,在步骤104中,服务器将承载有所述最大重传时间的实际值的消息发送到客户端。服务器可以将所述最大重传时间的实际值承载于任意消息中发送到客户端。
[0032]之后,在步骤105中,客户端根据接收到的最大重传时间的实际值确定向服务器再次发起IP地址分配请求的时间。
[0033]下面将参照图2-8详细描述根据本申请的第一方面的具体实施例的防止客户端频繁发起IP地址分配请求的方法。
[0034](I)第一实施例
[0035]在第一实施例中,客户端被配置为IPv4客户端,服务器被配置为IPv4服务器或IPv4、IPv6双栈服务器。
[0036]图2示出了 DHCP协议下客户端与服务器之间传输的DHCPDiscover报文的封包格式。如图2所示,DHCPDiscover报文包含用于定义DHCP消息类型的字段op(长度为I个字节,例如“I”表示消息是从客户端发往服务器的)、用于填充客户端的IP地址的字段ciaddr(长度为4个字节)、用于指明服务器的主机名的字段sname (长度为64个字节)和用于存放参数信息的option字段(长度可变)等。由于基于DHCP协议的报文中各字段的含义及功能是本领域技术人员所熟知的,因而在此省略对各字段的详细描述。
[0037]可以在客户端将要广播的DHCPDiscover消息中增加一个新定义的option字段,以承载IP地址分配请求的最大重传时间的参考值,图3示出了新定义的option字段的具体内容。如图3所示,新定义的option字段的代码(Code)例如可以为“108”,数据长度(Len)可以为4个字节,T1-T4表征最大重传时间的参考值,其单位可以设为秒。可以理解,最大重传时间的参考值必须大于O。
[0038]服务器可以从所接收的DHCPDiscover消息中解析出所述最大重传时间的参考值。之后,服务器可以判断所述最大重传时间的参考值是否适当,如果适当,则将所述最大重传时间的参考值确定为最大重传时间的实际值,如果不适当,例如,最大重传时间的参考值为“0001 (16进制数)”,表明客户端将于I秒钟后重新广播IP地址分配请求,而服务器认为I秒钟的时间间隔过短,则服务器可修改该最大重传时间的参考值,例如修改为“003C(16进制数)”,即希望客户端在60秒钟后重新广播IP地址分配请求。又例如,服务器可将最大重传时间的参考值修改为“ffff (16进制数)”,则表明服务器希望客户端不再广播DHCPDiscover消息。之后,服务器可将修改后的最大重传时间的参考值确定为最大重传时间的实际值。然后,服务器可以将所述最大重传时间的实际值承载于DHCPOffer消息中发送给客户端。
[0039]之后,客户端可以从DHCPOffer消息中解析出所述最大重传时间的实际值,并根据其确定向服务器再次发起DHCPDiscover消息的时间。
[0040](2)第二实施例
[0041]在第二实施例中,客户端被配置为IPv4/IPv6客户端,服务器被配置为IPv6服务器,或者服务器被配置为IPv4/IPv6服务器但其中的IPv4模块关闭。在这种情况下,当客户端首次接入网络时,其会基于DHCP协议,通过向服务器广播DHCPDiscover消息以请求服务器分配IP地址。同时,客户端还会基于IPv6下的NDP协议,通过向服务器广播RS消息,以请求服务器分配全局地址前缀。
[0042]对于来自客户端的DHCPDiscover消息,由于服务器被配置为IPv6服务器,或者服务器虽被配置为IPv4/IPv6服务器但其中的IPv4模块关闭,因此服务器不会以DHCPOffer消息响应客户端的DHCPDiscover消息。
[0043]对于来自客户端的RS消息,如果服务器侧的M标记(托管地址配置标记)的值被配置为1,则服务器会通过向客户端发送RA消息并将M标记的值承载于RA消息中,以指示客户端基于IPv6下的DHCPv6协议进行有状态地址自动配置。在这种情况下,客户端会基于DHCPv6协议向服务器广播Solicit消息,以请求服务器分配IP地址。在没有收到来自服务器的Advertise消息时,客户端会不断地向服务器发送Solicit消息。
[0044]为了防止客户端频繁地发起DHCPDiscover消息和Solicit消息,可以在客户端所要发送的RS消息中增加一个新定义的option字段,以承载DHCPDiscover消息和Solicit消息的最大重传时间的参考值。
[0045]图4示出了 NDP协议下客户端与服务器之间传输的RS报文的封包格式。如图4所示,基于NDP协议的RS报文包含Type (类型)字段(对于RS消息而言其值为133)、Code(代码)字段(对于RS消息而言其值为0)、Checksum (ICMP校验和)字段、Reserved (保留)字段(一般为全零)以及用于存放参数信息的option (选项)字段(长度可变)。
[0046]图5示出了根据第二实施例的新定义的option字段的具体内容。如图5所示,新定义的option字段可以包括2行,每行为4个字节。新定义的option字段包括类型(Type)字段(长度为I个字节)、数据长度(Length)字段(长度为8个字节XReserved (保留)字段(根据RFC4861,option字段的长度必须是64bit的整数倍,此字段需由客户端置0,服务器必须忽略),Sol_Max_RT字段用于承载Solicit消息的最大重传时间的参考值,而Dis_Max_RT字段用于承载DHCPDiscover消息的最大重传时间的参考值,两个最大重传时间的参考值单位可以设为秒。可以理解,两个最大重传时间的参考值必须均大于O。
[0047]服务器可以从所接收的RS消息中解析出DHCPDiscover消息和Solicit消息的最大重传时间的参考值。之后,服务器可以判断所述最大重传时间的参考值是否适当,如果适当,则将所述最大重传时间的参考值确定为最大重传时间的实际值,如果不适当,则可以对其进行修改,并将修改后的值作为DHCPDiscover消息和Solicit消息的最大重传时间的实际值。然后,服务器可以将所述最大重传时间的实际值承载于RA消息中发送给客户端。
[0048]图6不出了 NDP协议下客户端与服务器之间传输的RA报文的封包格式。如图6所示,RA报文包含Type (类型)字段、Code (代码)字段、Checksum (ICMP校验和)字段、Cur Hop Limit (主机发送包的跳数)字段、M标记字段、O标记字段、Reserved (保留)字段、Router Lifetime (路由器的存活时间)字段、用于计算邻居是否可达的时间参数的的Reachable Time字段、用于指定重新发起NS消息的时间间隔的Retrans Timer字段、以及用于存放参数信息的option (选项)字段(长度可变)。服务器可将所确定的DHCPDiscover消息和Solicit消息的最大重传时间的实际值承载于option字段中发送给客户端。
[0049]之后,客户端可以从RA消息中解析出所述最大重传时间的实际值,并根据其确定向服务器再次发起DHCPDiscover消息和Solicit消息的时间。
[0050]可以理解,如果服务器侧的M标记的值被配置为0,则服务器会将M标记的值、全局地址前缀、以及DHCPDiscover消息和Solicit消息的最大重传时间的实际值承载于RA消息中,发送给客户端,其中,全局地址前缀、以及DHCPDiscover消息和Solicit消息的最大重传时间的实际值承载于RA消息的option字段中。此时,客户端可以从RA消息中解析出所述全局地址前缀,然后在后边缀上自己的接口地址,从而得到全局IP地址。
[0051](3)第三实施例
[0052]在第三实施例中,客户端被配置为IPv4/IPv6客户端,服务器被配置为IPv6服务器,或者服务器被配置为IPv4/IPv6服务器但其中的IPv4模块关闭。
[0053]与第二实施例的不同之处在于,在第三实施例中,为了防止客户端频繁地发起DHCPDiscover消息和Solicit消息,可以在客户端所要发送的Solicit消息中增加一个新定义的option字段,以承载DHCPDiscover消息和Solicit消息的最大重传时间的参考值。
[0054]图7示出了 DHCPv6协议下客户端与服务器之间传输的Solicit报文的封包格式。如图7所示,Solicit报文包含用于定义DHCPv6消息类型的字段msg-type (长度为I个字节)、指示用于消息交换的序列号的transaction-1d (交易序列号)字段(长度为3个字节)、以及用于存放参数信息的option (选项)字段(长度可变)。
[0055]图8示出了根据第三实施例的新定义的option字段的具体内容。如图8所示,新定义的option字段可以包括3行,每行为4个字节。新定义的option字段的代码(Option-code)例如可以为“ 109”,数据长度(Option-1en)可以为8个字节,其中,Sol_Max_RT部分用于承载Solicit消息的最大重传时间的参考值,而Dis_Max_RT部分用于承载DHCPDiscover消息的最大重传时间的参考值,两个最大重传时间的参考值单位可以设为秒。可以理解,两个最大重传时间的参考值必须均大于O。
[0056]服务器可以从所接收的Solicit消息中解析出DHCPDiscover消息和Solicit消息的最大重传时间的参考值。之后,服务器可以判断所述最大重传时间的参考值是否适当,如果适当,则将所述最大重传时间的参考值确定为最大重传时间的实际值,如果不适当,则可以对其进行修改,并将修改后的值作为DHCPDiscover消息和Solicit消息的最大重传时间的实际值。然后,服务器可以将所述最大重传时间的实际值承载于Advertise消息中发送给客户端。[0057]通过利用本申请的防止客户端频繁发起IP地址分配请求的方法,客户端采用预定算法生成DHCPDiscover消息的最大重传时间的参考值和Solicit消息的最大重传时间的参考值,并将两个消息的最大重传时间的参考值随Solicit消息发送给服务器,服务器基于所接收的两个消息的最大重传时间的参考值分别确定DHCPDiscover消息和Solicit消息的最大重传时间的实际值,并且可以将承载有所述最大重传时间的实际值的Advertise消息发送到客户端。客户端在收到Advertise消息后对该消息进行解析以确定再次发起DHCPDiscover消息和Solicit消息的时间。客户端根据所述最大重传时间的实际值确定向服务器再次发起IP地址分配请求的时间。由此,DHCP/DHCPv6客户端基于DHCPv6协议与服务器进行消息交换(向服务器发送承载有最大重传时间参考值的Solicit消息,并从服务器接收承载有最大重传时间实际值的Advertise消息),确定了 DHCP协议下DHCPDiscover消息的最大重传时间和DHCPv6协议下Solicit消息的最大重传时间,控制了再次发送DHCPDiscover消息的时间。也就是说,利用DHCPv6协议下的消息交换实现了对DHCP协议下的消息交换的控制。从而,防止了客户端在无法收到来自服务器的DHCPOffer消息的情况下发送DHCPDiscover消息的次数,缓解了网络压力。
[0058]图9示出了根据本申请的第二方面的防止频繁发起IP地址分配请求的客户端的方框图。如图9所示,防止频繁发起IP地址分配请求的客户端10包括:生成模块601,基于预定算法生成IP地址分配请求的最大重传时间的参考值;通信模块602,向服务器发送承载有所述最大重传时间的参考值的IP地址分配请求,并且从服务器接收承载有最大重传时间的实际值的消息;以及设定模块603,根据所述最大重传时间的实际值设定向服务器再次发送IP地址分配请求的时间。
[0059]根据一个实施方式,生成模块601生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值;并且通信模块602基于第一通信协议,以广播消息的方式向服务器发送所述第一 IP地址分配请求,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述消息中用于存放参数信息的字段中。通信模块602可进一步被配置为解析从服务器接收的承载有所述第一 IP地址分配请求的最大重传时间的实际值的消息,以获取所述第一 IP地址分配请求的最大重传时间的实际值。可选地,客户端10还可进一步包括计时模块(未示出),其根据所述第一 IP地址分配请求的最大重传时间的实际值设定该计时模块的计时期,当到达计时期时,指示通信模块602再次向服务器发送IP地址分配请求。作为一个具体实施例,所述第一通信协议可以为DHCP协议,所述消息可以为DHCPDiscover消息,所述第一 IP地址分配请求的最大重传时间的参考值可以承载于所述DHCPDiscover消息的option字段中。
[0060]图10示出了根据本申请的第二方面的另一个实施方式的防止频繁发起IP地址分配请求的客户端的方框图。如图10所示,客户端10’包括:生成模块601’,其生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值;第一通信模块605和第二通信模块606,所述第一和第二通信模块同时或先后基于所述第一和第二通信协议,分别以广播第一消息和第二消息的方式向服务器发送所述第一和第二 IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第二消息中用于存放参数信息的字段中,并且第二通信模块从服务器接收所述第二消息的响应消息,所述响应消息中承载有所述第一和第二IP地址分配请求的最大重传时间的实际值;设定模块603’,其根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
[0061]根据一个具体实施例,第二通信模块606可进一步被配置为解析所述响应消息,以获取所述第一和第二 IP地址分配请求的最大重传时间的实际值。
[0062]可选地,客户端10’可进一步包括第一计时模块和第二计时模块(未示出)。所述第一计时模块可根据所述第一 IP地址分配请求的最大重传时间的实际值设定该第一计时模块的计时期,当到达计时期时,指示第一通信模块605再次向服务器发送IP地址分配请求。第二计时模块可根据所述第二 IP地址分配请求的最大重传时间的实际值设定该第二计时模块的计时期,当到达计时期时,指示第二通信模块606再次向服务器发送IP地址分配请求。根据一个具体实施例,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第一消息为DHCPDiscover消息,所述第二消息为Solicit消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述Solicit消息的option字段中,所述第二消息的响应消息为Advertise消息。
[0063]图11示出了根据本申请的第二方面的再一个实施方式的防止频繁发起IP地址分配请求的客户端的方框图。
[0064]如图11所示,客户端10”包括:生成模块601”、第一通信模块605、第三通信模块607和设定模块603”。
[0065]生成模块601”生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值。
[0066]第一通信模块605和第三通信模块607分别基于所述第一和第三通信协议,以广播第一消息和第三消息的方式向服务器发送所述第一和第三IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第三消息中用于存放参数信息的字段中,并且第三通信模块607从服务器接收所述第三消息的响应消息,所述响应消息中承载有所述第一和第二 IP地址分配请求的最大重传时间的实际值。
[0067]设定模块603”根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
[0068]根据一个具体实施例,第三通信模块607可进一步被配置为解析所述响应消息,以获取所述第一和第二 IP地址分配请求的最大重传时间的实际值。
[0069]可选地,客户端10”可进一步包括:第二通信模块、第一计时模块和第二计时模块(未示出)。第二通信模块基于所述第二通信协议向服务器发送所述第二 IP地址分配请求。第一计时模块根据所述第一 IP地址分配请求的最大重传时间的实际值设定该第一计时模块的计时期,当到达计时期时,指示所述第一通信模块再次向服务器发送IP地址分配请求。第二计时模块根据所述第二 IP地址分配请求的最大重传时间的实际值设定该第二计时模块的计时期,当到达计时期时,指示所述第二通信模块向服务器发送所述第二 IP地址分配请求。
[0070]根据一个具体实施例,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第三通信协议为NDP协议,所述第三消息为Router Solicitation消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述Router Solicitation消息的option字段中,所述第三消息的响应消息为Router Advertisement消息。
[0071]图12示出了根据本申请的第三方面的一个实施方式的防止客户端频繁发起IP地址分配请求的服务器的方框图。如图12所示,防止客户端频繁发起IP地址分配请求的服务器20包括:接收模块901,从客户端接收IP地址分配请求,所述请求中承载有该请求的最大重传时间的参考值;确定模块902,解析所述请求以从中获取所述最大重传时间的参考值,并基于所述最大重传时间的参考值确定最大重传时间的实际值;以及发送模块903,将承载有所述最大重传时间的实际值的消息发送到客户端。
[0072]根据一个【具体实施方式】,接收模块901从客户端接收基于第一通信协议的第一 IP地址分配请求和基于第二通信协议的第二 IP地址分配请求;确定模块902解析所述第二IP地址分配请求,以从中获取第一和第二 IP地址分配请求的最大重传时间的参考值,并分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二IP地址分配请求的最大重传时间的实际值;发送模块903将所确定的最大重传时间的实际值承载于所述第二 IP地址分配请求的响应消息中发送到客户端。所述第一通信协议例如可以为DHCP协议,所述第二通信协议例如可以为DHCPv6协议,所述响应消息例如可以为Advertise 消息。
[0073]根据另一个【具体实施方式】,接收模块901可从客户端接收基于第一通信协议的第
一IP地址分配请求和基于第三通信协议的第三IP地址分配请求;确定模块902解析所述第三IP地址分配请求,以从中获取所述第一 IP地址分配请求和基于第二通信协议的第
二IP地址分配请求的最大重传时间的参考值,并分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值;发送模块903将所确定的最大重传时间的实际值承载于所述第三IP地址分配请求的响应消息中发送到客户端。作为一个具体实施例,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第三通信协议为NDP协议,所述响应消息为RouterAdvertisement 消息。
[0074]根据一个具体实施例,确定模块902可进一步被配置为:判断所述最大重传时间的参考值是否适当,如果适当,则将所述最大重传时间的参考值确定为最大重传时间的实际值,如果不适当,则修改所述最大重传时间的参考值并将修改后的最大重传时间的参考值确定为最大重传时间的实际值。
[0075]根据本申请的第四方面,提供了一种防止客户端频繁发起IP地址分配请求的系统,其包括如上所述的客户端10、10’或10”和服务器20。
[0076]另外,需要指出的是,虽然DHCPv6协议中已经定义了参数“RT (Retransmissiontimeout,重传超时)”和“MRT (Maximum retransmission time,最大重传时间),以保障客户端重复广播Solicit消息的时间,但这两个参数仅是由客户端通过预定算法生成用来控制客户端的重传行为的参数,客户端生成这两个参数后不需要发送给服务器以请求服务器回传和更改,这一点与本发明的技术方案是截然不同的。
[0077]以上参照附图对本申请的示例性的实施方案进行了描述。本领域技术人员应该理解,上述实施方案仅仅是为了说明的目的而所举的示例,而不是用来进行限制。凡在本申请的教导和权利要求保护范围下所作的任何修改、等同替换等,均应包含在本申请要求保护的范围内。
【权利要求】
1.一种防止客户端频繁发起IP地址分配请求的方法,包括: 步骤A,客户端生成IP地址分配请求的最大重传时间的参考值; 步骤B,客户端向服务器发送IP地址分配请求,所述请求中承载有所述最大重传时间的参考值; 步骤C,服务器基于所述最大重传时间的参考值确定最大重传时间的实际值并将承载有所述最大重传时间的实际值的消息发送到客户端; 步骤D,客户端根据所述最大重传时间的实际值确定向服务器再次发起IP地址分配请求的时间。
2.如权利要求1所述的方法,其中, 所述步骤A具体包括:客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值;以及 所述步骤B具体包括:客户端基于所述第一通信协议,以广播消息的方式向服务器发送所述第一 IP地址分配请求,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述消息中用于存放参数信息的字段中。
3.如权利要求2所述的方法,其中,所述第一通信协议为DHCP协议,所述消息为DHCPDiscover消息,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述DHCPDiscover 消息的 option 字段中。
4.如权利要求1所述的方法,其中,所述步骤A具体包括:客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值;所述步骤B具体包括:客户端分别基于所述第一和第二通信协议,以广播第一消息和第二消息的方式向服务器发送所述第一和第二 IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第二消息中用于存放参数信息的字段中; 所述步骤C具体包括:服务器分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值,并将所确定的最大重传时间的实际值承载于所述第二消息的响应消息中发送到客户端;以及 所述步骤D具体包括:客户端根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
5.如权利要求4所述的方法,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第一消息为DHCPDiscover消息,所述第二消息为Solicit消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述Solicit消息的option字段中,所述第二消息的响应消息为Advertise消息。
6.如权利要求1所述的方法,其中, 所述步骤A具体包括:客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值;所述步骤B具体包括:客户端分别基于所述第一通信协议和第三通信协议,以广播第一消息和第三消息的方式向服务器发送所述第一 IP地址分配请求和第三IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第三消息中用于存放参数信息的字段中;所述步骤C具体包括:服务器分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值,并将所确定的最大重传时间的实际值承载于所述第三消息的响应消息中发送到客户端;以及 所述步骤D具体包括:客户端根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
7.如权利要求6所述的方法,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第三通信协议为NDP协议,所述第三消息为Router Solicitation消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述RouterSolicitation消息的option字段中,所述第三消息的响应消息为Router Advertisement消息。
8.如前述权利要求中任一项所述的方法,进一步包括: 服务器解析所述IP地址分配请求以从中获取所述最大重传时间的参考值,并判断所述最大重传时间的参考值是否适当,如果适当,则将所述最大重传时间的参考值确定为最大重传时间的实际值,如果不适当,则修改所述最大重传时间的参考值并将修改后的最大重传时间的参考值确定为最大重传时间的实际值。
9.一种防止客户端频繁发起IP地址分配请求的方法,包括: 客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值;以及 客户端基于所述第一通信协议,以广播消息的方式向服务器发送所述第一 IP地址分配请求,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述消息中用于存放参数信息的字段中。
10.如权利要求9所述的方法,其中,所述第一通信协议为DHCP协议,所述消息为DHCPDiscover消息,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述DHCPDiscover 消息的 option 字段中。
11.一种防止客户端频繁发起IP地址分配请求的方法,包括: 客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值; 客户端分别基于所述第一和第二通信协议,以广播第一消息和第二消息的方式向服务器发送所述第一和第二 IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第二消息中用于存放参数信息的字段中; 服务器分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值,并将所确定的最大重传时间的实际值承载于所述第二消息的响应消息中发送到客户端;以及 客户端根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
12.如权利要求11所述的方法,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第一消息为DHCPDiscover消息,所述第二消息为Solicit消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述Solicit消息的option字段中,所述第二消息的响应消息为Advertise消息。
13.一种防止客户端频繁发起IP地址分配请求的方法,包括: 客户端生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值; 客户端分别基于所述第一通信协议和第三通信协议,以广播第一消息和第三消息的方式向服务器发送所述第一 IP地址分配请求和第三IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第三消息中用于存放参数信息的字段中; 服务器分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值,并将所确定的最大重传时间的实际值承载于所述第三消息的响应消息中发送到客户端;以及 客户端根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
14.如权利要求13所述的方法,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第三通信协议为NDP协议,所述第三消息为Router Solicitation消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述RouterSolicitation消息的option字段中,所述第三消息的响应消息为Router Advertisement消息。
15.一种防止频繁发起IP地址分配请求的客户端,包括: 生成模块,基于预定算法生成IP地址分配请求的最大重传时间的参考值; 通信模块,向服务器发送承载有所述最大重传时间的参考值的IP地址分配请求,并且从服务器接收承载有最大重传时间的实际值的消息;以及 设定模块,根据所述最大重传时间的实际值设定向服务器再次发送IP地址分配请求的时间。
16.如权利要求15所述的客户端,其中, 所述生成模块进一步被配置为生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值;并且 所述通信模块进一步被配置为基于所述第一通信协议,以广播消息的方式向服务器发送所述第一 IP地址分配请求,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述消息中用于存放参数信息的字段中。
17.如权利要求16所述的客户端,其中,所述通信模块进一步被配置为解析从服务器接收的承载有所述第一 IP地址分配请求的最大重传时间的实际值的消息,以获取所述第一IP地址分配请求的最大重传时间的实际值。
18.如权利要求17所述的客户端,进一步包括: 计时模块,根据所述第一 IP地址分配请求的最大重传时间的实际值设定该计时模块的计时期,当到达计时期时,指示所述通信模块再次向服务器发送IP地址分配请求。
19.如权利要求16至18中任一项所述的客户端,其中,所述第一通信协议为DHCP协议,所述消息为DHCPDiscover消息,所述第一 IP地址分配请求的最大重传时间的参考值承载于所述DHCFOiscover消息的option字段中。
20.如权利要求15所述的客户端,其中,所述生成模块进一步被配置为生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值; 所述通信模块进一步包括第一通信模块和第二通信模块,所述第一和第二通信模块分别基于所述第一和第二通信协议,以广播第一消息和第二消息的方式向服务器发送所述第一和第二 IP地址分配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第二消息中用于存放参数信息的字段中,并且第二通信模块从服务器接收所述第二消息的响应消息,所述响应消息中承载有所述第一和第二 IP地址分配请求的最大重传时间的实际值; 所述设定模块进一步被配置为根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
21.如权利要求20所述的客户端,其中,所述第二通信模块进一步被配置为解析所述响应消息,以获取所述第一和第二 IP地址分配请求的最大重传时间的实际值。
22.如权利要求21所述的客户端,进一步包括: 第一计时模块,根据所述第一 IP地址分配请求的最大重传时间的实际值设定该第一计时模块的计时期,当到达计时期时,指示所述第一通信模块再次向服务器发送IP地址分配请求;以及 第二计时模块,根据所述第二 IP地址分配请求的最大重传时间的实际值设定该第二计时模块的计时期,当到达计时期时,指示所述第二通信模块再次向服务器发送IP地址分配请求。
23.如权利要求20至22中任一项所述的客户端,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第一消息为DHCPDiscover消息,所述第二消息为Solicit消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述Solicit消息的option字段中,所述第二消息的响应消息为Advertise消息。
24.如权利要求15所述的客户端,其中, 所述生成模块进一步被配置为生成基于第一通信协议的第一 IP地址分配请求的最大重传时间的参考值和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值; 所述通信模块进一步包括第一通信模块和第三通信模块,所述第一和第三通信模块分别基于所述第一和第三通信协议,以广播第一消息和第三消息的方式向服务器发送所述第一和第三IP地址分 配请求,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述第三消息中用于存放参数信息的字段中,并且所述第三通信模块从服务器接收所述第三消息的响应消息,所述响应消息中承载有所述第一和第二 IP地址分配请求的最大重传时间的实际值; 所述设定模块进一步被配置为根据所述第一和第二 IP地址分配请求的最大重传时间的实际值确定向服务器再次发起所述第一和第二 IP地址分配请求的时间。
25.如权利要求24所述的客户端,其中,所述第三通信模块进一步被配置为解析所述响应消息,以获取所述第一和第二 IP地址分配请求的最大重传时间的实际值。
26.如权利要求25所述的客户端,进一步包括:第二通信模块,基于所述第二通信协议向服务器发送所述第二 IP地址分配请求; 第一计时模块,根据所述第一 IP地址分配请求的最大重传时间的实际值设定该第一计时模块的计时期,当到达计时期时,指示所述第一通信模块再次向服务器发送IP地址分配请求;以及 第二计时模块,根据所述第二 IP地址分配请求的最大重传时间的实际值设定该第二计时模块的计时期,当到达计时期时,指示所述第二通信模块向服务器发送所述第二 IP地址分配请求。
27.如权利要求26所述的客户端,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第三通信协议为NDP协议,所述第三消息为Router Solicitation消息,所述第一和第二 IP地址分配请求的最大重传时间的参考值承载于所述RouterSolicitation消息的option字段中,所述第三消息的响应消息为Router Advertisement消息。
28.一种防止客户端频繁发起IP地址分配请求的服务器,包括: 接收模块,从客户端接收IP地址分配请求,所述请求中承载有该请求的最大重传时间的参考值; 确定模块,解析所述请求以从中获取所述最大重传时间的参考值,并基于所述最大重传时间的参考值确定最大重传时间的实际值;以及 发送模块,将 承载有所述最大重传时间的实际值的消息发送到客户端。
29.如权利要求28所述的服务器,其中, 所述接收模块从客户端接收基于第一通信协议的第一 IP地址分配请求和基于第二通信协议的第二 IP地址分配请求; 所述确定模块解析所述第二 IP地址分配请求,以从中获取第一和第二 IP地址分配请求的最大重传时间的参考值,并分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值; 所述发送模块将所确定的最大重传时间的实际值承载于所述第二 IP地址分配请求的响应消息中发送到客户端。
30.如权利要求28或29所述的服务器,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述响应消息为Advertise消息。
31.如权利要求28所述的服务器,其中, 所述接收模块从客户端接收基于第一通信协议的第一 IP地址分配请求和基于第三通信协议的第三IP地址分配请求; 所述确定模块解析所述第三IP地址分配请求,以从中获取所述第一 IP地址分配请求和基于第二通信协议的第二 IP地址分配请求的最大重传时间的参考值,并分别基于所述第一和第二 IP地址分配请求的最大重传时间的参考值确定所述第一和第二 IP地址分配请求的最大重传时间的实际值; 所述发送模块将所确定的最大重传时间的实际值承载于所述第三IP地址分配请求的响应消息中发送到客户端。
32.如权利要求31所述的服务器,其中,所述第一通信协议为DHCP协议,所述第二通信协议为DHCPv6协议,所述第三通信协议为NDP协议,所述响应消息为RouterAdvertisement 消息。
33.如前述权利要求中任一项所述的服务器,其中,所述确定模块进一步被配置为:判断所述最大重传时间的参考值是否适当,如果适当,则将所述最大重传时间的参考值确定为最大重传时间的实际值,如果不适当,则修改所述最大重传时间的参考值并将修改后的最大重传时间的参考值确定为最大重传时间的实际值。
34.一种防止客户端频繁发起IP地址分配请求的系统,包括如权利要求15-27中任一项所述的客户端和如权利要求28-33中任一项所述的服务器。
【文档编号】H04L29/06GK103701942SQ201210367881
【公开日】2014年4月2日 申请日期:2012年9月28日 优先权日:2012年9月28日
【发明者】杨天乐, 李连源 申请人:中国移动通信集团公司