• 推荐这篇文章,原理及抓包都分析的很好: **推荐这篇文章,原理及抓包都分析的很好:**

https://blog.csdn.net/andy_93/article/details/78238931

  • 简要步骤分析如下: **简要步骤分析如下:**

1、DHCP_Client 发给 DHCP_Server:DHCP DISCOVER(寻找服务器)(广播包)

  当DHCP客户端开机的时候,就会广播寻找DHCP服务器。 由于客户端此时还不知道自己属于哪一个网路,所以封包的来源地址会为0.0.0.0, 目的地址则为255.255.255.255,然后再附上DHCP discover的包信息。

2、DHCP_Server 发给 DHCP_Client:DHCP OFFER(分配IP信息)

  当DHCP服务器监听到客户端发出的DHCP Discover广播后, 会从自己的IP池里分配一个IP地址,再加上客户端的硬件地址 (MAC)、XID编号(用于识别)等信息,封装为一个DHCP OFFER包,发送给客户端。

3、DHCP_Client 发给 DHCP_Server:DHCP REQUEST(请求使用具体的IP)(广播包)

  假如客户端接收到多个服务器发来的DHCP OFFER包,会选择最先接收到的包信息,然后以广播的方式发送一个DHCP REQUEST,相当于广播给所有服务器:我接受了这个服务器的包。其他被拒绝的服务器就不会继续建立连接啦。

4、DHCP_Server 发给 DHCP_Client:DHCP ACK(分配确认)

  当DHCP服务器收到DHCP客户端回答的DHCP Request请求信息之后, 它便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP Ack确认信息。以确认IP地址的正式生效。然后DHCP客户端便将其TCP/IP协议与自己的网卡绑定。

PS:如果第3步request包DHCP server判断不合法,会恢复回复DHCP NAK包,这样可以马上重新进行1~4步骤。

DHCP协议简析的更多相关文章

  1. DNS使用的是TCP协议还是UDP协议简析

    DNS使用的是TCP协议还是UDP协议简析   DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况 ...

  2. Https协议简析及中间人攻击原理

    1.基础知识 1.1 对称加密算法 对称加密算法的特点是加密密钥和解密密钥是同一把密钥K,且加解密速度快,典型的对称加密算法有DES.AES等                              ...

  3. HTTP协议--简析

    HTTP--超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,是所有的www文件都必须遵守的标准. 要想成为优秀的web开发人员,必须熟悉H ...

  4. TCP 协议简析

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接.它是个超级麻烦的协议, ...

  5. mysql协议简析

    前言 如果要在命令行中连接mysql,最常用的便是 mysql -u root -p 这样指定用户名和密码 当然还可以使用远程连接 mysql -h 127.0.0.1 -u root -p 还有一种 ...

  6. STUN协议简析

    http://blog.csdn.net/mazidao2008/article/details/4934257 ——————————————————————————————————————————— ...

  7. HTTP协议简析(二)

    HTTP响应也包含四部分内容: 响应行: 协议版本:HTTP/1.1 状态码:200 状态描述:对状态码的说明 响应头:用来规范数据,常用的有: server:服务器信息 date:响应的时间 las ...

  8. http协议简析(一)

    HTTP:hype-text transfer protocol,超文本传输协议,超文本(html)在网络间(电脑与电脑之间)传输过程中所遵循的一些规则. 两台电脑之间要实现数据传输的条件 1.两台电 ...

  9. QUIC/HTTP3 协议简析

    从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来. HTTP.HTTP2 和 HTTP3 先和大家来回顾一 ...

随机推荐

  1. 一站式超全JavaScript数组方法大全

    一站式JavaScript数组方法大全(建议收藏) 方法一览表 详细操作 本人总结了JavaScript中有关数组的几乎所有方法(包含ES6之后新增的),并逐一用代码进行演示使用,希望可以帮助大家! ...

  2. NOIP2021T1报数——黄蓝紫黑的神奇梯度

    7A3T 点击查看代码 #include<iostream> #include<cstdio> #include<cmath> #include<algori ...

  3. 在VMware上安装Linux虚拟机

    1.新建虚拟机 2.选择典型安装 3.点击稍后安装操作系统 4.选择类型和版本 5.选择一个英文路径 6. 7.调整硬件 8. 9. 10.选择第一项 11.选择中文 12.选择最小安装 13. 14 ...

  4. MYSQL优化的一些性能与技巧

    1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...

  5. JVM学习——字节码(学习过程)

    JVM--字节码 为什么要学字节码 字节码文件,有什么用? JVM虚拟机的特点:一处编译,多处运行. 多处运行,靠的是.class 字节码文件. JVM本身,并不是跨平台的.Java之所以跨平台,是因 ...

  6. docker为什么会出现

    痛点 环境不同所引发的问题 一款产品从开发到上线,一般都会有开发环境,测试环境,运行环境. 如果有一个环境中某个软件或者依赖版本不同了,可能产品就会出现一些错误,甚至无法运行.比如开发人员在windo ...

  7. netty系列之:channelHandlerContext详解

    目录 简介 ChannelHandlerContext和它的应用 AbstractChannelHandlerContext DefaultChannelHandlerContext 总结 简介 我们 ...

  8. 5款开源BI系统倾力推荐,企业信息化的利器

    如今的企业都在选择开源BI系统,提升企业信息化的水平.那么开源BI系统到底该如何选择?在目前的百度上面有着许许多多类似的内容,本文就整理了其中优秀的5款工具,帮助大家选择合适的软件. 1.Smartb ...

  9. Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪使用指南

    分布式跟踪允许您跟踪分布式系统中的请求.本文通过了解如何使用 Spring Cloud Sleuth 和 Zipkin 来做到这一点. 对于一个做所有事情的大型应用程序(我们通常将其称为单体应用程序) ...

  10. 【C#IO 操作】stream 字节流|字符流 |比特流

    stream的简介 Stream 所有流的抽象基类. 流是字节序列的抽象,例如文件.输入/输出设备.进程中通信管道或 TCP/IP 套接字. Stream类及其派生类提供这些不同类型的输入和输出的一般 ...