参考资料:

百度百科:https://baike.baidu.com/item/DHCP/218195?fr=aladdin

DHCP:Dynamic Host Configuration Protocol,动态主机配置协议。该协议是一种局域网网络协议。主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

1、DHCP报文结构如下:

DHCP封包在传输层( Transport Layer)是采用UDP协议,而当 Client传送给封包给 Server时,采用的是UDP 67 Port,从 Server传送给 Client则是使用UDP 68 Port。 [3]

DHCP的封包格式如右图所示,各字段定义如下

OP:

若是 client 送给 server 的封包,设为 1 ,反向为 2。

HTYPE:

硬件类别,Ethernet 为 1。

HLEN:

硬件地址长度, Ethernet 为 6。

HOPS:

若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0。

TRANSACTION ID:

DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据。

SECONDS:

Client 端启动时间(秒)。

FLAGS:

从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client ,bit为0时标示server将以单播的方式传递封包给client,其余bit尚未使用。

ciaddr:

要是 client 端想继续使用之前取得之 IP 地址,则列于这里。

yiaddr:

从 server 送回 client 之 DHCP OFFER 与 DHCP ACK封包中,此栏填写分配给 client 的 IP 地址。

siaddr:

若 client 需要透过网络开机,从 server 送出之 DHCP OFFER、DHCP ACK、DHCP NACK封包中,此栏填写开机程序代码所在 server 的地址。

giaddr:

若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0。

chaddr:

Client 之硬件地址。

sname:

Server 之名称字符串,以 0x00 结尾。

file:

若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。

2、报文种类:

DHCP DISCOVER:由client端发起,目的是向server发起dhcp请求。

DHCP OFFER:由server端发起,目的是告诉client端“我能给你分配的ip是这个啊”。这个数据包中携带的信息有:我(server)的信息是谁,我能给你分配的ip是什么。

DHCP REQUEST:由client端发出,告诉提供ip地址分配的server端“我用你给我分配的ip”,这个数据包中需要携带信息表明:server端是谁,要用的ip地址是谁。

DHCP ACK:由server端发出,告诉client端“好的,就这么定了,你就用我给你分配的ip吧”。

3、抓包分析:

打开windows的cmd.exe,依次输入:

ipconfig –release

ipconfig –renew

利用wireshark软件抓取数据包,过滤协议dhcp。

3.1 DHCP Discover

我们在这里只分析应用层数据包。

Bootp flags:0表示单播,1表示广播,这里为1,即DHCP服务端回复的DHCP Offer报文应为单播形式。

部分书上讲述的DHCP四个包都是使用广播的方式进行,实际上DHCP Offer和DHCP Ack这两个数据包是广播还是单播是由DHCP的客户端发送的数据包来决定的。

因为如下信息此时对于client端来说都是未知的,所以填充的值如下:

Client IP address: 0.0.0.0

Your (client) IP address: 0.0.0.0

Next server IP address: 0.0.0.0

3.2 DHCP OFFER

DHCP服务器能够提供的ip地址为192.168.0.103,是通过广播的方法回复的啊。该数据包中携带了服务器的ip地址、router、子网掩码等信息。

3.3 DHCP Request

client通过广播的方式表明自己要用的ip地址信息(用哪个服务器提供的),如果有其他dhcp服务器收到了该广播包,则将其通过的ip地址再次放到可用的地址池中。

3.4 DHCP ACK

dhcp server搜到Request数据包后,判断出来是要用自己提供的ip,则给client端回复一个ack包,里面携带分配给client端的ip地址等一系列信息。

Dhcp Release/Dhcp inform/Dhcp NAck包等在这里就不进行分析了。

