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 ...
随机推荐
- python locust 性能测试:HttpSession
官网解释:用于在请求之间执行Web请求和保留(会话)cookie的类(以便能够登录和退出网站):记录每个请求,以便locust可以显示统计信息: from locust import TaskSet, ...
- 深入浅出Java探针技术2---java字节码生成框架ASM、Javassist和byte buddy的使用
目前Java字节码生成框架大致有ASM.Javassist和byte buddy三种 ASM框架介绍及使用 1.ASM介绍 ASM是一种Java字节码操控框架,能够以二进制形式修改已有的类或是生成类, ...
- linux 网络设置
centos7 ifcfg-ens33静态ip地址配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHO ...
- 《视觉SLAM十四讲课后作业》第一讲
1. 如何在 Ubuntu 中安装软件(命令⾏界⾯)?它们通常被安装在什么地⽅? 答:一般有两种安装方式(1)apt-get install (2)dpkg -i package.deb.系统软件一般 ...
- Labels & Codes
Labels & Codes List of Codes Adjectives Nouns Verbs Other labels Adjectives adjective A word th ...
- Java基础学习-基本数据类型变量的定义和使用
注意:如果使用notepad++编码,在cmd控制台编译时报错(编码GBK的不可映射字符),可以参考如下链接进行设置:https://jingyan.baidu.com/article/e3c78d6 ...
- 论文笔记:Prediction-Tracking-Segmentation
Prediction-Tracking-Segmentation 2019-04-09 18:47:30 Paper:https://arxiv.org/pdf/1904.03280.pdf 之所以要 ...
- 论文笔记:Learning Attribute-Specific Representations for Visual Tracking
Learning Attribute-Specific Representations for Visual Tracking AAAI-2019 Paper:http://faculty.ucmer ...
- 编码原则 之 Stable Dependencies
The Stable Dependencies Principle states that “The dependencies between software packages should be ...
- HTTP之gRPC
gRPC 官方文档 gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计. gRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多 ...