计算机网络-DHCP协议抓包分析总结
前置问题:什么是(网络)协议?
网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
而且:
一个网络协议至少包括三要素:
语法:用来规定信息格式;数据及控制信息的格式、编码及信号电平等。
语义:用来说明通信双方应当怎么做;用于协调与差错处理的控制信息。
时序:定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。
简单的来说,就是说话交流的过程,两方要说话,相互听得懂,那么得满足:
①:说的同一个语言(语法)
②:说的话表达了明确的意思(语义)
③:话讲的有条理,能被理解(时序)
清楚了这一点,我们就可以开始分析协议了。
主机申请IP:DHCP动态主机配置协议
①:客户端广播DHCP消息“Discover”
所有的服务器端都可以收到这个消息。
②:服务器提供租约“Offer”
所有的服务器端都会提供一个响应,Offer报文中“Your(Client) IP Address”字段就是服务器端能供使用的IP地址。
且服务器端会将自己的IP地址放在“option”字段中以便客户端区分不同的服务器端。
服务器端在发出此报文后会存在一个已分配IP地址的纪录。
③:客户端选择并请求租用“Request”
客户端只能处理其中的一个DHCP Offer报文,一般的原则是客户端处理最先收到的DHCP Offer报文,客户端会发出一个广播的DHCP Request报文,在选项字段中会加入选中的服务器端的IP地址和需要的IP地址
服务器端收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同,如果不相同,服务器端不做任何处理只清除相应IP地址分配记录;如果相同,服务器端就会向客户端响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
④:服务器确认将地址租用给客户端“ACK”
客户端接收到DHCP ACK报文后,检查服务器端分配的IP地址是否能够使用。如果可以使用,则客户端成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果客户端发现分配的IP地址已经被使用,则客户端向服务器端发出DHCP Decline报文,通知服务器端禁用这个IP地址,然后客户端开始新的地址申请过程。
了解了DHCP协议的基本运行规则,就可以使用wireshack工具进行分析了。
Wireshack分析DHCP报文
在过滤器上输入bootp,显示如下
下面,我们通过抓包分析其报文,讲讲白话解释来理解一下DHCP的过程,DHCP的报文有以下基本格式:
但看这么一串僵硬的文字肯定不是很舒服,我们选取一些重要信息理解一下,我们把客户端向服务器端请求ip看作找工作的过程:
我们先看Discover阶段:
这段的意思,可以说是,一个用户要找工作,他往给网上的某个“招聘群”里发了一条消息,说“我要找工作!”
我们看到:
消息类型 :boot request(1),表示这条信息是“请求包”,请求包是客户端发出的;
bootp 标志 :其中第一位为 0 表示单播,为 1 表示广播,但是其是在从服务器发出的才有用,此处无用;
一系列 IP 地址 :都是 0.0.0.0,因为还没有确定;
MAC 地址 :显示了设备的 MAC 地址;
DHCP 消息类型 :表示了该条信息的类型。
再看Offer阶段:
这一段的意思,可以理解成,看到了这一个用户的消息,猎头们纷纷给该用户提供自己的工作环境信息和工资等。
和Discover阶段不同的是,我们看到消息类型变成了回复包、服务器向客户端的单播有了具体的地址,即设备的物理地址、在your (client) IP address中出现可以提供的地址,此外,在Option中还可以查看服务器端的子网掩码,域名等信息。
再看Request阶段:
这一阶段可理解为,用户接受了某个猎头提供的工作,并且告诉其他的猎头:“我找到工作了,不用再发offer了”。
这里还是广播,但是我们可以看到这边的已经将一系列信息,如:主机名称、申请的哪一个服务器、申请的ip等广播出去,收到的服务器就会停止发送offer,提供服务的服务器就会记录该客户端申请的地址。
最后是ack阶段:
相当于是客户跟着猎头去公司,签了个合同,就成功的入职了。
当服务器收到客户端回答的Request信息之后, 它便向客户端发送一个包含它所提供的IP地址和其他设置的Ack确认信息。以确认IP地址的正式生效。然后客户端便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
总结:
至于offer和ack阶段的目标地址到底是广播还是单播,可以参考一下博文:
https://www.zhihu.com/question/280872108?sort=created
计算机网络-DHCP协议抓包分析总结的更多相关文章
- dhcp协议抓包分析
dhcp协议 DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client). wires ...
- 【计算机网络】wireshark抓包分析1
学习计算机网络很久了,但总是局限于书本知识,感觉get不到重点.经师兄建议用wireshark抓包分析看看. 我自己以前并没有做过抓包分析,所以这篇博文可能会有很多错误,只是我自己的一个记录,路过的亲 ...
- 网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...
- 网络协议抓包分析——IP互联网协议
前言 IP协议是位于OSI模型的第三层协议,其主要目的就是使得网络间可以相互通信.在这一层上运行的协议不止IP协议,但是使用最为广泛的就是互联网协议. 什么是IP数据报 TCP/IP协议定义了一个在因 ...
- 网络协议抓包分析——ARP地址解析协议
前言 计算机之间可以相互通信的前提是要知道对方的地址,才可以发送信息给其他计算机,就像别人要联系你也得先知道你的电话号码一样.这里的地址因为网络分层的原因就包括IP地址和MAC地址(即网卡地址.硬件地 ...
- 【极客思考】计算机网络:Wireshark抓包分析TCP中的三次握手与四次挥手
[摘要]本文重点分析计算机网络中TCP协议中的握手和挥手的过程. [前提说明] 前段时间突然看到了一篇关于TCP/IP模型的文章,心想这段时间在家里也用wireshark抓了点包,那么想着想着就觉得需 ...
- ARP 协议抓包分析
ARP(Address Resolution Protocol)- 地址解析分析 ARP 协议是根据IP地址获取物理地址的一个TCP/IP协议. 当PC1 想与 PC2 进行通信时,需要同时知道PC2 ...
- 【计算机网络】wireshark抓包分析2
在分析1中,大概的看到了一个包中的信息.这里,看看这些包究竟在做什么 这是我的电脑跟某个网站交互的前4个包. 其中前三个包可以明显看出是TCP的三次握手. 那么,问题来了: 为什么第三个包的长度比前两 ...
- Wireshark数据抓包分析——网络协议篇
Wireshark数据抓包分析--网络协议篇 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/ ...
随机推荐
- .net Winform 揭开语音识别的神秘面纱
今天老哥弄上位机,了解到一个有意思的东西,就是语音识别,真的很简单,话不多话,一起看图吧 1. 初始 Winform 界面设计: 2.潦潦几句代码书写着我的理解: 2-1. 先看引用 dll usi ...
- Java 读取文件中的每一行,并为每一行插入特定的字符串
工具 1:Eclipse Java EE IDE for Web Developers. Version: Photon Release (4.8.0). Build id: 20180619-120 ...
- Jmeter之『Xpath提取器』
1.使用Xpath提取时,有时候需要过滤标题,使用以下语句 //td[@class="r-count" and not(text()="回应")]
- Androng,一个针对Android的Pong克隆
下载application from Android market 下载source - 532 KB 内容 IntroductionAndroid游戏开发 活动视图绘图使用CanvasAnimati ...
- map的自动扩容与手动缩容
map的自动扩容与手动缩容 首先还是提出问题:扩容和缩容有什么用?为什么需要扩容和缩容? 在想解答这个问题之前,首先还是需要了解一下go语言中的map go语言中的map与Java中的map实现还是有 ...
- ansible-playbook流程控制-when条件判断
1. ansible-playbook添加判断 when相当于shell脚本里的if 判断,when语句就是用来实现这个功能的,它是一个jinja2的语法,但是不需要双大括号,用法很简单 1 ...
- install Wine + WeChat in Fedora 31
install Wine + WeChat in Fedora 31 dnf -y install dnf-plugins-core dnf config-manager --add-repo htt ...
- 网站搭建-云服务器是什么-云服务器ECS是什么
学习上瘾了,本博客关闭,后期再总结整理.
- 多测师讲解自动化 _邮件发送_高级讲师肖sir
第一步.进入如下网址申请163邮箱. https://mail.163.com/ 第二步.注册完之后登录.点击如下图设置点击POP3/SMTP/IMAP. 第三步.右侧点击客户端授权密码. 第四步. ...
- NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
错误信息: NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 错误背景:微服务不通过统一的nginx端口访问,能够正常请求接口并获取对应的响应.但是通过ngi ...