网络协议-dhcp报文分析相关推荐

  1. 计算机3级网络技术综合题第3题(DHCP报文分析)解题总结

    前言 综合题第3题一般为DHCP报文分析,给你一段报文然后对此进行分析,分为两种情况: (1)客户机向服务器申请IP地址 (2)客户机ip地址租期准备到期,要向服务器申请续租 一.情况1:客户机向服务 ...

  2. 网络协议图形化分析工具EtherApe

    网络协议图形化分析工具EtherApe 在对网络数据分析的时候,渗透测试人员往往只关心数据流向以及协议类型,而不关心具体数据包的内容.因为这样可以快速找到网络的关键节点或者重要的协议类型. Kali ...

  3. UNIX 网络协议的深度分析

    https://www.ibm.com/developerworks/cn/aix/library/au-deepprotocolanalysis/index.html?mhq=http%E5%8D% ...

  4. 实验二网络协议以太网帧分析

    实验二 以太网帧分析 实验目的:掌握以太网的帧首部格式,理解其功能与含义. 原理概述: 在有线局域网中,目前只有一种,即以太网.下图是以太网的帧格式. 实验内容步骤: IP地址用于标识因特网上每台主机 ...

  5. dhcp 服务器发出了 dhcpnack 消息,跪求DHCP报文分析

    1. 寻找Server.当DHCP客户端第一次登录网路的时候,也就是客户发现本机上没有任何IP资料设定,它会向网路发出一个DHCPDISCOVER封包.因为客户端还不知道自己属于哪一个网路?所以封包的 ...

  6. 关于手游网络协议的简单分析

    前言 大多数加密方案都假定可信的发送者和接收者会通过一个不可信的通道通信. 虽然假设发送者会故意尝试愚弄接收者有点荒谬,但这确实是摆在开发者面前的问题.有些玩家是不可信的, 更糟的是, 他们能够通过客 ...

  7. 使用wireshark抓包并进行网络协议分析

    前言 今天想通过抓包实验,巩固一下所学习的网络协议.同时,在知识点上会加上以前遇到的一些问题.这次实验并不是对所有的网络协议都进行分析,而是从下面这个问题出发(面试常被问).从这一过程中复习学过的网络 ...

  8. 网络原理DHCP 安全

    动态主机配置协议(DHCP:Dynamic Host Configuration Protocol),提供了一种动态分配网络配置参数的机制. DHCP协议是一种client/server模式的网络协议 ...

  9. 网络协议从入门到底层原理(6)应用层 - 域名、DNS、DHCP、HTTP(ABNF、HTTP报文格式、请求方法、头部字段、状态码、跨域)、代理、CDN

    应用层 域名( Domain Name)- 顶级域名.二级域名 DNS - DNS服务器.常用命令 DHCP(DISCOVER.OFFER.REQUEST.ACKNOWLEDGE) HTTP HTTP ...

  10. DHCP协议说明及报文分析

    DHCP几个概念: DHCP Client:DHCP客户端,通过DHCP协议请求IP地址的客户端.DHCP客户端是接口级的概念,如果一个主机有多个以太接口,则该主机上的每个接口都可以配置成一个DHCP ...

最新文章

  1. 平头哥发布一站式芯片设计平台“无剑”,芯片设计成本降低50%
  2. 《数据结构》第01章在线测试
  3. 事物与数据库底层数据
  4. QML笔记-2种方式实现心脏跳动
  5. Xcode7 添加PCH文件
  6. VC++开发演算稿式计算语言-可编程绘图的计算器
  7. Ionic 4.0.2 发布,移动应用开发框架
  8. 从下列选项中选择正确的java表达式,java笔试常见的选择题
  9. GOOGLE 分布式系统关键技术论文分析
  10. Halcon图像预处理与形态学(图像的点运算)
  11. strike F1 to retry boot,F2 for setup utility
  12. Oracle expdp
  13. 高等数学干吗要研究级数问题?
  14. 2019年VQA论文整理
  15. 互联网史话----十亿美金之51
  16. 百度SiteApp构建网站APP
  17. SpringBoot 的请求参数校验注解
  18. 在vue.js中实现a标签href tel的打电话功能
  19. ospf协议(包含负载分担)
  20. 解决小米miui系统调用系统裁剪图片功能崩溃失败的问题

热门文章

  1. STM32单片机初学1-STM32介绍
  2. 格志AK890打印驱动安装
  3. 微信小程序订单支付后端demo
  4. python print文本和数字混合_详解Python中的文本处理
  5. jz2440裸机开发与分析:S3c2440ARM异常与中断体系详解8---定时器中断程序示例
  6. 别让PPT把你绑架了
  7. xp无法访问win7计算机提示无权限,解决WinXP无法访问Win7文件问题
  8. 优化问题---切线、切向量、切平面;法线,法向量,法平面
  9. 单设施布置方法-精确重心法
  10. 图论 ——五种最短路算法