CN115002077B - 一种dhcp客户端获取ip地址的方法及相关设备 - Google Patents
一种dhcp客户端获取ip地址的方法及相关设备 Download PDFInfo
- Publication number
- CN115002077B CN115002077B CN202110228288.8A CN202110228288A CN115002077B CN 115002077 B CN115002077 B CN 115002077B CN 202110228288 A CN202110228288 A CN 202110228288A CN 115002077 B CN115002077 B CN 115002077B
- Authority
- CN
- China
- Prior art keywords
- message
- dhcp server
- number information
- address
- preset time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 230000004044 response Effects 0.000 claims abstract description 171
- 238000012790 confirmation Methods 0.000 claims abstract description 94
- 230000008569 process Effects 0.000 claims abstract description 86
- 238000004590 computer program Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种DHCP客户端获取IP地址的方法及相关设备,所述方法包括:向DHCP服务端发送发现报文,所述发现报文包括发现报文编号信息;在第一预设时间周期内检测是否接收到DHCP服务端的回应报文,所述回应报文包括回应报文编号信息;若在第一预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向DHCP服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;当接收到所述DHCP服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内;若所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该回应报文;向DHCP服务端发送请求报文;接收DHCP服务端的确认报文。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种DHCP客户端获取IP地址的方法及相关设备。
背景技术
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议。指的是由服务端(server,服务器)控制一段IP地址范围,客户端(client,客户机)登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
相关技术中,如图1所示为标准的DHCP客户端从DHCP服务端获取IP地址的过程,客户端先发送一个发现报文(discover)给服务端,服务端收到后,服务端确认能分配出ip地址后回应一个回应报文(offer),客户端收到回应报文后,再发送一个请求报文,服务端收到请求报文数据后,回应一个确认报文(ack),客户端收到确认后,进行IP地址的绑定,整个获取ip地址的过程完成。在网络状态比较好的情况下,整个获取ip地址的过程在1~2秒内能完成。
然而,如图2所示,在网络状态差的情况下,当客户端发送发现报文给DHCP服务端,而DHCP服务端收不到时,DHCP客户端等不到回应报文包后超时重发,常规超时时间为4秒,再次超时后,超时时间就翻倍,若整个获取ip地址的过程中出现几次丢包,超时时间就会翻几倍,一直到最大超时时间为60秒,在这种情况下,整个获取ip地址的过程就会达到几十秒。如图2中所示,即使只出现2次丢包,获取ip地址的整个耗时就大于12秒了。因此,上述问题亟待解决。
发明内容
针对以上现有技术的不足,本发明提出一种DHCP客户端获取IP地址的方法,提高DHCP客户端获取IP地址的速度。
为了解决上述技术问题,本发明采用如下技术方案:
第一方面,本发明提供一种DHCP客户端获取IP地址的方法,包括步骤:
向DHCP服务端发送发现报文,所述发现报文包括发现报文编号信息;
在第一预设时间周期内检测是否接收到所述DHCP服务端的回应报文,所述回应报文包括回应报文编号信息;
若在所述第一预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;
当接收到所述DHCP服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
若所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该回应报文;
向DHCP服务端发送请求报文;
接收DHCP服务端的确认报文。
优选的,向所述DHCP服务端发送发现报文的步骤包括:
在第二预设时间周期内检测是否接收到所述DHCP服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
若在一个所述第二预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
优选的,所述第一预设时间周期小于4秒,一个所述第一预设时间周期内至少包括两个第二预设时间周期。
优选的,所述第一预设时间周期为1秒,所述第二预设时间周期为200毫秒。
优选的,判断所述回应报文编号信息是否为本次获取IP地址过程中的编号信息的步骤包括:
基于所述发现报文编号信息的初始值判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内,
若所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内,则确认所述回应报文为本次获取IP地址过程中的回应报文。
优选的,所述请求报文包括请求报文编号信息,接收所述DHCP服务端的确认报文的过程包括:
在第三预设时间周期内检测是否接收到所述DHCP服务端的确认报文,所述确认报文包括确认报文编号信息;
若在所述第三预设时间周期内未接收到所述DHCP服务端的所述确认报文,则向所述DHCP服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;
当接收到所述DHCP服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
若所述确认报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该确认报文。
优选的,向所述DHCP服务端发送请求报文的步骤包括:
在第四预设时间周期内检测是否接收到所述DHCP服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
若在一个所述第四预设时间周期内未接收到所述DHCP服务端的所述确认报文,则向所述DHCP服务端再次发送所述确认报文,保持所述确认报文的所述确认报文编号信息不变。
第二方面,本发明提供一种DHCP客户端获取IP地址的装置,包括:
第一发送模块,用于向DHCP服务端发送发现报文,所述发现报文包括发现报文编号信息;
第一接收模块,用于在第一预设时间周期内检测是否接收到所述DHCP服务端的回应报文,所述回应报文包括回应报文编号信息;
若所述第一接收模块在所述第一预设时间周期内未接收到所述DHCP服务端的所述回应报文,则所述第一发送模块向所述DHCP服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;还包括:
第一编号信息判断模块,用于当所述第一接收模块接收到所述DHCP服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
第一处理单元,用于当所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内时,则处理该回应报文。
优选的,所述第一接收单元还用于在第二预设时间周期内检测是否接收到所述DHCP服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
若在一个所述第二预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
优选的,所述装置还包括:
第二发送模块,用于向DHCP服务端发送请求报文,所述请求报文包括请求报文编号信息;
第二接收模块,用于在第三预设时间周期内检测是否接收到所述DHCP服务端的确认报文,所述确认报文包括确认报文编号信息;
若所述第二接收模块在所述第三预设时间周期内未接收到所述DHCP服务端的所述确认报文,则所述第二发送模块向所述DHCP服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;还包括:
第二编号信息判断模块,用于当接收到所述DHCP服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
第二处理单元,用于当所述确认报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该确认报文。
优选的,所述第二接收单元还用于在第四预设时间周期内检测是否接收到所述DHCP服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
若在一个所述第四预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
第三方面,本发明提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一所述的DHCP客户端获取IP地址的方法中的步骤。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的DHCP客户端获取IP地址的方法中的步骤。
与相关技术相比,本发明的一种实施例中,接收到所述DHCP服务端的回应报文时,基于发现报文编号信息判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内,如果是则继续处理该回应报文;这样可以避免一次有效的交互被浪费掉,无需再进行一次发送发现报文到接收对应编号回应报文的交互过程,提高了获取IP地址的速度。在本发明的另一种实施例中,在第一预设时间周期内的多个第二预设时间周期中,没有收到回应报文的情况下,通过再次发送具有相同发现报文编号信息的发现报文,使得在一个第一预设时间周期内DHCP服务端接收到该发现报文的几率增加,无需等一个第一预设时间周期走完才重发,再提高回应几率的情况下,回应的速度也会得到相应的提高。
附图说明
下面结合附图详细说明本发明。通过结合以下附图所作的详细描述,本发明的上述或其他方面的内容将变得更清楚和更容易理解。附图中:
图1为相关技术的DHCP客户端从DHCP服务端获取IP地址的过程示意图;
图2为网络状态不好情况下相关技术的DHCP客户端从DHCP服务端获取IP地址的过程示意图;
图3为本发明实施例一的DHCP客户端从DHCP服务端获取IP地址的流程图;
图4为本发明实施例一中步骤101的一种实现方法流程图;
图5为本发明实施例一中步骤104的一种实现方法流程图;
图6为本发明实施例一种一个具体应用例的交互示意图;
图7为本发明实施例二的DHCP客户端从DHCP服务端获取IP地址的流程图;
图8为本发明实施例二中步骤203的一种实现方法流程图;
图9为本发明实施例二中步骤206的一种实现方法流程图;
图10为本发明实施例三的装置结构示意图;
图11为本发明实施例四的装置结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参图3所示,本发明提供了一种DHCP客户端获取IP地址的方法,包括步骤:
101、向DHCP服务端发送发现报文,所述发现报文包括发现报文编号信息。
在本发明实施例中,DHCP客户端发送发现报文可以以广播方式发送,即向地址255.255.255.0发送所述的发现报文,在网络中可能具有一个或多个DHCP服务端,网络中每个安装了TCP/IP协议的主机都会接收到该发现报文,但只有网络中的DHCP服务端在接收到上述的发现报文后会做出回应。DHCP客户端只会接受第一个收到的DHCP服务端所提供的回应信息并做出下一步动作,如向DHCP服务端发送请求信息。发现报文为一种广播信息,在每一次发现报文发出时,都带有记录该次发现报文所对应的发现报文编号信息。
102、在第一预设时间周期内检测是否接收到所述DHCP服务端的回应报文,所述回应报文包括回应报文编号信息。
在本发明实施例中,在第一预设时间周期内检测是否接收到DHCP服务端的回应报文,例如,第一预设时间周期为1秒。若网络良好的情况下,DHCP服务端在接收到上述发现报文后,根据IP地址分配的规则选出一个IP地址,通过回应报文的形式发送给DHCP客户端,其中,回应报文除了包含IP地址信息外,还包括对本次回应报文进行记录的回应报文编号信息。
103、若在所述第一预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息。
在本发明实施例中,因网络环境的问题,DHCP服务端可能无法接收到DHCP客户端所发送的发现报文,此时,DHCP客户端在第一预设时间周期内未接收到任何一个DHCP服务端的回应报文时,会再次向DHCP服务端发送发现报文,同时,更新发现报文对应的发现报文编号信息,发现报文编号信息记录了发现报文的发送轮次。
104、当接收到所述DHCP服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是在为本次获取IP地址过程中预设的编号范围内。
在本发明实施例中,接收到DHCP服务端的回应报文时,可能是在多个第一预设时间周期后才接收到的回应报文,也可能是上一次获取IP地址过程中的回应报文。因此,在一次IP地址获取过程中,对发送报文的次数进行了预设,当超出预设次数时,则结束本次IP地址获取过程,进行下一次IP地址获取过程。发现报文的编号信息是基于发现报文的首次发送进行的编号,对应的,回应报文的编号信息也是基于首次接收到发现报文后回应时进行的编号,因此,发现报文的发现报文编号信息和回应报文编号信息是对应的,为了避免一次有效的交互被浪费,当判断该回应报文的回应报文编号信息是本次获取IP地址过程预设的编号范围内中的某个编号信息时,则可以判断所接收到的回应报文是本次获取IP地址的回应报文,则对该回应报文进行处理,作出响应,向作出该回应报文的DHCP服务端发送请求报文,该请求报文包含DHCP客户端所选定的DHCP服务端请求IP地址的内容。
105、若所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该回应报文。
在本发明实施例中,DHCP客户端只对接收到的属于本次IP地址获取过程的第一次回应报文进行处理,若在接收到第一次回应报文后因网络延迟问题还收到后续的回应报文,则不进行处理。处理该回应报文后进入下一步动作。
106、向DHCP服务端发送请求报文。
在本发明实施例中,对回应报文进行处理后生成请求报文,DHCP客户端向DHCP服务端发送请求报文,发送请求报文的方式也是以广播形式发送。
107、接收DHCP服务端的确认报文。
在本发明实施例中,当DHCP服务端接收到DHCP客户端发送的请求报文后,向DHCP客户端发送确认报文,确认报文包括有IP地址信息和一些具体的设置信息,以告知DHCP客户端可以使用DHCP服务端提供的IP地址。DHCP客户端接收到确认报文后,进行相关的设置和绑定操作。若网络上具有多台DHCP客户端,则其它DHCP客户端在接收到DHCP服务端发送的请求报文后会收回所提供的IP地址。
作为本实施例的进一步改进,如图4所示,步骤101中,向所述DHCP服务端发送发现报文的步骤包括:
1011、在第二预设时间周期内检测是否接收到所述DHCP服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期。
1012、若在一个所述第二预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
具体的,在一个第一预设时间周期内,相当于发送了多个具有相同发现报文编号信息的发现报文,这样提高了DHCP服务端接收到发现报文的几率。
进一步的,所述第一预设时间周期小于4秒,一个所述第一预设时间周期内至少包括两个第二预设时间周期。
进一步的,所述第一预设时间周期为1秒,所述第二预设时间周期为200毫秒。
相对于传统的将一个第一预设时间周期为4秒时间,本发明实施例将第一预设时间周期缩短,例如缩短至1秒时间,并具有5个第二预设时间周期(每个第二预设时间周期为200毫秒),在该5个第二预设时间周期内向DHCP服务端不间断的发送发现报文直至接收到回应报文或5个第二预设时间周期全部走完。这样,提高了DHCP服务端接收到发现报文的几率,进而提高了DHCP服务端作出回应并接收到回应报文的几率。在一个较短的第一预设时间周期内可以很快实现一次交互过程,提高了该次交互的速率。
进一步的,在本发明实施例中,如图5所示,步骤104中,判断所述回应报文编号信息是否为本次获取IP地址过程中的编号信息的步骤包括:
1041、基于所述发现报文编号信息的初始值判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内,
1042、若所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内,则确认所述回应报文为本次获取IP地址过程中的回应报文。
如图6所示,为本实施例提供的一个获取IP地址过程的具体应用例,该过程加入了因网络环境干扰而导致超时的因素,其中,将第一预设时间周期为1秒,第二预设时间周期为200毫秒。获取IP地址的过程如下:
S1、以A时间点代表第一个第一预设时间周期的起始点,也是第一个第二预设时间周期的起始点,在该起始时间点,DHCP客户端向DHCP服务端发送一个发现报文,该发现报文的发现报文编号信息为xid=1。
S2、在一个200毫秒周期内,未接收到DHCP服务端发送的回应报文(因网络环境差造成丢包问题),因此,在下一个200毫秒周期开始时,即B时间点开始,向DHCP服务端再次发送一个发现报文,保持该发现报文的发现报文编号信息不变,即xid=1。
S3、在第三个200毫秒周期时,在C时间点起始,DHCP客户端向DHCP服务端发送了一个发现报文,保持该发现报文的发现报文编号信息不变,即xid=1,在该200毫秒周期内,在F时间点,DHCP服务端回应了一个回应报文,该回应报文的回应报文编号信息为xid=1,但是因网络环境问题,DHCP客户端未收到该回应报文。
S4、在第四个200毫秒周期,在D时间点起始,DHCP客户端向DHCP服务端发送了一个发现报文,保持该发现报文的发现报文编号信息不变,即xid=1,在该200毫秒周期内,在G时间点,DHCP服务端回应了一个回应报文,该回应报文的回应报文编号信息为xid=1,DHCP客户端在I时间点接收到该回应报文。此时,DHCP客户端已经在E时间点完成了第5个第二预设时间周期,并发送了一次发现报文,DHCP服务端未接收到。
S5、在接收到回应报文前,DHCP客户端进入了下一个第一预设时间周期,在H时间点,DHCP客户端向DHCP服务端发送了一个发现报文,该发现报文的发现报文编号信息已更新,即xid=2。
S6、在时间点I,DHCP客户端接收到回应报文后,虽然与发出的发现报文的发现报文编号信息无法直接对应,但是,由于仍然在预设的编号范围内(即xid=1~xid=2),因此,继续处理该回应报文,完成一次发现-回应(discover-offer)的交互。
S7、在处理好回应报文后,向DHCP服务端发送请求报文,请求报文也携带有对应的请求报文编号信息,即xid=3。在J时间点,还收到了DHCP服务端回应H时间点发出的发现报文的回应报文,此时,DHCP客户端不再处理该回应报文。
S8,在K时间点,DHCP服务端收到请求报文后,向DHCP客户端发送确认报文,DHCP客户端在L时间点收到确认报文。DHCP客户端与DHCP服务端之间至此完成一次获取IP地址的交互过程。
在本实施例中,报文的编号信息是可以一个随机值开始,本实施例中如xid=1为开始是便于对本发明的技术方案进行说明,并不限于该数值。
与相关技术相比,本发明的实施例中,接收到所述DHCP服务端的回应报文时,基于发现报文编号信息判断所述回应报文编号信息是否为本次获取IP地址过程中的编号信息,如果是则继续处理该回应报文;这样可以避免一次有效的交互被浪费掉,无需再进行一次发送发现报文到接收对应编号回应报文的交互过程,提高了获取IP地址的速度。在本发明的实施例中,在第一预设时间周期内的多个第二预设时间周期中,没有收到回应报文的情况下,通过再次发送具有相同发现报文编号信息的发现报文,使得在一个第一预设时间周期内DHCP服务端接收到该发现报文的几率增加,无需等一个第一预设时间周期走完才重发,在提高回应几率的情况下,回应的速度也会得到相应的提高。
实施例二
如图7所示,本发明提供另一种DHCP客户端获取IP地址的方法,包括步骤:
201、向DHCP服务端发送发现报文。
在本发明实施例中,DHCP客户端发送发现报文是以广播方式发送,即向地址255.255.255.0发送所述的发现报文,在网络中可能具有一个或多个DHCP服务端,网络中每个安装了TCP/IP协议的主机都会接收到该发现报文,但只有网络中的DHCP服务端在接收到上述的发现报文后会做出回应。DHCP客户端只会接受第一个收到的DHCP服务端所提供的回应信息并做出下一步动作,如向DHCP服务端发送请求信息。发现报文为一种广播信息,在每一次发现报文发出时,都带有记录该次发现报文所对应的发现报文编号信息。
202、接收所述DHCP服务端的回应报文。
在本发明实施例中,在第一预设时间周期内检测是否接收到DHCP服务端的回应报文,例如,第一预设时间周期为1秒。若网络良好的情况下,DHCP服务端在接收到上述发现报文后,根据IP地址分配的规则选出一个IP地址,通过回应报文的形式发送给DHCP客户端,其中,回应报文除了包含IP地址信息外,还包括对本次回应报文进行记录的回应报文编号信息。
在本发明实施例中,因网络环境的问题,DHCP服务端可能无法接收到DHCP客户端所发送的发现报文,此时,DHCP客户端在第一预设时间周期内未接收到任何一个DHCP服务端的回应报文时,会再次向DHCP服务端发送发现报文,同时,更新发现报文对应的发现报文编号信息,发现报文编号信息记录了发现报文的发送轮次。
作为一种可实施方式,接收到DHCP服务端的回应报文时,可能是在多个第一预设时间周期后才接收到的回应报文,也可能是上一次获取IP地址过程中的回应报文。因此,在一次IP地址获取过程中,对发送报文的次数进行了预设,当超出预设次数时,则结束本次IP地址获取过程,进行下一次IP地址获取过程。发现报文的编号信息是基于发现报文的首次发送进行的编号,对应的,回应报文的编号信息也是基于首次接收到发现报文后回应时进行的编号,因此,发现报文的发现报文编号信息和回应报文编号信息是对应的,为了避免一次有效的交互被浪费,当判断该回应报文的回应报文编号信息是本次获取IP地址过程中的编号信息,则可以判断所接收到的回应报文是本次获取IP地址的回应报文,则对该回应报文继续处理,作出响应,向作出该回应报文的DHCP服务端发送请求报文,该请求报文包含DHCP客户端所选定的DHCP服务端请求IP地址的内容。
在本发明实施例中,DHCP客户端只对接收到的属于本次IP地址获取过程的第一次回应报文进行处理,若在接收到第一次回应报文后因网络延迟问题还收到后续的回应报文,则不进行处理。处理该回应报文后进入下一步动作。
203、向DHCP服务端发送请求报文,所述请求报文包括请求报文编号信息。
在本发明实施例中,对回应报文进行处理后生成请求报文,DHCP客户端向DHCP服务端发送请求报文,发送请求报文的方式也是以广播形式发送。请求报文的编号信息根据发现报文的编号信息进行连续性的编号,以便于确认一次获取IP地址的过程。
204、在第三预设时间周期内检测是否接收到所述DHCP服务端的确认报文,所述确认报文包括确认报文编号信息。
在本发明实施例中,因网络环境的问题,DHCP服务端可能无法接收到DHCP客户端所发送的请求报文,此时,DHCP客户端在第三预设时间周期内未接收到任何一个DHCP服务端的确认报文时,会再次向DHCP服务端发送请求报文,同时,更新请求报文对应的请求报文编号信息,请求报文编号信息记录了请求报文的发送轮次。
205、若在所述第三预设时间周期内未接收到所述DHCP服务端的所述确认报文,则向所述DHCP服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息。
206、当接收到所述DHCP服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取IP地址过程中预设的编号范围内。
在本发明实施例中,接收到DHCP服务端的确认报文时,可能是在多个第三预设时间周期后才接收到的确认报文,也可能是上一次获取IP地址过程中的确认报文。因此,在一次IP地址获取过程中,对请求报文的次数进行了预设,当超出预设次数时,则结束本次IP地址获取过程,进行下一次IP地址获取过程。请求报文的编号信息是基于发现报文的首次发送进行的编号,对应的,确认报文的编号信息也是基于首次接收到请求报文后回应时进行的编号,因此,请求报文的请求报文编号信息和确认报文编号信息是对应的,为了避免一次有效的交互被浪费,当判断该确认报文的确认报文编号信息是本次获取IP地址过程中预设的编号范围内的某个编号信息时,则可以判断所接收到的确认报文是本次获取IP地址的确认报文,则对该确认报文进行处理。
207、若所述确认报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该确认报文。
在本发明实施例中,当DHCP服务端接收到DHCP客户端发送的请求报文后,向DHCP客户端发送确认报文,确认报文包括有IP地址信息和一些具体的设置信息,以告知DHCP客户端可以使用DHCP服务端提供的IP地址。DHCP客户端接收到确认报文后,进行相关的设置和绑定操作。若网络上具有多台DHCP客户端,则其它DHCP客户端在接收到DHCP服务端发送的请求报文后会收回所提供的IP地址。
作为本实施例进一步的改进,如图8所示,步骤203中,向所述DHCP服务端发送请求报文的步骤包括:
2031、在第四预设时间周期内检测是否接收到所述DHCP服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期。
2032、若在一个所述第四预设时间周期内未接收到所述DHCP服务端的所述确认报文,则向所述DHCP服务端再次发送所述确认报文,保持所述确认报文的所述确认报文编号信息不变。
具体的,在一个第三预设时间周期内,相当于发送了多个具有相同请求报文编号信息的请求报文,这样提高了DHCP服务端接收到请求报文的几率。
进一步的,所述第一预设时间周期小于4秒,一个所述第一预设时间周期内至少包括两个第二预设时间周期。
进一步的,所述第一预设时间周期为1秒,所述第二预设时间周期为200毫秒。
相对于传统的将一个第三预设时间周期为4秒时间,本发明实施例将第三预设时间周期缩短,例如缩短至1秒时间,并具有5个第四预设时间周期(每个第四预设时间周期为200毫秒),在该5个第四预设时间周期内向DHCP服务端不间断的发送请求报文直至接收到确认报文或5个第四预设时间周期全部走完。这样,提高了DHCP服务端接收到请求报文的几率,进而提高了DHCP服务端作出回应并接收到确认报文的几率。在一个较短的第三预设时间周期内可以很快实现一次交互过程,提高了该次交互的速率。本实施例中,第三预设时间周期与第一预设时间周期的时长可以是相同的,也可以是不同的,第二预设时间周期和第四预设时间周期的时长可以是相同的,也可以是不同的。
进一步的,在本发明实施例中,如图9所示,步骤206中,判断所述确认报文编号信息是否为本次获取IP地址过程中的编号信息的步骤包括:
2061、基于所述发现报文编号信息的初始值或请求报文编号信息的初始值判断所述确认报文编号信息是否在本次获取IP地址过程中预设的编号范围内,
2062、若所述确认报文编号信息在本次获取IP地址过程中预设的编号范围内,则确认所述确认报文为本次获取IP地址过程中的确认报文。
实施例三
如图10所示,本发明提供一种DHCP客户端获取IP地址的装置10,包括:
第一发送模块11,用于向DHCP服务端发送发现报文,所述发现报文包括发现报文编号信息;
第一接收模块12,用于在第一预设时间周期内检测是否接收到所述DHCP服务端的回应报文,所述回应报文包括回应报文编号信息;
若所述第一接收模块在所述第一预设时间周期内未接收到所述DHCP服务端的所述回应报文,则所述第一发送模块向所述DHCP服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;还包括:
第一编号信息判断模块13,用于当所述第一接收模块接收到所述DHCP服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
第一处理单元14,用于当所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该回应报文。
进一步的,所述第一接收单元还用于在第二预设时间周期内检测是否接收到所述DHCP服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
若在一个所述第二预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
实施例四
本发明提供另一种DHCP客户端获取IP地址的装置20,包括:
第一发送模块21,用于向DHCP服务端发送发现报文;
第一接收模块22,用于接收所述DHCP服务端的回应报文;
第二发送模块23,用于向DHCP服务端发送请求报文,所述请求报文包括请求报文编号信息;
第二接收模块24,用于在第三预设时间周期内检测是否接收到所述DHCP服务端的确认报文,所述确认报文包括确认报文编号信息;
若所述第二接收模块在所述第三预设时间周期内未接收到所述DHCP服务端的所述确认报文,则所述第二发送模块向所述DHCP服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;还包括:
第二编号信息判断模块25,用于当接收到所述DHCP服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
第二处理单元26,用于当所述确认报文编号信息在本次获取IP地址过程中预设的编号范围内时,则处理该确认报文。
进一步的,所述第二接收单元还用于在第四预设时间周期内检测是否接收到所述DHCP服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
若在一个所述第四预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
实施例五
本发明还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一或实施例二所述的DHCP客户端获取IP地址的方法中的步骤。
实施例六
本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一或实施例二所述的DHCP客户端获取IP地址的方法中的步骤。
需要说明的是,以上参照附图所描述的各个实施例仅用以说明本发明而非限制本发明的范围,本领域的普通技术人员应当理解,在不脱离本发明的精神和范围的前提下对本发明进行的修改或者等同替换,均应涵盖在本发明的范围之内。此外,除上下文另有所指外,以单数形式出现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施例的全部或一部分可结合任何其它实施例的全部或一部分来使用。
Claims (11)
1.一种DHCP客户端获取IP地址的方法,其特征在于,包括步骤:
向DHCP服务端发送发现报文,所述发现报文包括发现报文编号信息;
在第一预设时间周期内检测是否接收到所述DHCP服务端的回应报文,所述回应报文包括回应报文编号信息;
若在所述第一预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,并更新所述发现报文编号信息;
当接收到所述DHCP服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
若所述回应报文编号信息在本次获取IP地址过程中的预设的编号范围内,则处理该回应报文;
向DHCP服务端发送请求报文;
接收DHCP服务端的确认报文;
其中,向所述DHCP服务端发送发现报文的步骤包括:
在第二预设时间周期内检测是否接收到所述DHCP服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
若在一个所述第二预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
2.根据权利要求1所述的DHCP客户端获取IP地址的方法,其特征在于,所述第一预设时间周期小于4秒,一个所述第一预设时间周期内至少包括两个第二预设时间周期。
3.根据权利要求2所述的DHCP客户端获取IP地址的方法,其特征在于,所述第一预设时间周期为1秒,所述第二预设时间周期为200毫秒。
4.根据权利要求1所述的DHCP客户端获取IP地址的方法,其特征在于,判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内的步骤包括:
基于所述发现报文编号信息的初始值判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内,
若所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内,则确认所述回应报文为本次获取IP地址过程中的回应报文。
5.如权利要求1所述的DHCP客户端获取IP地址的方法,其特征在于,所述请求报文包括请求报文编号信息,所述接收所述DHCP服务端的确认报文的步骤包括:
在第三预设时间周期内检测是否接收到所述DHCP服务端的确认报文,所述确认报文包括确认报文编号信息;
若在所述第三预设时间周期内未接收到所述DHCP服务端的所述确认报文,则向所述DHCP服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;
当接收到所述DHCP服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
若所述确认报文编号信息在本次获取IP地址过程中预设的编号范围内,则处理该确认报文。
6.根据权利要求5所述的DHCP客户端获取IP地址的方法,其特征在于,向所述DHCP服务端发送请求报文的步骤包括:
在第四预设时间周期内检测是否接收到所述DHCP服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
若在一个所述第四预设时间周期内未接收到所述DHCP服务端的所述确认报文,则向所述DHCP服务端再次发送所述确认报文,保持所述确认报文的所述确认报文编号信息不变。
7.一种DHCP客户端获取IP地址的装置,其特征在于,包括:
第一发送模块,用于向DHCP服务端发送发现报文,所述发现报文包括发现报文编号信息;
第一接收模块,用于在第一预设时间周期内检测是否接收到所述DHCP服务端的回应报文,所述回应报文包括回应报文编号信息;
若所述第一接收模块在所述第一预设时间周期内未接收到所述DHCP服务端的所述回应报文,则所述第一发送模块向所述DHCP服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;还包括:
第一编号信息判断模块,用于当所述第一接收模块接收到所述DHCP服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
第一处理模块,用于当所述回应报文编号信息在本次获取IP地址过程中预设的编号范围内时,则处理该回应报文;
所述第一接收模块还用于在第二预设时间周期内检测是否接收到所述DHCP服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
若在一个所述第二预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
8.如权利要求7所述的DHCP客户端获取IP地址的装置,其特征在于,所述装置还包括:
第二发送模块,用于在接收到所述回应报文后,向DHCP服务端发送请求报文,所述请求报文包括请求报文编号信息;
第二接收模块,用于在第三预设时间周期内检测是否接收到所述DHCP服务端的确认报文,所述确认报文包括确认报文编号信息,若所述第二接收模块在所述第三预设时间周期内未接收到所述DHCP服务端的所述确认报文,则所述第二发送模块向所述DHCP服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;
第二编号信息判断模块,用于当接收到所述DHCP服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取IP地址过程中预设的编号范围内;
第二处理模块,用于当所述确认报文编号信息在本次获取IP地址过程中预设的编号范围内时,则处理该确认报文。
9.如权利要求8所述的DHCP客户端获取IP地址的装置,所述第二接收模块还用于在第四预设时间周期内检测是否接收到所述DHCP服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
若在一个所述第四预设时间周期内未接收到所述DHCP服务端的所述回应报文,则向所述DHCP服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
10.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的DHCP客户端获取IP地址的方法中的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的DHCP客户端获取IP地址的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110228288.8A CN115002077B (zh) | 2021-03-01 | 2021-03-01 | 一种dhcp客户端获取ip地址的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110228288.8A CN115002077B (zh) | 2021-03-01 | 2021-03-01 | 一种dhcp客户端获取ip地址的方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115002077A CN115002077A (zh) | 2022-09-02 |
CN115002077B true CN115002077B (zh) | 2024-03-22 |
Family
ID=83018069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110228288.8A Active CN115002077B (zh) | 2021-03-01 | 2021-03-01 | 一种dhcp客户端获取ip地址的方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002077B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334510A (zh) * | 2001-09-07 | 2002-02-06 | 清华大学 | 一种网络环境下的计算机远程启动方法 |
KR20050070660A (ko) * | 2003-12-30 | 2005-07-07 | 엘지전자 주식회사 | 아이엠티-2000 시스템의 트랜잭션 아이디를 이용한데이터베이스 검색 장치 및 그 방법 |
US7200678B1 (en) * | 2002-09-04 | 2007-04-03 | Cisco Technology, Inc. | Selecting network address offered by a plurality of servers based on server identification information |
CN101227356A (zh) * | 2007-12-12 | 2008-07-23 | 深圳市同洲电子股份有限公司 | 基于动态主机配置协议的网络接入方法、系统和设备 |
CN101997920A (zh) * | 2010-11-18 | 2011-03-30 | 中兴通讯股份有限公司 | Dhcp租约处理方法及装置 |
CN104618156A (zh) * | 2015-01-26 | 2015-05-13 | 杭州华三通信技术有限公司 | 网络配置的方法及装置 |
JP2015201807A (ja) * | 2014-04-10 | 2015-11-12 | 日本電信電話株式会社 | アドレス払出方法、アドレス払出システム、アドレス払出サーバ装置およびアドレス払出プログラム |
WO2016062268A1 (zh) * | 2014-10-23 | 2016-04-28 | 中兴通讯股份有限公司 | 动态主机配置协议重连方法、dhcp服务器及系统 |
CN105763667A (zh) * | 2016-01-13 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种实现Hadoop主机自动发现的方法及装置 |
WO2017092519A1 (zh) * | 2015-12-04 | 2017-06-08 | 中兴通讯股份有限公司 | 一种获取家庭基站的ip地址的装置及方法 |
CN112073558A (zh) * | 2020-11-11 | 2020-12-11 | 南京乐韵瑞信息技术有限公司 | 接入物联网的方法、装置、物联网设备、及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2417392B (en) * | 2004-08-18 | 2007-05-09 | Wecomm Ltd | Transmitting packets of data |
EP2132904B1 (en) * | 2007-04-06 | 2015-06-03 | Thomson Licensing | Method for reducing congestion in DHCP network system |
-
2021
- 2021-03-01 CN CN202110228288.8A patent/CN115002077B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334510A (zh) * | 2001-09-07 | 2002-02-06 | 清华大学 | 一种网络环境下的计算机远程启动方法 |
US7200678B1 (en) * | 2002-09-04 | 2007-04-03 | Cisco Technology, Inc. | Selecting network address offered by a plurality of servers based on server identification information |
KR20050070660A (ko) * | 2003-12-30 | 2005-07-07 | 엘지전자 주식회사 | 아이엠티-2000 시스템의 트랜잭션 아이디를 이용한데이터베이스 검색 장치 및 그 방법 |
CN101227356A (zh) * | 2007-12-12 | 2008-07-23 | 深圳市同洲电子股份有限公司 | 基于动态主机配置协议的网络接入方法、系统和设备 |
CN101997920A (zh) * | 2010-11-18 | 2011-03-30 | 中兴通讯股份有限公司 | Dhcp租约处理方法及装置 |
JP2015201807A (ja) * | 2014-04-10 | 2015-11-12 | 日本電信電話株式会社 | アドレス払出方法、アドレス払出システム、アドレス払出サーバ装置およびアドレス払出プログラム |
WO2016062268A1 (zh) * | 2014-10-23 | 2016-04-28 | 中兴通讯股份有限公司 | 动态主机配置协议重连方法、dhcp服务器及系统 |
CN104618156A (zh) * | 2015-01-26 | 2015-05-13 | 杭州华三通信技术有限公司 | 网络配置的方法及装置 |
WO2017092519A1 (zh) * | 2015-12-04 | 2017-06-08 | 中兴通讯股份有限公司 | 一种获取家庭基站的ip地址的装置及方法 |
CN105763667A (zh) * | 2016-01-13 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种实现Hadoop主机自动发现的方法及装置 |
CN112073558A (zh) * | 2020-11-11 | 2020-12-11 | 南京乐韵瑞信息技术有限公司 | 接入物联网的方法、装置、物联网设备、及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115002077A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9800457B2 (en) | Network management | |
EP3013020A1 (en) | Method, device and system for transmitting packet in multicast domain name system | |
US20210119965A1 (en) | Address Management Method and Apparatus | |
CN109495599B (zh) | 数据传输方法和系统、电子装置及计算机可读存储介质 | |
CN106961426B (zh) | 智能设备的通讯方法及装置 | |
JP2008512889A (ja) | ピアツーピア監視システムにおけるサーバの存在のピンギング | |
US20070239860A1 (en) | Information processing device, network connection method, and program recording medium | |
CN100471148C (zh) | 用于建立网络的装置和方法 | |
EP3809222A1 (en) | Vehicle remote diagnosis method and device | |
CN107615723B (zh) | 一种互联网协议地址分配方法和中继设备 | |
US9319438B2 (en) | Communication terminal that performs network packet communication using sip servers, control method for the communication terminal, and storage medium | |
CN111431964B (zh) | 一种消息同步处理方法、装置及存储介质 | |
CN113905050A (zh) | 一种互联网访问信息的探测方法、装置和系统 | |
CN106878481B (zh) | 一种网络互连协议ip地址获取方法、装置和系统 | |
CN115002077B (zh) | 一种dhcp客户端获取ip地址的方法及相关设备 | |
CN112272244B (zh) | 一种路由器WAN端IPv6上网模式配置方法及装置 | |
CN113132477A (zh) | 一种浏览器终端与设备的实时传输交互方法及系统 | |
CN111225080B (zh) | 一种网关下挂设备信息的获取方法 | |
CN109951832B (zh) | 用于在蓝牙Mesh网络中进行启动配置的方法 | |
CN106454439A (zh) | 广告资源的传输方法及系统 | |
CN108259636B (zh) | 一种报文处理方法及装置 | |
CN115460160A (zh) | 基于Full-Mesh组网的网络通信方法、系统、存储介质及交换机 | |
CN115134279A (zh) | 终端的测试方法、设备及计算机可读存储装置 | |
CN107070757B (zh) | 建立网络连接的方法及装置 | |
CN111464654A (zh) | 数据传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |