对于DHCP协议我们总是有很多内容需要介绍。在之前我们已经对概念、结构和工作流程有了一定的了解了。这里,我们将要在流程中补充一部分知识,另外在对DHCP协议的封包格式进行重点讲述。

租约确认

当 DHCP服务器接收到客户端的 DHCPrequest 之后,会向客户端发出一个 DHCPACK 响应,以确认IP租约的正式生效,也就结束了一个完整的 DHCP工作过程。

DHCP发放流程***次登录之后: 一旦 DHCP客户端成功地从服务器哪里取得 DHCP租约之后,除非其租约已经失效并且IP地址也重新设定回 0.0.0.0 ,否则就无需再发送 DHCPdiscover 信息了,而会直接使用已经租用到的IP地址向之前之 DHCP服务器发出 DHCPrequest 信息,DHCP服务器会尽量让客户端使用原来的IP地址,如果没问题的话,直接响应 DHCPack 来确认则可。如果该地址已经失效或已经被其它机器使用了,服务器则会响应一个 DHCPNACK 封包给客户端,要求其从新执行 DHCPdiscover。

至于IP的租约期限却是非常考究的,并非如我们租房子那样简单, 以 NT 为例子:DHCP工作站除了在开机的时候发出 DHCPrequest 请求之外,在租约期限一半的时候也会发出 DHCPrequest ,如果此时得不到 DHCP服务器的确认的话,工作站还可以继续使用该IP;当租约期过了87.5%时,如果客户机仍然无法与当初的DHCP服务器联系上,它将与其它DHCP服务器通信。如果网络上再没有任何DHCP协议服务器在运行时,该客户机必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开始,再一次重复整个过程。要是您想退租,可以随时送出 DHCPRELEASE 命令解约,就算您的租约在前一秒钟才获得的。

跨网络的 DHCP运作 从前面描述的过程中,我们不难发现:DHCPDISCOVER 是以广播方式进行的,其情形只能在同一网络之内进行,因为 router 是不会将广播传送出去的。但如果 DHCP服务器安设在其它的网络上面呢?由于 DHCP客户端还没有IP环境设定,所以也不知道 Router 地址,而且有些 Router 也不会将 DHCP广播封包传递出去,因此这情形下 DHCPDISCOVER 是永远没办法抵达 DHCP服务器那端的,当然也不会发生 OFFER 及其它动作了。要解决这个问题,我们可以用 DHCPAgent (或 DHCPProxy )主机来接管客户的 DHCP请求,然后将此请求传递给真正的 DHCP服务器,然后将服务器的回复传给客户。这里,Proxy 主机必须自己具有路由能力,且能将双方的封包互传对方。

若不使用 Proxy,您也可以在每一个网络之中安装 DHCP服务器,但这样的话,一来设备成本会增加,而且,管理上面也比较分散。当然喽,如果在一个十分大型的网络中,这样的均衡式架构还是可取的。端视您的实际情况而定了。

DHCP协议封包格式

以下为各字段的简要说明:

OP 若是 client 送给 server 的封包,设为 1 ,反向为 2 。

HTYPE 硬件类别,Ethernet 为 1 。

HLEN 硬件地址长度, Ethernet 为 6 。

HOPS 若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0 。

TRANSACTION ID DHCPREQUEST 时产生的数值,以作 DHCPREPLY 时的依据。

SECONDS Client 端启动时间(秒)。

FLAGS 从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。

ciaddr 要是 client 端想继续使用之前取得之IP地址,则列于这里。

yiaddr 从 server 送回 client 之DHCPOFFER与 DHCPACK 封包中,此栏填写分配给 client 的IP地址。

siaddr 若 client 需要透过网络开机,从 server 送出之 DHCPOFFER、DHCPACK、DHCPNACK 封包中,此栏填写开机程序代码所在 server 之地址。

giaddr 若需跨网域进行 DHCP协议发放,此栏为 relay agent 的地址,否则为 0 。 chaddr Client 之硬件地址。 sname Server 之名称字符串,以 0x00 结尾。 file 若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。 options 允许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息(如:Netmask、Gateway、DNS、等等)。其长度可变,同时可携带多个选项,每一选项之***个 byte 为信息代码,其后一个 byte 为该项数据长度,***为项目内容。 CODE LEN VALUE 此字段完全兼容 BOOTP,同时扩充了更多选项。其中,DHCP封包可利用编码为 0x53 之选项来设定封包类别: 项值 类别 1 DHCPDISCOVER 2DHCPOFFER3 DHCPREQUEST 4 DHCPDECLIENT 5 DHCPACK 6 DHCPNACK 7 DHCPRELEASE DHCP协议的选项非常多,有空请查阅 RFC 或相关文献,并好好理解,这里不再叙述了。

【责任编辑:佟媛微 TEL:(010)68476606】

