一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种DHCP客户端获取IP地址的方法及相关设备与流程

2022-09-02 19:07:29 来源:中国专利 TAG:

一种dhcp客户端获取ip地址的方法及相关设备
技术领域
1.本发明涉及互联网技术领域,尤其涉及一种dhcp客户端获取ip地址的方法及相关设备。


背景技术:

2.dhcp(dynamic host configuration protocol,动态主机配置协议)是一个局域网的网络协议。指的是由服务端(server,服务器)控制一段ip地址范围,客户端(client,客户机)登录服务器时就可以自动获得服务器分配的ip地址和子网掩码。
3.相关技术中,如图1所示为标准的dhcp客户端从dhcp服务端获取ip地址的过程,客户端先发送一个发现报文(discover)给服务端,服务端收到后,服务端确认能分配出ip地址后回应一个回应报文(offer),客户端收到回应报文后,再发送一个请求报文,服务端收到请求报文数据后,回应一个确认报文(ack),客户端收到确认后,进行ip地址的绑定,整个获取ip地址的过程完成。在网络状态比较好的情况下,整个获取ip地址的过程在1~2秒内能完成。
4.然而,如图2所示,在网络状态差的情况下,当客户端发送发现报文给dhcp服务端,而dhcp服务端收不到时,dhcp客户端等不到回应报文包后超时重发,常规超时时间为4秒,再次超时后,超时时间就翻倍,若整个获取ip地址的过程中出现几次丢包,超时时间就会翻几倍,一直到最大超时时间为60秒,在这种情况下,整个获取ip地址的过程就会达到几十秒。如图2中所示,即使只出现2次丢包,获取ip地址的整个耗时就大于12秒了。因此,上述问题亟待解决。


技术实现要素:

