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 ...
随机推荐
- 【转】git示意图
- coredump文件抓取设置
ulimit -c unlimitedecho 1 > /proc/sys/kernel/core_uses_pidecho "/tmp/core-%e-%s-%u-%g-%p-%t& ...
- 为什么做java开发的公司需要那么多程序员?
注:文章转载自知乎 透过现象看本质. Java是企业应用市场的王者,如果一家非互联网公司用Java,那么十有八九是做企业应用的. 所以,这个问题本质上是:为什么做企业应用的公司需要那么多Java程序员 ...
- APP压力测试 monkey(新猿旺学习总结)
安卓APP做压力测试 需要配置JDK(Java)和 配置SDK 遮掩才能使用adb命令连接手机进行模拟动作事件进行压力测试 配置 K JDK 与 K SDK 环境 a java 与 与 sdk 用于 ...
- Js重拾
如果重新声明 JavaScript 变量,该变量的值不会丢失: 在以下两条语句执行后,变量 carname 的值依然是 "Volvo": var carname="Vol ...
- k8s构建镜像-基于centos的python环境+pip
FROM centos:7.4.1708 #维护者信息MAINTAINER by icdss # 标签LABEL version="1.0" # 安装依赖RUN yum -y up ...
- MapReduce编程模型简介和总结
MapReduce应用广泛的原因之一就是其易用性,提供了一个高度抽象化而变得非常简单的编程模型,它是在总结大量应用的共同特点的基础上抽象出来的分布式计算框架,在其编程模型中,任务可以被分解成相互独立的 ...
- JavaWeb案例:登陆和注册
mvc开发模式简介 M: Model模型 JavaBeanV:view视图 JSPC:Controller控制器 Servlet 其实就是JSP + Servlet + JavaBean上面的Java ...
- Android系统分析之运营商显示流程分析之运营商信息的读取流程二
运营商显示流程分析之运营商信息的读取流程 一. SIM卡运营商信息的读取 从前面的 运营商信息的获取和赋值 可以知道SIM卡运营商的赋值最终是在 SIMRecords 中完成的, 而SIM卡信息的相关 ...
- Servlet使用注解配置URl提示404错误
刚接触servlet 3.0,使用注释描述servlet @WebServlet(name="FirstServlet", urlPatterns="/FirstServ ...