动态主机配置协议:DHCP 用来集中管理、分配IP地址,使网络环境中的主机能够动态获取IP地址、网关地址、DNS服务器地址等信息;DHCP采用客户端+服务器模式,端口号:客户端为68(中继模式下67),服务器端为67

版本一:RARP(反向ARP,适用于无盘工作站中,主机可以根据自身的MAC地址请求相对应的IP地址)

版本二:Bootstrap(自举协议)

注:以上两种协议的缺陷是需要根据主机自身的配置文件才能请求相对应的IP地址,不够灵活;只能请求到IP+子网掩码/网关+DNS信息,内容太少;效率低

版本三:DHCP(动态主机配置协议)

相比较以上两种协议,DHCP协议能够实现即插即用,很灵活;通过在TLV字段中添加多种option字段,能够获取更多的信息;延时低,效率高(低于30S)

支持手工配置和动态获取:

手工配置:配置量大;容易出现重复地址,且不易检测;移动性差;不安全

自动获取:即插即用;配置量小;集中管理,保证地址的唯一性;移动性强

报文封装:Ethernet 2/IPv4/UDP/Bootstrap/DHCP/FCS

1、OP字段:Client 送给Server发包,设为 1,反向为 2

2、HTYPE字段:硬件类别,Ethernet为 1

3、HLEN字段:硬件地址长度,Ethernet为 6

4、HOPS字段:跳数,若发包需经过路由器每站加1,在同一个网络内为 0

5、Xid字段:事务ID,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。

6、SECONDS字段:客户端开始获得IP地址或IP地址续借后所使用了的秒数。

7、FLAGS字段:标志字段,0到15,最左1 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。

8、Ciaddr字段:客户端的IP地址。

9、Yiaddr字段:"你自己的"或客户端的IP地址。

10、Siaddr字段:DHCP协议流程的下一个阶段要使用的服务器的IP地址。

11、Giaddr字段:DHCP中继器的IP地址。

12、Chaddr字段:客户端硬件地址。

13、Sname字段:可选的服务器主机名。

14、File字段:启动文件名,指出开机程序名称,稍后以 TFTP 传送。

15、Options字段:可选项字段。

报文类型:

1、DHCP Discover 客户端用来寻找DHCP服务器(由客户端发起的,发送广播报文,源IP:0.0.0.0 目的IP:255.255.255.255 ;包含一个flag字段,共2byte,俗称广播位,最高位置0代表支持接收单播报文,置1代表支持接收广播报文)

2、DHCP Offer DHCP服务器用来响应Discover报文,报文携带了各种配置信息(由服务器端发起的;思科/微软支持广播,华为/IETF支持单播)

3、DHCP Request 客户端请求配置确认、续借租期、主机重启后向DHCP服务器请求上次使用的IP地址(广播发送)。

4、DHCP ACK DHCP服务器对Request报文的确认(内容同offer报文)

5、DHCP NAK DHCP服务器对Request报文的拒绝(使用255.255.255.255回应)

6、DHCP Release 客户端要释放地址时用来通知DHCP服务器

7、DHCP Decline 客户端将冲突的IP地址信息反馈给DHCP服务器

8、DHCP Inform 客户端向DHCP服务器单独请求DNS服务器地址信息

DHCP工作原理

DHCP租期更新

DHCP地址池:包含了IP地址段、子网掩码、网关地址、DNS服务器地址、域名、地址租期(默认24小时)。

1、全局池:接收Discover广播报文和单播报文,支持DHCP中继转发;在DHCP服务器的全局模式下开启;需要配置IP、子网掩码、网关、DNS、域名、租期。

2、主机池:用来给服务器、打印机等设备配置固定的IP地址;主机池中通常只配置一个IP地址;通过验证Discover报文中的Client ID(01+主机的MAC地址)来确定是否可以分配主机池中的地址;

注:分配顺序:主机池地址---网段池地址(优先分配之前使用的IP地址)--分配曾经标记过冲突的地址。

Client ID:01AA.AABB.BBCC.CC(MAC地址:AAAA.BBBB.CCCC)

更多相关问题欢迎评论留言

或关注公众号【网络工程师集中营】

现在关注公众号,后台回复关键词:太阁

即可获得7天免费课程

