DHCP报文格式

DHCP报文格式

报文格式

DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。

DHCP的报文格式如下图所示。

图1 DHCP报文格式

DHCP报文中各字段的含义:


字段


长度


含义


OP


1字节


表示报文的类型:

  • 1:客户端请求报文
  • 2:服务器响应报文

htype


1字节


表示硬件地址的类型。对于以太网,该类型的值为“1”。


hlen


1字节


表示硬件地址的长度,单位是字节。对于以太网,该值为6。


Hops


1字节


跳数。客户端设置为0,也能被一个代理服务器设置。


xid


4字节


事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数。


secs


2字节


由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数。


flags


2字节


此字段在BOOTP中保留未用,在DHCP中表示标志字段。

图2 Flags字段格式

只有标志字段的最高位才有意义,其余的位均被置为0。

最左边的字段被解释为广播响应标志位,内容如下所示:

  • 0:客户端请求服务器以单播形式发送响应报文
  • 1:客户端请求服务器以广播形式发送响应报文

ciaddr


4字节


客户端的IP地址。只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。


yiaddr


4字节


"你自己的"或客户端的IP地址。


siaddr


4字节


表明DHCP协议流程的下一个阶段要使用的服务器的IP地址。


giaddr


4字节


该字段表示第一个DHCP中继的IP地址(注意:不是地址池中定义的网关)。当客户端发出DHCP请求时,如果服务器和客户端不在同一个网络中,那么第一个DHCP中继在转发这个DHCP请求报文时会把自己的IP地址填入此字段。服务器会根据此字段来判断出网段地址,从而选择为用户分配地址的地址池。服务器还会根据此地址将响应报文发送给此DHCP中继,再由DHCP中继将此报文转发给客户端。

若在到达DHCP服务器前经过了不止一个DHCP中继,那么第一个DHCP中继后的中继不会改变此字段,只是把Hops的数目加1。


chaddr


16字节


该字段表示客户端的MAC地址,此字段与前面的“Hardware
Type”和“Hardware Length”保持一致。当客户端发出DHCP请求时,将自己的硬件地址填入此字段。对于以太网,当“Hardware
Type”和“Hardware Length”分别为“1”和“6”时,此字段必须填入6字节的以太网MAC地址。


sname


64字节


该字段表示客户端获取配置信息的服务器名字。此字段由DHCP Server填写,是可选的。如果填写,必须是一个以0结尾的字符串。


file


128字节


该字段表示客户端的启动配置文件名。此字段由DHCP Server填写,是可选的,如果填写,必须是一个以0结尾的字符串。


options


可变


该字段表示DHCP的选项字段,至少为312字节,格式为"代码+长度+数据"。DHCP通过此字段包含了服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用IP地址的有效租期等信息。

DHCP Options


Option id


长度(字节)


描述


1


4


Subnet Mask


3


n*4


Router(网关)


6


n*4


DNS Server


7


n*4


Log Server


26


2


Interface MTU


33


n*8


Static route


35


4


ARP cache timeout


42


n*4


NTP servers


51


4


IP address lease time


53


1


Message type:

  • 1-DHCPDISCOVER
  • 2-DHCPOFFER
  • 3-DHCPREQUEST
  • 4-DHCPDECLINE
  • 5-DHCPACK
  • 6-DHCPNAK
  • 7-DHCPRELEASE
  • 8-DHCPINFORM

54


4


DHCP Server Identifier


60


n


华为自定义:可配置该终端设备在发起DHCP请求时,通过Option
60携带域信息。收到DHCP报文时,可根据Option
60中携带的域信息来分配IP地址。


82


n


华为自定义:作为DHCP Relay,在中继用户DHCP报文时,可在Option 82中填写用户的物理位置信息,通知DHCP服务器按物理位置信息对为用户分配IP地址。

报文示例

图3 DHCP报文格式(discover阶段)

图4 DHCP报文格式(offer阶段)

图5 DHCP报文格式(request阶段)

图6 DHCP报文格式(ACK阶段)

原文地址:https://www.cnblogs.com/guang-li/p/12129475.html

时间: 2024-10-09 03:02:58

DHCP报文格式的相关文章

