DHCP协议分析(Wireshark)
一、说明
一是很多时候IP都是设置成通过dhcp动态获取的,但一直不太清楚dhcp的具体交互过程;二是加上前几天有同事问知不知道DHCP具体交互过程;三是这两天正好在分析协议。所以就顺道来看一下。
如果对wireshark不太熟悉,可参考"wireshark捕获/显示过滤器表达式书写规律说明"。
二、DHCP协议
2.1 通俗版解释
【客户端小C(RELEASE):S1老哥,你给我的x.x.x.x这个IP我不用了哦。】
客户端小C(DISCOVERY):谁给我个IP啊?
服务器S1(OFFER):y.y.y.y,拿去用吧。
【服务器S2(OFFER):z.z.z.z,拿去用吧。】
客户端小C(REQUEST):y.y.y.y,那我就用这个了哦。
服务器S1(ACKNOWLEDGE):用吧,不过x小时后我就自就回收了,如果你要继续用在剩y小时的时候你要跟我说一声。
客户端小C(INFORM):ok,那我就用了。你我只要注意你刚才说的就行了对吧。
服务器S1(ACKNOWLEDGE):对滴。
2.2 技术性解释
dhcp使用udp进行通信,一般来说客户端通过68端口发出,服务端在67端口监听。
整个dhcp获取ip的过程包括以下六步:DISCOVERY、OFFER、REQUEST、ACKNOWLEDGE、INFORM、再次ACKNOWLEDGE。具体实现时可能没有后两步。

在数据包格式上各请求和响应都大同小异,主要是Option字段多些少些的区别。

2.3 获取dhcp数据包
以windows操作为例。
第一步,打开控制面板--网络和 Internet--网络和共享中心-xx连接x--属性--Internet 协议版本4(TCP/IP 4)--属性,把自己网卡设置成自动获得IP地址。

第二步,打开wireshark对网卡进行抓包。
第三步,使用以下命令释放已获取到的IP地址,然后重新申请IP地址。
# 释放当前已获取IP地址。执行此命令主机会向之前分配IP的DHCP服务器发送RELEASE请求
ipconfig /release
# 获取IP地址。执行此命令会完成dhcp申请过程
ipconfig /renew
第四步,在wireshark过滤器中输入bootp即可过滤出dhcp过程。如下图所示可见整个过程与上两小节描述的一致

不同操作系统对dhcp客户端的实现可能有些差别,比如下边是海思一块板子的dhcp过程。请求会发三遍,然后没有INFORM。

参考:
https://wenku.baidu.com/view/8fdeb5ddcf84b9d529ea7a59.html
https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
DHCP协议分析(Wireshark)的更多相关文章
- 协议分析 - DHCP协议解码详解
协议分析 - DHCP协议解码详解 [DHCP协议简介] DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...
- PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
Python黑帽编程1.5 使用Wireshark练习网络协议分析 1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...
- wareshark网络协议分析之DHCP
声明:本文关于DHCP协议介绍部分摘自百度百科 一.DHCP协议介绍: DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用 ...
- 很好的 DHCP协议与dhcpcd分析【转】
本文转载自:http://blog.csdn.net/gjsisi/article/details/18052369 第一部分 DHCP工作过程 DHCP的工作过程主要分为以下六个阶段: 发现 ...
- dhcp协议抓包分析
dhcp协议 DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client). wires ...
- 计算机网络-DHCP协议抓包分析总结
前置问题:什么是(网络)协议? 网络协议为计算机网络中进行数据交换而建立的规则.标准或约定的集合. 而且: 一个网络协议至少包括三要素: 语法:用来规定信息格式;数据及控制信息的格式.编码及信号电平等 ...
- 哈工大 计算机网络 实验四 利用 Wireshark 进行协议分析
计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 利用 Wireshark 进行协议分析 实验目的: 本次实验的主要目的. 熟悉并掌握Wireshark的基本操作,了解网络协议实 ...
- 计算机网络实验 Labexercise1-1 Protocol Layers(Wireshark抓包与协议分析实验)
计算机网络实验 Labexercise1-1 Protocol Layers(Wireshark抓包与协议分析实验) 前言:本博客包含Windows10下安装wget.Wireshark. 一些有用的 ...
- 协议分析TMP
最近闲来有事, 分析了一个非常低端(非常低端的意思是说你不应该对她是否能取代你现有的QQ客户端作任何可能的奢望,她只是一个实验性的东西)的手机QQ的协议, 是手机QQ3.0, 所用到的TCP ...
随机推荐
- 【融云分析】如何实现分布式场景下唯一 ID 生成?
◀背景▶ 对于一套分布式部署的 IM 系统,要求每条消息的 ID 要保证在集群中全局唯一且按生成时间有序排列.如何快速高效的生成消息数据的唯一 ID ,是影响系统吞吐量的关键因素.那么,融云是如何做到 ...
- Porsche Piwis Tester II V15.6 with CF30 Laptop or Lenovo E49AL Laptop
Some of my customers let me recommended which auto diagnostic tool is good for Porsche , I recommend ...
- 在sql中select的执行顺序
<select{[distinct |all] columns |*}> [into table_name] <from {tables |views | other select} ...
- MySQL相关问题题
1.truncate.delete.drop的区别 (1)truncate.drop是不可以rollback的,但是delete是可以rollback的.DELETE语句执行删除的过程是每次从表中删除 ...
- tomcat部署jfinal项目
1:创建一个目录: /var/www 2:为将要部署的项目创建一个目录, /var/www/my_project 3:将项目打成 war 包, 然后解压到 /var/www/my_project ...
- 【源码】HashMap源码及线程非安全分析
最近工作不是太忙,准备再读读一些源码,想来想去,还是先从JDK的源码读起吧,毕竟很久不去读了,很多东西都生疏了.当然,还是先从炙手可热的HashMap,每次读都会有一些收获.当然,JDK8对HashM ...
- 前后端通信中使用Ajax与后台接口api交互(以登录功能为例)
一.查阅开发文档 首先,要做这个功能前,我们必须先查阅后台接口文档,了解使用登录接口时,需要提交哪些参数,并且接口使用返回的数据. 这里我使用了一个返回json格式数据的登录接口为例,讲解怎么使用Aj ...
- 2019MABU3月班——SAP导入总账科目小笔记
1. 在目录中找到“集中” 2.总账科目这里输入代码,公司代码为3000 3. 点“创建” 4. 然后可以填下面这些了 5. 转到“创建/银行/利息” 6. 选字段状态组 7. 保存 8.大功告成.
- 程序员 面试题【前端,java,php】
跬步客 网址:https://www.kuibuke.com/wall/index
- Java反射操作成员变量 Class can not access a member with modifiers "*"
fields[j].set(obj, val); 报: Exception in thread "main" java.lang.IllegalAccessException: C ...