CN109274783A - 一种dhcp客户端多接口的实现方法 - Google Patents
一种dhcp客户端多接口的实现方法 Download PDFInfo
- Publication number
- CN109274783A CN109274783A CN201811026075.1A CN201811026075A CN109274783A CN 109274783 A CN109274783 A CN 109274783A CN 201811026075 A CN201811026075 A CN 201811026075A CN 109274783 A CN109274783 A CN 109274783A
- Authority
- CN
- China
- Prior art keywords
- dhcp client
- event
- interface
- time
- dhcp
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2517—Translation of Internet protocol [IP] addresses using port numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5061—Pools of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/677—Multiple interfaces, e.g. multihomed nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种DHCP客户端多接口的实现方法,首先通过链表存储多个接口的DHCP客户端信息,通过所述接口索引来区分不同的接口;DHCP客户端状态机的进入通过相应的事件来触发,所述事件包括:命令行配置事件、定时器超时事件、报文接收事件和接口up/down事件;每个接口的DHCP客户端信息存储于接口的结构体中,当所述DHCP客户端状态机进入时,将所述DHCP客户端信息的状态值取出,用对应的临时指针变量指向状态值的地址;再基于绝对时间点二分法的方式实现地址更新时的报文发送过程。该方法能够突破DHCP客户端的接口数量限制,基于多接口的收发报文状态机,并能更精确合理的更新报文发送频率。
Description
技术领域
本发明涉及DHCP客户端技术领域,尤其涉及一种DHCP客户端多接口的实现方法。
背景技术
目前,动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动,当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置;DHCP客户端在第一次获取完地址之后,会在租约到期之前再次发送更新报文以达到续租地址的目的。
传统的DHCP客户端协议一般应用于单接口,并且采用while循环的形式,地址更新方式单一,很难满足于现代设备对多接口以及效率的要求。
发明内容
本发明的目的是提供一种DHCP客户端多接口的实现方法,该方法能够突破DHCP客户端的接口数量限制,基于多接口的收发报文状态机,并能更精确合理的更新报文发送频率。
本发明的目的是通过以下技术方案实现的:
一种DHCP客户端多接口的实现方法,所述方法包括:
步骤1、通过链表存储多个接口的DHCP客户端信息,不同的接口具有不同的接口索引,通过所述接口索引来区分不同的接口;
步骤2、DHCP客户端状态机的进入通过相应的事件来触发,所述事件包括:命令行配置事件、定时器超时事件、报文接收事件和接口up/down事件;
步骤3、每个接口的DHCP客户端信息存储于接口的结构体中,当所述DHCP客户端状态机进入时,将所述DHCP客户端信息的状态值取出,用对应的临时指针变量指向状态值的地址;
步骤4、再基于绝对时间点二分法的方式实现地址更新时的报文发送过程。
在步骤1中,所述链表由节点链接组成,其中:
通过首节点找到第二个节点,再由第二个节点找到第三个节点,依次类推找到最后一个节点;
且每个节点保存有相应接口的结构体指针,所述结构体指针指向的接口的结构体保存有相应接口的DHCP信息。
所述DHCP信息包括:接口索引、接口的DHCP角色、客户端或中继信息。
在步骤2中,所述命令行配置事件用于处理来自命令行的DHCP客户端使能或禁止命令;
所述定时器超时事件用于应答报文超时时的报文重发或者租约到期时的租约更新;
所述报文接收事件用于处理收到的报文;
所述接口up/down事件用于处理接口的up、down消息。
在步骤3中,所述DHCP客户端状态机进入时的首次发包时间点为DHCP客户端状态机收到相应事件命令的时机;
此时会启动一个定时器,超时时间为0,DHCP客户端状态机会收到一个定时器超时事件命令,并进入发包流程。
所述步骤4的过程为:
当DHCP客户端申请地址成功时,以系统开机到某一时刻之间的时间秒数记为时间点,记录关键的时间点和时间值,包括地址申请成功的时间点记为start,租约值记为lease,租约的一半值记为t1,租约的0.875倍记为t2;
若地址申请时间到达地址租约的一半,即时间点到达start+t1时,开始发送单播形式的DHCP更新报文,t1以二分法接近t2,以start+t1作为下一个超时时间点;
若报文接收一直超时,当t1非常接近t2时,即时间点即将到达start+t2时,开始发送组播形式的dhcp更新报文,t2以二分法接近lease,以start+t2作为下一个超时时间点;
若报文接收一直超时,当t2非常接近lease时,即时间点即将到达start+lease时,地址更新失败,state状态置为初始状态;
再添加定时器超时事件,超时时间为0,开始一个新的申请过程。
多个接口的DHCP客户端信息可以哈希表的形式存储。
由上述本发明提供的技术方案可以看出,方法能够突破DHCP客户端的接口数量限制,基于多接口的收发报文状态机,并能更精确合理的更新报文发送频率,方便的应用于对多接口高性能DHCP客户端有需求的路由器等网络产品。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的DHCP客户端多接口的实现方法流程示意图;
图2为本发明实施例所述链表存储结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
下面将结合附图对本发明实施例作进一步地详细描述,如图1所示为本发明实施例提供的DHCP客户端多接口的实现方法流程示意图,所述方法包括:
步骤1、通过链表存储多个接口的DHCP客户端信息,不同的接口具有不同的接口索引,通过所述接口索引来区分不同的接口;
具体实现中,所述链表由节点(node)链接组成,如图2所示为本发明实施例所述链表存储结构示意图,图2中:
通过首节点找到第二个节点,再由第二个节点找到第三个节点,依次类推找到最后一个节点;
且每个节点保存有相应接口的结构体指针(data),所述结构体指针指向的接口的结构体保存有相应接口的DHCP信息。
所述DHCP信息包括:接口索引、接口的DHCP角色(角色包括客户端、服务器端、中继)、客户端或中继信息。
另外,除上述存储形式外,多个接口的DHCP客户端信息也可以哈希表的形式存储。
步骤2、DHCP客户端状态机的进入通过相应的事件来触发,所述事件包括:命令行配置事件、定时器超时事件、报文接收事件和接口up/down事件;
该步骤中,所述命令行配置事件用于处理来自命令行的DHCP客户端使能或禁止命令(DHCP客户端使能命令意味着整个DHCP状态机开始运行);
所述定时器超时事件用于应答报文超时时的报文重发或者租约到期时的租约更新(定时器超时事件意味着DHCP状态机即将进入发包流程);
所述报文接收事件用于处理收到的报文(报文接收事件意味着DHCP状态机即将进入收包流程);
所述接口up/down事件用于处理接口的up、down消息。
这里,事件触发的优点在于提高代码运行效率,摆脱固有的循环机制的限制,而且流程规范,状态机状态变化过程清晰。
步骤3、每个接口的DHCP客户端信息存储于接口的结构体中,当所述DHCP客户端状态机进入时,将所述DHCP客户端信息的状态值取出,用对应的临时指针变量指向状态值的地址;
这样多接口的状态机变成和单接口的状态机处理方式相同,化难为简,由此巧妙实现多接口的收发报文状态机。
具体实现中,所述DHCP客户端状态机进入时的首次发包时间点为DHCP客户端状态机收到相应事件命令的时机;
此时会启动一个定时器,超时时间为0,DHCP客户端状态机会收到一个定时器超时事件命令,并进入发包流程。
步骤4、再基于绝对时间点二分法的方式实现地址更新时的报文发送;
在该步骤中,具体过程为:
当DHCP客户端申请地址成功时,以系统开机到某一时刻之间的时间秒数记为时间点,记录关键的时间点和时间值,包括地址申请成功的时间点记为start,租约值记为lease,租约的一半值记为t1,租约的0.875倍记为t2;
地址申请时间到达地址租约的一半时,即时间点到达start+t1时,开始发送单播形式的DHCP更新报文,t1以二分法接近t2,以start+t1作为下一个超时时间点;
若报文接收一直超时,当t1非常接近t2时,即时间点即将到达start+t2时,开始发送组播形式的dhcp更新报文,t2以二分法接近lease,以start+t2作为下一个超时时间点;
若报文接收一直超时,当t2非常接近lease时,即时间点即将到达start+lease时,地址更新失败,state状态置为初始状态;
再添加定时器超时事件,超时时间为0,开始一个新的申请过程。
值得注意的是,本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
综上所述,本发明实施例所提供的方法可实现多接口DHCP客户端动态地址的申请以及更新,并且采用事件触发的形式提高了程序运行效率,巧妙实现基于多接口的DHCP客户端状态机,并基于绝对时间点采用二分法的方式实现更精确更合理的地址更新时的报文发送。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (7)
1.一种DHCP客户端多接口的实现方法,其特征在于,所述方法包括:
步骤1、通过链表存储多个接口的DHCP客户端信息,不同的接口具有不同的接口索引,通过所述接口索引来区分不同的接口;
步骤2、DHCP客户端状态机的进入通过相应的事件来触发,所述事件包括:命令行配置事件、定时器超时事件、报文接收事件和接口up/down事件;
步骤3、每个接口的DHCP客户端信息存储于接口的结构体中,当所述DHCP客户端状态机进入时,将所述DHCP客户端信息的状态值取出,用对应的临时指针变量指向状态值的地址;
步骤4、再基于绝对时间点二分法的方式实现地址更新时的报文发送过程。
2.根据权利要求1所述DHCP客户端多接口的实现方法,其特征在于,在步骤1中,所述链表由节点链接组成,其中:
通过首节点找到第二个节点,再由第二个节点找到第三个节点,依次类推找到最后一个节点;
且每个节点保存有相应接口的结构体指针,所述结构体指针指向的接口的结构体保存有相应接口的DHCP信息。
3.根据权利要求2所述DHCP客户端多接口的实现方法,其特征在于,
所述DHCP信息包括:接口索引、接口的DHCP角色、客户端或中继信息。
4.根据权利要求1所述DHCP客户端多接口的实现方法,其特征在于,在步骤2中,
所述命令行配置事件用于处理来自命令行的DHCP客户端使能或禁止命令;
所述定时器超时事件用于应答报文超时时的报文重发或者租约到期时的租约更新;
所述报文接收事件用于处理收到的报文;
所述接口up/down事件用于处理接口的up、down消息。
5.根据权利要求1所述DHCP客户端多接口的实现方法,其特征在于,在步骤3中,
所述DHCP客户端状态机进入时的首次发包时间点为DHCP客户端状态机收到相应事件命令的时机;
此时会启动一个定时器,超时时间为0,DHCP客户端状态机会收到一个定时器超时事件命令,并进入发包流程。
6.根据权利要求1所述DHCP客户端多接口的实现方法,其特征在于,所述步骤4的过程为:
当DHCP客户端申请地址成功时,以系统开机到某一时刻之间的时间秒数记为时间点,记录关键的时间点和时间值,包括地址申请成功的时间点记为start,租约值记为lease,租约的一半值记为t1,租约的0.875倍记为t2;
若地址申请时间到达地址租约的一半,即时间点到达start+t1时,开始发送单播形式的DHCP更新报文,t1以二分法接近t2,以start+t1作为下一个超时时间点;
若报文接收一直超时,当t1非常接近t2时,即时间点即将到达start+t2时,开始发送组播形式的dhcp更新报文,t2以二分法接近lease,以start+t2作为下一个超时时间点;
若报文接收一直超时,当t2非常接近lease时,即时间点即将到达start+lease时,地址更新失败,state状态置为初始状态;
再添加定时器超时事件,超时时间为0,开始一个新的申请过程。
7.根据权利要求1所述DHCP客户端多接口的实现方法,其特征在于,在步骤1中,
多个接口的DHCP客户端信息可以哈希表的形式存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811026075.1A CN109274783A (zh) | 2018-09-04 | 2018-09-04 | 一种dhcp客户端多接口的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811026075.1A CN109274783A (zh) | 2018-09-04 | 2018-09-04 | 一种dhcp客户端多接口的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109274783A true CN109274783A (zh) | 2019-01-25 |
Family
ID=65187497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811026075.1A Pending CN109274783A (zh) | 2018-09-04 | 2018-09-04 | 一种dhcp客户端多接口的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109274783A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844711A (zh) * | 2022-05-17 | 2022-08-02 | 北京经纬恒润科技股份有限公司 | 一种车载以太网安全状态检测方法和装置 |
CN115941128A (zh) * | 2022-11-07 | 2023-04-07 | 天津津航计算技术研究所 | 一种基于QCache的报文协议超时重发管理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453681A (zh) * | 2016-10-10 | 2017-02-22 | 杭州昆海信息技术有限公司 | 一种ip地址的分配方法和装置 |
-
2018
- 2018-09-04 CN CN201811026075.1A patent/CN109274783A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453681A (zh) * | 2016-10-10 | 2017-02-22 | 杭州昆海信息技术有限公司 | 一种ip地址的分配方法和装置 |
Non-Patent Citations (2)
Title |
---|
叶武迪: "一种多接口主机通信方案的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
肖绍斌: "DHCPv6协议的研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844711A (zh) * | 2022-05-17 | 2022-08-02 | 北京经纬恒润科技股份有限公司 | 一种车载以太网安全状态检测方法和装置 |
CN114844711B (zh) * | 2022-05-17 | 2024-04-09 | 北京经纬恒润科技股份有限公司 | 一种车载以太网安全状态检测方法和装置 |
CN115941128A (zh) * | 2022-11-07 | 2023-04-07 | 天津津航计算技术研究所 | 一种基于QCache的报文协议超时重发管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2843906B1 (en) | Method, apparatus, and system for data transmission | |
CN102685270B (zh) | 动态地址分配方法和设备 | |
CN102710811B (zh) | 实现dhcp地址安全分配的方法和交换机 | |
CN101951325A (zh) | 基于自动发现的网络终端配置系统及其配置方法 | |
CN103248724A (zh) | 一种基于sdn控制器的dhcp广播处理方法 | |
CN114024880B (zh) | 基于代理ip与流表的网络靶场探针采集方法与系统 | |
CN101577722A (zh) | 实现强制mac转发功能的方法和装置 | |
CN105376299A (zh) | 一种网络通信方法、设备及网络附属存储设备 | |
CN104038402A (zh) | 一种访客网络的实现方法及无线路由器 | |
CN107623752B (zh) | 基于链路层的网络管理方法和装置 | |
CN110493366A (zh) | 一种接入点加入网络管理的方法及装置 | |
CN107124337A (zh) | 一种设备配置方法、装置、系统及集控终端 | |
CN109274783A (zh) | 一种dhcp客户端多接口的实现方法 | |
CN103312708A (zh) | 一种基于租约文件的ip设定方法及系统 | |
CN1414740A (zh) | 一种局域网交换设备的集中管理方法 | |
CN108234217A (zh) | 组网设备自动配置方法、电子设备及存储介质 | |
CN105635335B (zh) | 社会资源接入方法、装置及系统 | |
CN102594839B (zh) | 一种识别伪dhcp服务器的方法和交换机 | |
CN104618942A (zh) | 一种基于ptn组网的基站自动启动方法、基站和rnc | |
CN107645570A (zh) | 客户端上线方法及装置 | |
CN104581977B (zh) | Wlan用户管理方法、装置及系统 | |
CN103812707B (zh) | 一种线路标识报文的转发处理方法 | |
CN102594941B (zh) | 楼宇对讲系统中设备接入和设备通信的方法 | |
CN101242295A (zh) | 一种管理低端交换机的方法 | |
CN102246494A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190125 |