点赞 0

服务器封包协议号,DHCP协议的租约确认和封包格式相关推荐

  1. 【计算机网络】网络层 : DHCP 协议 ( DHCP 协议概念 | DHCP 协议特点 | DHCP 协议流程 )

    文章目录 一.DHCP 协议 概念 二.DHCP 协议 特点 三.DHCP 协议 流程 一.DHCP 协议 概念 DHCP 协议 概念 : ① 全称 : DHCP 协议 全称 "动态主机配置 ...

  2. UDP对应的应用层协议之DHCP协议

    文章目录 一.DHCP协议是什么? 二.工作流程 一.DHCP协议是什么? DHCP是动态主机配置协议,是基于UDP的应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互. DHCP提 ...

  3. Cisco ❀ BOOTP协议(DHCP协议前身)概述

    什么是BOOTP协议 BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身. 1.协议简述 BOOTP用于无盘工作站 ...

  4. 三十二、ARP协议、DHCP协议、ICMP协议

    文章目录 1.发送数据的过程 2.ARP协议 2.1 ARP协议使用过程 2.2 ARP协议4种典型情况 3.DHCP协议 3.1 DHCP使用过程 4.ICMP协议 4.1 ICMP差错报告报文 4 ...

  5. IP协议号(TCP协议号/UDP协议号)

    IP协议号 IP首部中有8位协议号,用于指明IP的上层协议. 0 HOPOPT IPv6 逐跳选项 1 ICMP Internet 控制消息 2 IGMP Internet 组管理 3 GGP 网关对 ...

  6. linux ip协议号,IP协议号大全

    IP协议号大全(网络协议号) 1     ICMP        Internet Control Message           [RFC792] 2     IGMP        Inter ...

  7. 各路由协议的协议号_协议号和端口号大全

    协议号和端口号大全 协议号和端口号大全协议号是存在于 IP 数据报的首部的 20 字节 的固定部分,占有 8bit. 该字段是指出此数据报所携带的是数据是使 用何种协议,以便目的主机的 IP 层知道将 ...

  8. 一文了解什么是DHCP协议

    我们平时用电脑上网时,只要随手插入网线,就可以联网通信.我们知道主机通信需要IP地址,但是我们却很少主动配置IP地址就可以上网,这是为什么?这是因为有一个叫DHCP服务器的东西给你的电脑自动配置了一个 ...

  9. lwip源码分析 之 DHCP协议实现(一)

    文章目录 一,dhcp协议简介 二,源码解析 2.1 dhcp结构体 2.2 开始广播 2.3 回调接口 a,发送请求 b,等待ack 2.4 其他情况 一,dhcp协议简介 dhcp协议是动态主机配 ...

  10. DHCP协议详细解析

    一.DHCP定义 DHCP(动态主机配置协议):是一个应用层的网络协议.指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码.当我们将客户主机ip地址设置 ...

最新文章

  1. RabbitMQ(三):RabbitMQ 使用场景
  2. mongodb php 支持
  3. 网络知识:整理各种路由器组网方法!网跨段也能访问!
  4. Java原生API操作XML
  5. Cray:XC50提供了最高密度的性能
  6. JAVA中的MDC类_CMake - 用/ MT而不是/ MD编译
  7. 怎么处理table 与 form绑定的问题(现象:点击取消后 修改的值还是在table显示)
  8. 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上。
  9. 尼康 Nikon Capture nx2
  10. Tensorflow2.0学习(八) — tf.dataset自定义图像数据集
  11. CSS3 ---奔跑的小人
  12. 特斯拉Model 3进化不止 传统车企到底应该学什么?
  13. vue姓名动态输入三种方式、前端密码加密
  14. linux vim m,Linux vi(m)用法 (转)
  15. 荣耀手机出售还可以用鸿蒙,华为荣耀整体出售对鸿蒙有何影响
  16. Python Django支付宝沙箱调试
  17. 机器学习-SVM硬间隔与软间隔:重要参数C
  18. Flutter 安装包体积优化
  19. 2021年最新WHQL认证申请流程
  20. 到北京软通动力做项目经理怎么样?

热门文章

  1. ts 修饰符_TS4 新特性一览
  2. java色号_RGB颜色与16进制颜色的换算方法
  3. java项目第12期-淘客系统源码(安卓+IOS+java后端)【毕业设计】
  4. retina 显示屏详细理解
  5. 记一次应急-插U盘之后文件夹全变成exe中毒(100%解决)
  6. 微信小程序:搜索关键词,显示地图列表
  7. 重学计算机组成原理(五)- 旋转跳跃的指令实现
  8. python图片处理大全_python图像处理:怎么给图片加框?
  9. 达梦新起点:达梦DM8化繁为简 助力数据库发展新方向
  10. stata绘制地理分布图的spmap命令