DHCP原理及报文格式

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是IETF为实现IP的自动配置而设计的协议,它可以为客户机自动分配IP地址.子网掩码以及缺省网关.DNS服务器的IP地址等TCP/IP参数.了解DHCP工作过程可以帮助我们排除有关DHCP服务遇到的问题.DHCP 协议是基于UDP层(这也就是说在snort检测过程中,只能看UDP的包)之上的应用,dhcp使用udp携带报文,udp封装在ip数据包中发送.我们先来看下dhcp报文格式 OP:若是cl

DHCP报文

一:DHCP协议● 链路层头: 承载报文的链路层信息头,常见的有Ethernet_II格式.802.1Q格式. IEEE802.3格式.令牌环链路层头格式等.● IP头: 标准的IP协议头,IPV4中长度为20bytes,包括了SrcIp(源IP),DstIp(目的IP)等信息.● UDP头: 8bytes,包括了SrcPort(源端口),DstPort(目的端口),报文长度及UDP校验和等信息.● DHCP报文:具体的DHCP报文内容. 二.DHCP报文类型详解 DHCP DiscoverDH

HTTP报文格式

 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. 请求报文 一个HTTP请求报文由请求行(request line).请求头部(header).空行和请求数据4个部分组成,下图给出了请求报文的一般格式. (1)请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.例如,GET /index.html HTTP/1.1. HTTP协议的请求方法有GET.POST.HEA

TCP报文格式,TCP的三次握手和四次挥手&hosts文件

1.TCP报文格式 TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接 序号(4字节=32位): 37 59 56 75 用来标识TCP发端向TCP收端发送的数据字节流 确认序号(4字节=32位): 由于该报文为SYN报文,ACK标志为0,故没有确认序号(ACK标志为1时确认序号才有效)TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 一旦连接建立,该值将始终发送(同ACK标志) 头部长度:该字段占用4位,用来表示报文首部

SOAP学习,构建实际的报文格式

因为需要做一个SOAP的接口对接,对方环境没有弄好不能抓包,也只会调用不懂格式构成,我们只想做个轻量级的接口,不需要支持SOAP的具体格式,只需要针对接口指定的具体参数名,解析字符串就可以了. 所以需要通过抓包确定一下soap的报文格式,方便做字符串解析和报文拼装. 因此准备构建一个php的soap环境,进行抓包. 当前环境 centos6.3系统,默认php不支持soap,下载了php5.6版本 编译 ./configure  '--with-libxml-dir=/usr/lib' '--w

报文格式【定长报文】

定长报文简介 定长报文,是目前使用最广泛的报文,同时比较简单的报文格式.理解起来也较为简单,但定长报文也有自身的局限性.其中最大的问题在于,如果定义域的长度需要加长,这时候相关的配置与程序代码都需要进行相应的改变,所以维护很不方便. 定长报文,就是使用固定的长度来表示一个信息.本报文格式常见于金融银行业,所以以银行开户场景为例说明,例如银行柜面开户时,需要记录开户人的姓名,假定用户名用30个字节来表示,这样应该就可以满足国人的需要,15个汉字长度.当然我们这里也有开户时间的需要,那我们假定为8位

LLDP报文格式

前面已经知道了Floodlight Controller是通过从SW发送LLDP帧来获得链路信息的,链路层发现协议(L2)是通过在本地网络中广播LLDP报文来通告自己的设备信息,从而服务于拓扑计算,(wikipedia:LLDP information is sent by devices from each of their interfaces at a fixed interval, in the form of an Ethernet frame. Each frame contains

ARP地址解析协议<四>——ARP地址规格参数和通用地址及报文格式

1.ARP的基本操作: 就是本地网络中的一对请求和响应的传输. 理解:源(要发送IP数据报的设备)发送一个包含目的地(接收数据报的一方)信息的广播,目的地则使用单播向该源发回一个响应,告诉源那个目的地的MAC地址. 2.ARP报文类型: 首先,在ARP中发送了2种不同的报文,分别是,从源到目的地和从目的地到源.发送方是发送报文,目标方是接收报文.发送方和目标方的身份对每个报文都不一样,根据具体的情况而定. 3.发送方和目标方的身份是如何用于请求和回答的呢? 首先,再先介绍4个关键词: 请求.回答

HTTP POST请求报文格式分析与Java实现文件上传

时间 2014-12-11 12:41:43  CSDN博客 原文  http://blog.csdn.net/bboyfeiyu/article/details/41863951 主题 HTTPHttpComponents 在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较麻烦的事情就是构造文件上传的HTTP报文格式,这个格式虽说也比较简单,但也