发送广播_DHCP服务器什么时候发送?为什么request要广播发送?那还不看?相关推荐

  1. OkHttp3 发送网络请求服务器

    前言:应用程序需要发送网络请求服务器的接口,可使用OkHttp 3发送请求获取服务端数据 GitHut地址 Step 1:申请网络请求的权限:在manifests层的AndroidManifest.x ...

  2. python processpoolexector 释放内存_一起看看python 中日志异步发送到远程服务器

    在python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接写入数 ...

  3. linux日志发送,Linux中将执行过的命令记录到日志并发送到服务器的方法

    工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案.这个方案会在每个用户退出登录 时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也 ...

  4. cmd中的进度如何捕捉到输出内容_python 中日志异步发送到远程服务器

    在python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接写入数 ...

  5. 传感器信号 如何发送到服务器,传感器如何将消息发送给云服务器

    传感器如何将消息发送给云服务器 内容精选 换一换 消息发送和消费的可靠性必须由DMS服务和生产者以及消费者协同工作才能保证.同时开发者需要尽量合理使用DMS消息队列,以提高消息发送和消息消费的效率与准 ...

  6. python数据包的作用_使用Python将登录数据包发送到Minecraft服务器不起作用

    我在Python中有以下脚本 . 它的作用是尝试连接到MineCraft服务器,首先发送'handshake',然后发送登录请求 . 协议规格可以在这里找到:http://wiki.vg/Protoc ...

  7. Android复习12【广播接收者-BroadcastReceiver(简单案例-发送广播、静态注册、动态注册、本地广播、代码示例(别处登陆踢用户下线)、常用系统广播总结、音乐播放器)】

    2020-04-28[11周-周二] 音乐播放器Android代码下载:https://wws.lanzous.com/ifqzihaxvij 目   录 简单案例-发送广播 2)动态注册实例(监听网 ...

  8. 发送临时文件被服务器拒绝,临时会话说服务器拒绝了您发送离线文件的请求 - 卡饭网...

    qq 服务器拒绝了您发送离线文件请求的解决方法 qq 服务器拒绝了您发送离线文件请求的解决方法 qq服务器拒绝了您发送离线文件的原因?在我们日常工作中,因工作需要会用上qq离线文件接收.发送.而前面小 ...

  9. [笨木头FireFly 02]入门篇2_客户端发送请求,服务器处理请求

    原地址:http://www.9miao.com/question-15-53940.html 好,经过上一篇不权威的讲解,大家已经能轻易地让客户端和服务端连接起来了. 但是,仅仅是连接了,可它们俩不 ...

最新文章

  1. docker上你必须会的那些命令
  2. layui监听当前页_事件监听 · layui使用手册 · 看云
  3. MultiBox_Loss bug改进
  4. python公里转海里_海里、公里、英里之间的转换
  5. F-Principle:初探深度学习在计算数学的应用
  6. 新课推荐 | 用 Django 快速搭建 API 测试工具
  7. C#操作配置文件中appSettings,connectionStrings节点
  8. sql 除以_使用SQL分析游戏运营情况
  9. centos打架django + mysql环境
  10. sublimeText OmniMarkupPreviewer 404
  11. java中hashcode和equals的区别和联系
  12. Android仿人人客户端(v5.7.1)——应用主界面之左侧面板UI实现
  13. 大数据可视化需要遵循哪几个核心原则
  14. es6 提取数组对象一部分_ES6新特性你了解了多少呢?
  15. 廖雪峰js教程笔记11 操作DOM(包含作业)
  16. springboot ---微信ocr身份证识别
  17. 如何获取微信服务号用户的openID
  18. 设置透明背景和转换图片格式的技巧
  19. 营销公众号该如何运营大纲
  20. python微信群发助手在哪_python 微信群发_Python-Pyqt5编写微信群发软件

热门文章

  1. 在CXF API和拦截器中添加Gzip压缩
  2. 针对新手的Java EE7和Maven项目–第5部分–使用Arquillian / Wildfly 8进行单元测试
  3. MapReduce算法–了解数据连接第二部分
  4. MOXy是GlassFish 4中新的默认JSON绑定提供程序
  5. 适用于孩子,父母和祖父母的JBoss HornetQ –第1章
  6. JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成项目
  7. 将对象映射到多个XML模式–天气示例
  8. HTML.parser和正则解析,正则表达式+HTMLParser使用详.ppt
  9. SpringBoot JPA
  10. python怎么下载安装mac_Mac下内置python2.7如何安装模块?