5.针对以上现有技术的不足,本发明提出一种dhcp客户端获取ip地址的方法,提高dhcp客户端获取ip地址的速度。
6.为了解决上述技术问题,本发明采用如下技术方案:
7.第一方面,本发明提供一种dhcp客户端获取ip地址的方法,包括步骤:
8.向dhcp服务端发送发现报文,所述发现报文包括发现报文编号信息;
9.在第一预设时间周期内检测是否接收到所述dhcp服务端的回应报文,所述回应报文包括回应报文编号信息;
10.若在所述第一预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;
11.当接收到所述dhcp服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取ip地址过程中预设的编号范围内;
12.若所述回应报文编号信息在本次获取ip地址过程中预设的编号范围内,则处理该回应报文;
13.向dhcp服务端发送请求报文;
14.接收dhcp服务端的确认报文。
15.优选的,向所述dhcp服务端发送发现报文的步骤包括:
16.在第二预设时间周期内检测是否接收到所述dhcp服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
17.若在一个所述第二预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
18.优选的,所述第一预设时间周期小于4秒,一个所述第一预设时间周期内至少包括两个第二预设时间周期。
19.优选的,所述第一预设时间周期为1秒,所述第二预设时间周期为200毫秒。
20.优选的,判断所述回应报文编号信息是否为本次获取ip地址过程中的编号信息的步骤包括:
21.基于所述发现报文编号信息的初始值判断所述回应报文编号信息是否在本次获取ip地址过程中预设的编号范围内,
22.若所述回应报文编号信息在本次获取ip地址过程中预设的编号范围内,则确认所述回应报文为本次获取ip地址过程中的回应报文。
23.优选的,所述请求报文包括请求报文编号信息,接收所述dhcp服务端的确认报文的过程包括:
24.在第三预设时间周期内检测是否接收到所述dhcp服务端的确认报文,所述确认报文包括确认报文编号信息;
25.若在所述第三预设时间周期内未接收到所述dhcp服务端的所述确认报文,则向所述dhcp服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;
26.当接收到所述dhcp服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取ip地址过程中预设的编号范围内;
27.若所述确认报文编号信息在本次获取ip地址过程中预设的编号范围内,则处理该确认报文。
28.优选的,向所述dhcp服务端发送请求报文的步骤包括:
29.在第四预设时间周期内检测是否接收到所述dhcp服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
30.若在一个所述第四预设时间周期内未接收到所述dhcp服务端的所述确认报文,则向所述dhcp服务端再次发送所述确认报文,保持所述确认报文的所述确认报文编号信息不变。
31.第二方面,本发明提供一种dhcp客户端获取ip地址的装置,包括:
32.第一发送模块,用于向dhcp服务端发送发现报文,所述发现报文包括发现报文编号信息;
33.第一接收模块,用于在第一预设时间周期内检测是否接收到所述dhcp服务端的回应报文,所述回应报文包括回应报文编号信息;
34.若所述第一接收模块在所述第一预设时间周期内未接收到所述dhcp服务端的所述回应报文,则所述第一发送模块向所述dhcp服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;还包括:
35.第一编号信息判断模块,用于当所述第一接收模块接收到所述dhcp服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取ip地址过程中预设的编号范围内;
36.第一处理单元,用于当所述回应报文编号信息在本次获取ip地址过程中预设的编号范围内时,则处理该回应报文。
37.优选的,所述第一接收单元还用于在第二预设时间周期内检测是否接收到所述dhcp服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
38.若在一个所述第二预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
39.优选的,所述装置还包括:
40.第二发送模块,用于向dhcp服务端发送请求报文,所述请求报文包括请求报文编号信息;
41.第二接收模块,用于在第三预设时间周期内检测是否接收到所述dhcp服务端的确认报文,所述确认报文包括确认报文编号信息;
42.若所述第二接收模块在所述第三预设时间周期内未接收到所述dhcp服务端的所述确认报文,则所述第二发送模块向所述dhcp服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;还包括:
43.第二编号信息判断模块,用于当接收到所述dhcp服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取ip地址过程中预设的编号范围内;
44.第二处理单元,用于当所述确认报文编号信息在本次获取ip地址过程中预设的编号范围内,则处理该确认报文。
45.优选的,所述第二接收单元还用于在第四预设时间周期内检测是否接收到所述dhcp服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
46.若在一个所述第四预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
47.第三方面,本发明提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一所述的dhcp客户端获取ip地址的方法中的步骤。
48.第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的dhcp客户端获取ip地址的方法中的步骤。
49.与相关技术相比,本发明的一种实施例中,接收到所述dhcp服务端的回应报文时,基于发现报文编号信息判断所述回应报文编号信息是否在本次获取ip地址过程中预设的编号范围内,如果是则继续处理该回应报文;这样可以避免一次有效的交互被浪费掉,无需再进行一次发送发现报文到接收对应编号回应报文的交互过程,提高了获取ip地址的速度。在本发明的另一种实施例中,在第一预设时间周期内的多个第二预设时间周期中,没有
收到回应报文的情况下,通过再次发送具有相同发现报文编号信息的发现报文,使得在一个第一预设时间周期内dhcp服务端接收到该发现报文的几率增加,无需等一个第一预设时间周期走完才重发,再提高回应几率的情况下,回应的速度也会得到相应的提高。
附图说明
50.下面结合附图详细说明本发明。通过结合以下附图所作的详细描述,本发明的上述或其他方面的内容将变得更清楚和更容易理解。附图中:
51.图1为相关技术的dhcp客户端从dhcp服务端获取ip地址的过程示意图;
52.图2为网络状态不好情况下相关技术的dhcp客户端从dhcp服务端获取ip地址的过程示意图;
53.图3为本发明实施例一的dhcp客户端从dhcp服务端获取ip地址的流程图;
54.图4为本发明实施例一中步骤101的一种实现方法流程图;
55.图5为本发明实施例一中步骤104的一种实现方法流程图;
56.图6为本发明实施例一种一个具体应用例的交互示意图;
57.图7为本发明实施例二的dhcp客户端从dhcp服务端获取ip地址的流程图;
58.图8为本发明实施例二中步骤203的一种实现方法流程图;
59.图9为本发明实施例二中步骤206的一种实现方法流程图;
60.图10为本发明实施例三的装置结构示意图;
61.图11为本发明实施例四的装置结构示意图。
具体实施方式
62.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
63.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
64.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
65.实施例一
66.请参图3所示,本发明提供了一种dhcp客户端获取ip地址的方法,包括步骤:
67.101、向dhcp服务端发送发现报文,所述发现报文包括发现报文编号信息。
68.在本发明实施例中,dhcp客户端发送发现报文可以以广播方式发送,即向地址
255.255.255.0发送所述的发现报文,在网络中可能具有一个或多个dhcp服务端,网络中每个安装了tcp/ip协议的主机都会接收到该发现报文,但只有网络中的dhcp服务端在接收到上述的发现报文后会做出回应。dhcp客户端只会接受第一个收到的dhcp服务端所提供的回应信息并做出下一步动作,如向dhcp服务端发送请求信息。发现报文为一种广播信息,在每一次发现报文发出时,都带有记录该次发现报文所对应的发现报文编号信息。
69.102、在第一预设时间周期内检测是否接收到所述dhcp服务端的回应报文,所述回应报文包括回应报文编号信息。
70.在本发明实施例中,在第一预设时间周期内检测是否接收到dhcp服务端的回应报文,例如,第一预设时间周期为1秒。若网络良好的情况下,dhcp服务端在接收到上述发现报文后,根据ip地址分配的规则选出一个ip地址,通过回应报文的形式发送给dhcp客户端,其中,回应报文除了包含ip地址信息外,还包括对本次回应报文进行记录的回应报文编号信息。
71.103、若在所述第一预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息。
72.在本发明实施例中,因网络环境的问题,dhcp服务端可能无法接收到dhcp客户端所发送的发现报文,此时,dhcp客户端在第一预设时间周期内未接收到任何一个dhcp服务端的回应报文时,会再次向dhcp服务端发送发现报文,同时,更新发现报文对应的发现报文编号信息,发现报文编号信息记录了发现报文的发送轮次。
73.104、当接收到所述dhcp服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是在为本次获取ip地址过程中预设的编号范围内。
74.在本发明实施例中,接收到dhcp服务端的回应报文时,可能是在多个第一预设时间周期后才接收到的回应报文,也可能是上一次获取ip地址过程中的回应报文。因此,在一次ip地址获取过程中,对发送报文的次数进行了预设,当超出预设次数时,则结束本次ip地址获取过程,进行下一次ip地址获取过程。发现报文的编号信息是基于发现报文的首次发送进行的编号,对应的,回应报文的编号信息也是基于首次接收到发现报文后回应时进行的编号,因此,发现报文的发现报文编号信息和回应报文编号信息是对应的,为了避免一次有效的交互被浪费,当判断该回应报文的回应报文编号信息是本次获取ip地址过程预设的编号范围内中的某个编号信息时,则可以判断所接收到的回应报文是本次获取ip地址的回应报文,则对该回应报文进行处理,作出响应,向作出该回应报文的dhcp服务端发送请求报文,该请求报文包含dhcp客户端所选定的dhcp服务端请求ip地址的内容。
75.105、若所述回应报文编号信息在本次获取ip地址过程中预设的编号范围内,则处理该回应报文。
76.在本发明实施例中,dhcp客户端只对接收到的属于本次ip地址获取过程的第一次回应报文进行处理,若在接收到第一次回应报文后因网络延迟问题还收到后续的回应报文,则不进行处理。处理该回应报文后进入下一步动作。
77.106、向dhcp服务端发送请求报文。
78.在本发明实施例中,对回应报文进行处理后生成请求报文,dhcp客户端向dhcp服务端发送请求报文,发送请求报文的方式也是以广播形式发送。
79.107、接收dhcp服务端的确认报文。
80.在本发明实施例中,当dhcp服务端接收到dhcp客户端发送的请求报文后,向dhcp客户端发送确认报文,确认报文包括有ip地址信息和一些具体的设置信息,以告知dhcp客户端可以使用dhcp服务端提供的ip地址。dhcp客户端接收到确认报文后,进行相关的设置和绑定操作。若网络上具有多台dhcp客户端,则其它dhcp客户端在接收到dhcp服务端发送的请求报文后会收回所提供的ip地址。
81.作为本实施例的进一步改进,如图4所示,步骤101中,向所述dhcp服务端发送发现报文的步骤包括:
82.1011、在第二预设时间周期内检测是否接收到所述dhcp服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期。
83.1012、若在一个所述第二预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
84.具体的,在一个第一预设时间周期内,相当于发送了多个具有相同发现报文编号信息的发现报文,这样提高了dhcp服务端接收到发现报文的几率。
85.进一步的,所述第一预设时间周期小于4秒,一个所述第一预设时间周期内至少包括两个第二预设时间周期。
86.进一步的,所述第一预设时间周期为1秒,所述第二预设时间周期为200毫秒。
87.相对于传统的将一个第一预设时间周期为4秒时间,本发明实施例将第一预设时间周期缩短,例如缩短至1秒时间,并具有5个第二预设时间周期(每个第二预设时间周期为200毫秒),在该5个第二预设时间周期内向dhcp服务端不间断的发送发现报文直至接收到回应报文或5个第二预设时间周期全部走完。这样,提高了dhcp服务端接收到发现报文的几率,进而提高了dhcp服务端作出回应并接收到回应报文的几率。在一个较短的第一预设时间周期内可以很快实现一次交互过程,提高了该次交互的速率。
88.进一步的,在本发明实施例中,如图5所示,步骤104中,判断所述回应报文编号信息是否为本次获取ip地址过程中的编号信息的步骤包括:
89.1041、基于所述发现报文编号信息的初始值判断所述回应报文编号信息是否在本次获取ip地址过程中预设的编号范围内,
90.1042、若所述回应报文编号信息在本次获取ip地址过程中预设的编号范围内,则确认所述回应报文为本次获取ip地址过程中的回应报文。
91.如图6所示,为本实施例提供的一个获取ip地址过程的具体应用例,该过程加入了因网络环境干扰而导致超时的因素,其中,将第一预设时间周期为1秒,第二预设时间周期为200毫秒。获取ip地址的过程如下:
92.s1、以a时间点代表第一个第一预设时间周期的起始点,也是第一个第二预设时间周期的起始点,在该起始时间点,dhcp客户端向dhcp服务端发送一个发现报文,该发现报文的发现报文编号信息为xid=1。
93.s2、在一个200毫秒周期内,未接收到dhcp服务端发送的回应报文(因网络环境差造成丢包问题),因此,在下一个200毫秒周期开始时,即b时间点开始,向dhcp服务端再次发送一个发现报文,保持该发现报文的发现报文编号信息不变,即xid=1。
94.s3、在第三个200毫秒周期时,在c时间点起始,dhcp客户端向dhcp服务端发送了一
个发现报文,保持该发现报文的发现报文编号信息不变,即xid=1,在该200毫秒周期内,在f时间点,dhcp服务端回应了一个回应报文,该回应报文的回应报文编号信息为xid=1,但是因网络环境问题,dhcp客户端未收到该回应报文。
95.s4、在第四个200毫秒周期,在d时间点起始,dhcp客户端向dhcp服务端发送了一个发现报文,保持该发现报文的发现报文编号信息不变,即xid=1,在该200毫秒周期内,在g时间点,dhcp服务端回应了一个回应报文,该回应报文的回应报文编号信息为xid=1,dhcp客户端在i时间点接收到该回应报文。此时,dhcp客户端已经在e时间点完成了第5个第二预设时间周期,并发送了一次发现报文,dhcp服务端未接收到。
96.s5、在接收到回应报文前,dhcp客户端进入了下一个第一预设时间周期,在h时间点,dhcp客户端向dhcp服务端发送了一个发现报文,该发现报文的发现报文编号信息已更新,即xid=2。
97.s6、在时间点i,dhcp客户端接收到回应报文后,虽然与发出的发现报文的发现报文编号信息无法直接对应,但是,由于仍然在预设的编号范围内(即xid=1~xid=2),因此,继续处理该回应报文,完成一次发现-回应(discover-offer)的交互。
98.s7、在处理好回应报文后,向dhcp服务端发送请求报文,请求报文也携带有对应的请求报文编号信息,即xid=3。在j时间点,还收到了dhcp服务端回应h时间点发出的发现报文的回应报文,此时,dhcp客户端不再处理该回应报文。
99.s8,在k时间点,dhcp服务端收到请求报文后,向dhcp客户端发送确认报文,dhcp客户端在l时间点收到确认报文。dhcp客户端与dhcp服务端之间至此完成一次获取ip地址的交互过程。
100.在本实施例中,报文的编号信息是可以一个随机值开始,本实施例中如xid=1为开始是便于对本发明的技术方案进行说明,并不限于该数值。
101.与相关技术相比,本发明的实施例中,接收到所述dhcp服务端的回应报文时,基于发现报文编号信息判断所述回应报文编号信息是否为本次获取ip地址过程中的编号信息,如果是则继续处理该回应报文;这样可以避免一次有效的交互被浪费掉,无需再进行一次发送发现报文到接收对应编号回应报文的交互过程,提高了获取ip地址的速度。在本发明的实施例中,在第一预设时间周期内的多个第二预设时间周期中,没有收到回应报文的情况下,通过再次发送具有相同发现报文编号信息的发现报文,使得在一个第一预设时间周期内dhcp服务端接收到该发现报文的几率增加,无需等一个第一预设时间周期走完才重发,在提高回应几率的情况下,回应的速度也会得到相应的提高。
102.实施例二
103.如图7所示,本发明提供另一种dhcp客户端获取ip地址的方法,包括步骤:
104.201、向dhcp服务端发送发现报文。
105.在本发明实施例中,dhcp客户端发送发现报文是以广播方式发送,即向地址255.255.255.0发送所述的发现报文,在网络中可能具有一个或多个dhcp服务端,网络中每个安装了tcp/ip协议的主机都会接收到该发现报文,但只有网络中的dhcp服务端在接收到上述的发现报文后会做出回应。dhcp客户端只会接受第一个收到的dhcp服务端所提供的回应信息并做出下一步动作,如向dhcp服务端发送请求信息。发现报文为一种广播信息,在每一次发现报文发出时,都带有记录该次发现报文所对应的发现报文编号信息。
106.202、接收所述dhcp服务端的回应报文。
107.在本发明实施例中,在第一预设时间周期内检测是否接收到dhcp服务端的回应报文,例如,第一预设时间周期为1秒。若网络良好的情况下,dhcp服务端在接收到上述发现报文后,根据ip地址分配的规则选出一个ip地址,通过回应报文的形式发送给dhcp客户端,其中,回应报文除了包含ip地址信息外,还包括对本次回应报文进行记录的回应报文编号信息。
108.在本发明实施例中,因网络环境的问题,dhcp服务端可能无法接收到dhcp客户端所发送的发现报文,此时,dhcp客户端在第一预设时间周期内未接收到任何一个dhcp服务端的回应报文时,会再次向dhcp服务端发送发现报文,同时,更新发现报文对应的发现报文编号信息,发现报文编号信息记录了发现报文的发送轮次。
109.作为一种可实施方式,接收到dhcp服务端的回应报文时,可能是在多个第一预设时间周期后才接收到的回应报文,也可能是上一次获取ip地址过程中的回应报文。因此,在一次ip地址获取过程中,对发送报文的次数进行了预设,当超出预设次数时,则结束本次ip地址获取过程,进行下一次ip地址获取过程。发现报文的编号信息是基于发现报文的首次发送进行的编号,对应的,回应报文的编号信息也是基于首次接收到发现报文后回应时进行的编号,因此,发现报文的发现报文编号信息和回应报文编号信息是对应的,为了避免一次有效的交互被浪费,当判断该回应报文的回应报文编号信息是本次获取ip地址过程中的编号信息,则可以判断所接收到的回应报文是本次获取ip地址的回应报文,则对该回应报文继续处理,作出响应,向作出该回应报文的dhcp服务端发送请求报文,该请求报文包含dhcp客户端所选定的dhcp服务端请求ip地址的内容。
110.在本发明实施例中,dhcp客户端只对接收到的属于本次ip地址获取过程的第一次回应报文进行处理,若在接收到第一次回应报文后因网络延迟问题还收到后续的回应报文,则不进行处理。处理该回应报文后进入下一步动作。
111.203、向dhcp服务端发送请求报文,所述请求报文包括请求报文编号信息。
112.在本发明实施例中,对回应报文进行处理后生成请求报文,dhcp客户端向dhcp服务端发送请求报文,发送请求报文的方式也是以广播形式发送。请求报文的编号信息根据发现报文的编号信息进行连续性的编号,以便于确认一次获取ip地址的过程。
113.204、在第三预设时间周期内检测是否接收到所述dhcp服务端的确认报文,所述确认报文包括确认报文编号信息。
114.在本发明实施例中,因网络环境的问题,dhcp服务端可能无法接收到dhcp客户端所发送的请求报文,此时,dhcp客户端在第三预设时间周期内未接收到任何一个dhcp服务端的确认报文时,会再次向dhcp服务端发送请求报文,同时,更新请求报文对应的请求报文编号信息,请求报文编号信息记录了请求报文的发送轮次。
115.205、若在所述第三预设时间周期内未接收到所述dhcp服务端的所述确认报文,则向所述dhcp服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息。
116.206、当接收到所述dhcp服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取ip地址过程中预设的编号范围内。
117.在本发明实施例中,接收到dhcp服务端的确认报文时,可能是在多个第三预设时间周期后才接收到的确认报文,也可能是上一次获取ip地址过程中的确认报文。因此,在一
次ip地址获取过程中,对请求报文的次数进行了预设,当超出预设次数时,则结束本次ip地址获取过程,进行下一次ip地址获取过程。请求报文的编号信息是基于发现报文的首次发送进行的编号,对应的,确认报文的编号信息也是基于首次接收到请求报文后回应时进行的编号,因此,请求报文的请求报文编号信息和确认报文编号信息是对应的,为了避免一次有效的交互被浪费,当判断该确认报文的确认报文编号信息是本次获取ip地址过程中预设的编号范围内的某个编号信息时,则可以判断所接收到的确认报文是本次获取ip地址的确认报文,则对该确认报文进行处理。
118.207、若所述确认报文编号信息在本次获取ip地址过程中预设的编号范围内,则处理该确认报文。
119.在本发明实施例中,当dhcp服务端接收到dhcp客户端发送的请求报文后,向dhcp客户端发送确认报文,确认报文包括有ip地址信息和一些具体的设置信息,以告知dhcp客户端可以使用dhcp服务端提供的ip地址。dhcp客户端接收到确认报文后,进行相关的设置和绑定操作。若网络上具有多台dhcp客户端,则其它dhcp客户端在接收到dhcp服务端发送的请求报文后会收回所提供的ip地址。
120.作为本实施例进一步的改进,如图8所示,步骤203中,向所述dhcp服务端发送请求报文的步骤包括:
121.2031、在第四预设时间周期内检测是否接收到所述dhcp服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期。
122.2032、若在一个所述第四预设时间周期内未接收到所述dhcp服务端的所述确认报文,则向所述dhcp服务端再次发送所述确认报文,保持所述确认报文的所述确认报文编号信息不变。
123.具体的,在一个第三预设时间周期内,相当于发送了多个具有相同请求报文编号信息的请求报文,这样提高了dhcp服务端接收到请求报文的几率。
124.进一步的,所述第一预设时间周期小于4秒,一个所述第一预设时间周期内至少包括两个第二预设时间周期。
125.进一步的,所述第一预设时间周期为1秒,所述第二预设时间周期为200毫秒。
126.相对于传统的将一个第三预设时间周期为4秒时间,本发明实施例将第三预设时间周期缩短,例如缩短至1秒时间,并具有5个第四预设时间周期(每个第四预设时间周期为200毫秒),在该5个第四预设时间周期内向dhcp服务端不间断的发送请求报文直至接收到确认报文或5个第四预设时间周期全部走完。这样,提高了dhcp服务端接收到请求报文的几率,进而提高了dhcp服务端作出回应并接收到确认报文的几率。在一个较短的第三预设时间周期内可以很快实现一次交互过程,提高了该次交互的速率。本实施例中,第三预设时间周期与第一预设时间周期的时长可以是相同的,也可以是不同的,第二预设时间周期和第四预设时间周期的时长可以是相同的,也可以是不同的。
127.进一步的,在本发明实施例中,如图9所示,步骤206中,判断所述确认报文编号信息是否为本次获取ip地址过程中的编号信息的步骤包括:
128.2061、基于所述发现报文编号信息的初始值或请求报文编号信息的初始值判断所述确认报文编号信息是否在本次获取ip地址过程中预设的编号范围内,
129.2062、若所述确认报文编号信息在本次获取ip地址过程中预设的编号范围内,则
确认所述确认报文为本次获取ip地址过程中的确认报文。
130.实施例三
131.如图10所示,本发明提供一种dhcp客户端获取ip地址的装置10,包括:
132.第一发送模块11,用于向dhcp服务端发送发现报文,所述发现报文包括发现报文编号信息;
133.第一接收模块12,用于在第一预设时间周期内检测是否接收到所述dhcp服务端的回应报文,所述回应报文包括回应报文编号信息;
134.若所述第一接收模块在所述第一预设时间周期内未接收到所述dhcp服务端的所述回应报文,则所述第一发送模块向所述dhcp服务端再次发送发现报文,并更新所述发现报文的所述发现报文编号信息;还包括:
135.第一编号信息判断模块13,用于当所述第一接收模块接收到所述dhcp服务端的回应报文时,基于所述发现报文编号信息判断所述回应报文编号信息是否在本次获取ip地址过程中预设的编号范围内;
136.第一处理单元14,用于当所述回应报文编号信息在本次获取ip地址过程中预设的编号范围内,则处理该回应报文。
137.进一步的,所述第一接收单元还用于在第二预设时间周期内检测是否接收到所述dhcp服务端的回应报文,其中,一个所述第一预设时间周期包括多个所述第二预设时间周期;
138.若在一个所述第二预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
139.实施例四
140.本发明提供另一种dhcp客户端获取ip地址的装置20,包括:
141.第一发送模块21,用于向dhcp服务端发送发现报文;
142.第一接收模块22,用于接收所述dhcp服务端的回应报文;
143.第二发送模块23,用于向dhcp服务端发送请求报文,所述请求报文包括请求报文编号信息;
144.第二接收模块24,用于在第三预设时间周期内检测是否接收到所述dhcp服务端的确认报文,所述确认报文包括确认报文编号信息;
145.若所述第二接收模块在所述第三预设时间周期内未接收到所述dhcp服务端的所述确认报文,则所述第二发送模块向所述dhcp服务端再次发送请求报文,并更新所述请求报文的所述请求报文编号信息;还包括:
146.第二编号信息判断模块25,用于当接收到所述dhcp服务端的确认报文时,基于所述请求报文编号信息判断所述确认报文的确认报文编号信息是否在本次获取ip地址过程中预设的编号范围内;
147.第二处理单元26,用于当所述确认报文编号信息在本次获取ip地址过程中预设的编号范围内时,则处理该确认报文。
148.进一步的,所述第二接收单元还用于在第四预设时间周期内检测是否接收到所述dhcp服务端的确认报文,其中,一个所述第三预设时间周期包括多个所述第四预设时间周期;
149.若在一个所述第四预设时间周期内未接收到所述dhcp服务端的所述回应报文,则向所述dhcp服务端再次发送发现报文,保持所述发现报文的所述发现报文编号信息不变。
150.实施例五
151.本发明还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一或实施例二所述的dhcp客户端获取ip地址的方法中的步骤。
152.实施例六
153.本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一或实施例二所述的dhcp客户端获取ip地址的方法中的步骤。
154.需要说明的是,以上参照附图所描述的各个实施例仅用以说明本发明而非限制本发明的范围,本领域的普通技术人员应当理解,在不脱离本发明的精神和范围的前提下对本发明进行的修改或者等同替换,均应涵盖在本发明的范围之内。此外,除上下文另有所指外,以单数形式出现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施例的全部或一部分可结合任何其它实施例的全部或一部分来使用。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献