补充:对DHCP协议的报文细节补充

摘要

1、在这篇博客中https://blog.csdn.net/Kuaisen/article/details/107568797讲述了DHCP的工作流程、状态转换以及报文的分析。
2、但是对于一些具体的细节没有说明,比如,报文的字段,Client和Server又怎么使用,对于DHCP的状态又怎么去区别等等,下面就阐述一下

关键词说明

引用了在RFC文档中常用到的关键词说明
MUST:表示必须携带,不携带就是不正确
MUST NOT:表示绝对不可以携带
SHOULD:表示推荐使用此选项
SHOULD NOT:表示不推荐使用,除非有其他可接受的理由
MAY:表示可选的,不同厂商根据项目特定需求可加可不加

Client的报文填充

具体了解client在组装各种封包是,应该填充哪些字段?字段的值是怎么来的?也可以看出一些特点,比如yiaddr、siaddr以及giaddr字段
client都不需要关心。htype和hlen的值根据硬件类型来决定,图中标出的是常用的10M以太网,其他类型在ARP协议中有所定义
client报文字段细节

Server的报文填充

server报文填充细节

client填充的相关options

区别这些有什么用?一是帮助我们知道在组装报文时,哪些一定要填,哪些一定不要填,哪些可以自己按照情况进行配置?
二是,在收到各种报文时,第一步就需要检查这些报文是否正确,才可以进行后面的处理。特别是标注Must和Must not的,
如果收到一种报文,没有包含Must要求的选项或者包含可Must not的选项,那么就需要丢弃这个报文。下面serevr端的也是一样。
options字段的定义,可以参考另一篇文档。https://blog.csdn.net/Kuaisen/article/details/107772481

client填充的相关options

Server填充的相关options

server 填充的options

server通过收到的报文如何知道DHCP的状态

特别是收到DHCP Request报文时,此时DHCP可能处于四种状态,必须要判断各种状态,进行不同处理,下面的图列出
集中不同状态的特征。
区分DHCP 状态
根据上述的特征,就可以很容易区别DHCP状态,例如下面的流程图,供参考:
DHCP状态 process

说明

1、参考了RFC 2131,以及个人再看DHCP源码是总结的部分
2、对之后的错误或者补充将在评论或者其他篇幅中阐述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值