Nginx配置 远程桌面登陆 typora 智慧树 金融信贷 multithreading dictionary unity3d kubernetes pygame angular material mui Momentjs 软件测试项目实战案例 oracle限制查询条数 mysql删除存储过程 svn查看历史版本 python自学 python文件操作 python开发环境 java什么是多态 java替换字符 javasocket java集合框架图 linux用户 简体中文语言包 隐藏虚拟键 图解设计模式 pdf安装包官方下载 说话不算数的经典语句 惠普战99 ansys安装教程 斑驳纹理 rpm卸载命令 黑客攻防技术宝典 字典生成器 文件粉碎工具 混凝土配合比计算软件 ps蒙版抠图 汉仪旗黑字体下载
当前位置: 首页 > 学习教程  > 编程语言

ESP-IDF库之DHCP服务器原理分析

2020/9/19 14:40:37 文章标签:

相关信息

ESP-IDF版本:V4.1
DHCP服务器相关文件路径:
在这里插入图片描述


DHCP通信流程

  在DHCP服务中,所有的请求均由Client发起,Server被动接收信息进行处理,处理完成后响应Client,以实现相关功能,其详细流程可参见DHCP协议。目前为止DHCP主要为以下几个工作流程:
在这里插入图片描述
  在REQUEST报文还可以细分为以下几种类型(具体信息请参见DHCP协议):
在这里插入图片描述


ESP-IDF的DHCP服务器流程

  在ESP-IDF库中,DHCP服务器相关部分代码根据实际需要,只实现了表2中编号A、B、D的流程,如下图所示:
在这里插入图片描述
在这里插入图片描述
  由图1所示,DHCP服务处理过程可分为以下几个主要过程:

  1. 提取报文中Client的mac地址,与本地的地址池中已经注册的Client链表进行比较,以确认Client 是否已经在Server中注册过租赁信息,存在则进行提取出来备用,若没找到,则在地址池中创建一 个可用的IP租赁信息,若地址池已经满了,那么只能向Client发送一个NAK报文。
  2. 将提取的IP租赁信息中的IP字段与报文中的Client的IP进行比对,一致则认为是RENEWING 或者REBINDING报文请求,此时重置IP租赁信息中的租赁时间,并标志renew标志。
  3. 分析options字段,若是DISCOVER报文则发送OFFER报文。若是REQUEST报文则根据 REQUEST类型来确定回应ACK还是NAK。若是RELEASE报文则释放相关的IP租赁信息。

疑问

  1. 代码中没有实现DECLINE功能,如果IP地址发生冲突,Server无法进行处理,只能等待IP租赁 信息超时释放后才可再一次使用。
  2. 若在同一个范围内有两个DHCP Server,都对同一个Client回应了OFFER,当Client只租赁了其 中一个Server的IP租赁,那么另外一个无法及时释放,也只能等IP租赁 信息超时释放后才可在一 次使用。


本文链接: http://www.dtmao.cc/news_show_200138.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?