博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DHCP 简析
阅读量:6307 次
发布时间:2019-06-22

本文共 1405 字,大约阅读时间需要 4 分钟。

一、DHCP (Dynamic Host Configuration Protocol)

DHCP 的客户端的端口号为68;DHCP的服务端的端口号为67.

DHCP的报文格式:

DHCP 简析
下面是一些重要字段:
Op:1 表示客户端请求报文
        2 表示服务端的应答报文

htype:硬件类型

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

ciaddr:client的IP地址

yiaddr:server给client的IP
siaddr:next server IP address
giaddr:DHCP中继的IP地址(注意:不是网关地址)当客户端发出DHCP请求时,如果服务器和客户端不在同一个网络中,那么第一个DHCP中继在转发这个DHCP请求报文时会把自己的IP地址填入此字段。服务器会根据此字段来判断出网段地址,从而选择为用户分配地址的地址池。服务器还会根据此地址将响应报文发送给此DHCP中继,再由DHCP中继将此报文转发给客户端。
若在到达DHCP服务器前经过了不止一个DHCP中继,那么第一个DHCP中继后的中继不会改变此字段,只是把Hops的数目加1。
chaddr:client hardware address 服务端的硬件地址。
option:该字段表示DHCP的选项字段,至少为312字节,格式为"代码+长度+数据"。DHCP通过此字段包含了服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用IP地址的有效租期等信息。
OPTIONS字段:
DHCP 简析

二、Message type:8种报文类型。

discovery:客户端开始DHCP过程发送的包,是DHCP协议的开始

offer:服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息
request:客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用
ack:服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。
nck:DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。
release:一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址
inform:客户端发出的向服务器请求一些信息的报文
decline:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止
使用该IP地址。

三、客户端与服务器之间的交互:

Client ---discover→-- Server 广播

Client ←--offer---------Server 单播
Client ----request→---Server 广播
Client ←---ack---------Server 单播
注意上述讲的广播、单播是指三层的。
 
抓包如下:
DHCP 简析

转载于:https://blog.51cto.com/jackor/2090957

你可能感兴趣的文章
浅谈代理
查看>>
php创建桌面快捷方式实现方法
查看>>
基于jquery实现的超酷动画源码
查看>>
fl包下的TransitionManager的使用
查看>>
Factorialize a Number
查看>>
[USB-Blaster] Error (209040): Can't access JTAG chain
查看>>
TreeSet的用法
查看>>
防HTTP慢速攻击的nginx安全配置
查看>>
深入理解PHP内核(十四)类的成员变量及方法
查看>>
Spring Boot2.0+中,自定义配置类扩展springMVC的功能
查看>>
参与博客编辑器改版,我的礼物 感谢51cto
查看>>
JavaWeb笔记——JSTL标签
查看>>
Eclipse插件大全 挑选最牛的TOP30
查看>>
一些实用性的总结与纠正
查看>>
Kubernetes概念
查看>>
逻辑卷管理器(LVM)
查看>>
一个小代码,欢迎大佬的意见,求指正
查看>>
搭建LAMP架构
查看>>
神经网络注意力机制--Attention in Neural Networks
查看>>
Spring.Net+WCF实现分布式事务
查看>>