DHCP协议简析
- 推荐这篇文章,原理及抓包都分析的很好: **推荐这篇文章,原理及抓包都分析的很好:**
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步骤。
最新文章
- Cheatsheet: 2016 05.01 ~ 05.31
- Chrome浏览器官方下载地址
- ASP.NEt MVC5--创建下拉列表
- 【读书笔记】读《JavaScript设计模式》之装饰者模式
- Brief introduction to Scala and Breeze for statistical computing
- 编写一函数用来实现左右循环移位。函数原型为move(value,n);n>;0时右移n位,n<;0时左移|n|位。
- threaded模式下,比prefork模式要省资源
- SpringMVC与Struts2配置区别
- 01 Hello, Python!
- Linux下产生随机密码10方法
- shell常见脚本30例
- centos7安装nginx-1.13.6 新手入门,图文解析
- 【转】为什么分布式一定要有Redis?
- Android开发 ---基本UI组件6 :只定义一个listView组件,然后通过BaseAdapter适配器根据数据的多少自行添加多个ListView显示数据
- .Net Discovery系列之十一-深入理解平台机制与性能影响 (中)
- Nginx 与Tomcat 实现动静态分离、负载均衡
- BZOJ 3166: [Heoi2013]Alo
- 二叉搜索树的后序遍历序列 (java)
- React的this.props.children
- C++(二十三) — 内存泄漏及指针悬挂