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

DHCP补充

  • 摘要
  • 关键词说明
  • Client的报文填充
  • Server的报文填充
  • client填充的相关options
  • Server填充的相关options
  • server通过收到的报文如何知道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协议中有所定义
补充:对DHCP协议的报文细节补充_第1张图片

Server的报文填充

补充:对DHCP协议的报文细节补充_第2张图片

client填充的相关options

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

补充:对DHCP协议的报文细节补充_第3张图片

Server填充的相关options

补充:对DHCP协议的报文细节补充_第4张图片

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

特别是收到DHCP Request报文时,此时DHCP可能处于四种状态,必须要判断各种状态,进行不同处理,下面的图列出
集中不同状态的特征。
补充:对DHCP协议的报文细节补充_第5张图片
根据上述的特征,就可以很容易区别DHCP状态,例如下面的流程图,供参考:
补充:对DHCP协议的报文细节补充_第6张图片

说明

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

你可能感兴趣的:(DHCP,网络,经验分享,程序人生)