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

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. Appium链接夜神模拟器

    参考官方技术文档: http://appium.io/slate/cn/master/ 确保已经安装jdk和adt adb需要配置系统环境变量: D:\adt-bundle-windows-x86_6 ...

  2. Lesson17——NumPy 统计函数

    NumPy 教程目录 1 NumPy 统计函数 NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. 函数说明如下 1.1 统计 method descripti ...

  3. Vue.js——学习笔记

    Vue-自学笔记 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅 ...

  4. 基于mysql的报表工具有哪些?值得推荐的mysql报表工具

    什么是SQL?SQL是结构化查询语言. 什么是数据库?数据库是用来存储数据的. 什么是mysql?Mysql是目前较为流行的数据库. 基于mysql的报表工具有哪些? 其实现在所有的报表工具,基本都支 ...

  5. 推荐 10 本 Go 经典书籍,从入门到进阶(含下载方式)

    书单一共包含 10 本书,分为入门 5 本,进阶 5 本.我读过其中 7 本,另外 3 本虽然没读过,但也是网上推荐比较多的. 虽然分了入门和进阶,但是很多书中这两部分内容是都包含了的.大家看的时候可 ...

  6. 给bootstrap-table填坑

    由于设计变更,需要把数据由分页展示改为全部展示(才3500条数据),结果chrome浏览器页面卡顿,火狐浏览器直接卡死! console.time分析之后,竟然是bootstrap-table插件的坑 ...

  7. 解决oracle用户过期问题

    转至:https://blog.51cto.com/718693/1566905 2014-10-22 21:31:01   最近测试部工作人员发现一个问题,说oracle用户密码提示要过期了,问我怎 ...

  8. Java课程设计---实现登录(1)

    1.新建登录窗口类:LoginView.java 以下是自动生成的代码 package com.system.view; import java.awt.BorderLayout; import ja ...

  9. pip:各项指令

    学习自:(7条消息) pip 常用命令及控制台怎么查看python 及pip 和已安装包版本号_peiwang245的博客-CSDN博客_查看pip版本 1.版本及升级 版本:pip -V 升级:pi ...

  10. linux curl 的用法指南

    curl用法指南