0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文了解DHCP的工作原理​

jf_qwOiugB3 来源:通信弱电交流学习 2023-10-30 09:56 次阅读

在终端规模较大的网络中手工配置IP地址时,为避免IP地址重复,需要事先规划每个终端的IP地址,导致工作量大且容易出错!

当终端位置经常变更时(例如企业出差人员的便携电脑),每次变更都需要重新手工配置IP地址,烦神又烦力呀...

某些特殊的无盘工作站,无法手工配置IP地址,该如何与网络实现互通?

其实吧,有了动态主机配置协议DHCP(Dynamic Host Configuration Protocol),上面的问题都可以解决了。小伙伴们再也不用担心手工配错,费神费力了。

DHCP能够实现动态为主机分配IP地址,而且是目前应用很广泛的一种技术。例如,办公室,网吧里的固定PC;咖啡厅,机场等提供WIFI接入的地方用手机上网,这些都会用到DHCP。

本期就由小编来给大家普及下DHCP的各种工作原理

DHCP工作原理

一、什么是DHCP?

DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口

67(DHCP server),68(DHCP client)。

DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

二、DHCP协议中的报文

DHCP报文共有以下几种:

DHCP DISCOVER客户端开始DHCP过程发送的包,是DHCP协议的开始

DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息

DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。

DHCP ACK :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。

DHCP NAK :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。

DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址。

DHCP INFORM :客户端发出的向服务器请求一些信息的报文。

DHCP DECLINE :当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。

DHCP的工作流程:

e5bcb5ae-7566-11ee-939d-92fbcf53809c.png

三、DHCP协议包的组成

Xid :随机生成的一段字符串,两个数据包拥有相同的xid说明他们属于同一次会话。

Ciaddr :客户端会在发送请求时将自己的ip地址放在此处。

Yiaddr :服务器会将想要分配给客户端的ip地址放在此处。

Siaddr :一般来说是服务器的ip地址.但是注意!根据openwrt源码给出的注释,当报文的源地址、siaddr、option­>server_id字段不一致(有经过跨子网转发)时,通常认为option­>srever_id字段为真正的服务器ip,siaddr有可能是多次路由跳转中的某一个路由的ip (下图中wireshark抓包中也有标明siaddr为nextserver ip address)。

Chaddr:客户端的mac地址。

Giaddr :如果需要跨子网进行DHCP地址发放,则在此处填入经过的路由器的ip地址。

Sname :服务器主域名。

Options :可以自由添加的部分,用于存放客户端向服务器请求信息和服务器的应答信息。

e5d7cbe6-7566-11ee-939d-92fbcf53809c.png

DHCP 客户端

一、什么是DHCP客户端?

DHCP客户端一般来说是局域网中独立的PC主机。

DHCP客户端发出的DHCP DISCOVER包是DHCP协议的开始。

延续租期、发现、释放IP地址等大多数DHCP中的行为都是由DHCP客户端主动发起。

二、DHCP 自动状态机

DHCP获得ip地址的4步骤:discover­>offer­>request­>ack(nak)

DHCP刷新租期的步骤:request­>ack(nak)

DHCP释放ip的步骤:release

wnr2000v5 1.0.0.8的代码中没有发现rebooting、init­reboot状态。所以DHCP client的状态一般从init开始,完整的状态机如下图(红色代表客户端的状态跳转):

e6134f22-7566-11ee-939d-92fbcf53809c.png

DHCP工作过程详解

一、DHCP客户机初始化:

1.寻找DHCP Server

当DHCP客户机第一次登录网络的时候(也就是客户机上没有任何IP地址数据时),它会通过UDP 67端口向网络上发出一个DHCPDISCOVER数据包(包中包含客户机的MAC地址和计算机名等信息)。因为客户机还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0,目标地址为255.255.255.255,然后再附上DHCP discover的信息,向网络进行广播。

DHCP discover的等待时间预设为1秒,也就是当客户机将第一个DHCP discover封包送出去之后,在1秒之内没有得到回应的话,就会进行第二次DHCP discover广播。若一直没有得到回应,客户机会将这一广播包重新发送四次(以2,4,8,16秒为间隔,加上1-1000毫秒之间随机长度的时间)。如果都没有得到DHCP Server的回应,客户机会从169.254.0.0/16这个自动保留的私有IP地址中选用一个IP地址。并且每隔5分钟重新广播一次,如果收到某个服务器的响应,则继续IP租用过程。

2. 提供IP地址租用

当DHCP Server监听到客户机发出的DHCP discover广播后,它会从那些还没有租出去的地址中,选择最前面的空置IP,连同其它TCP/IP设定,通过UDP 68端口响应给客户机一个DHCP OFFER数据包(包中包含IP地址、子网掩码、地址租期等信息)。此时还是使用广播进行通讯,源IP地址为DHCP Server的IP地址,目标地址为255.255.255.255。同时,DHCP Server为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。

由于客户机在开始的时候还没有IP地址,所以在其DHCP discover封包内会带有其MAC地址信息,并且有一个XID编号来辨别该封包,DHCP Server响应的DHCP OFFER封包则会根据这些资料传递给要求租约的客户。

3. 接受IP租约

如果客户机收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCP OFFER(一般是最先到达的那个),并且会向网络发送一个DHCP REQUEST广播数据包(包中包含客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等),告诉所有DHCP Server它将接受哪一台服务器提供的IP地址,所有其他的DHCP服务器撤销它们的提供以便将IP地址提供给下一次IP租用请求。此时,由于还没有得到DHCP Server的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。

事实上,并不是所有DHCP客户机都会无条件接受DHCP Server的OFFER,特别是如果这些主机上安装有其它TCP/IP相关的客户机软件。客户机也可以用DHCP REQUEST向服务器提出DHCP选择,这些选择会以不同的号码填写在DHCP Option Field里面。客户机可以保留自己的一些TCP/IP设定。

4.租约确认

当DHCP Server接收到客户机的DHCP REQUEST之后,会广播返回给客户机一个DHCP ACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。

客户机在接收到DHCP ACK广播后,会向网络发送三个针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果发现该IP地址已经被使用,客户机会发出一个DHCP DECLINE数据包给DHCP Server,拒绝此IP地址租约,并重新发送DHCP discover信息。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。

如果网络上没有其它主机使用此IP地址,则客户机的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。

二、DHCP客户机租期续约:

客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP Server发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。

如果在租期过去50%的时候没有更新,则客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP联系。如果还不成功,到租约的100%时候,客户机必须放弃这个IP地址,重新申请。如果此时无DHCP可用,客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    7251

    浏览量

    87450
  • DHCP
    +关注

    关注

    0

    文章

    101

    浏览量

    19281
  • ip地址
    +关注

    关注

    0

    文章

    240

    浏览量

    16747
  • 端口
    +关注

    关注

    4

    文章

    822

    浏览量

    31599
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16349

原文标题:手工配置IP地址麻烦还会出错?10张图带你了解DHCP技术原理​

文章出处:【微信号:通信弱电交流学习,微信公众号:通信弱电交流学习】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    看懂AR显示器工作原理

    由于科幻电影的影响(《钢铁侠》和《星际迷航》等等),人们直在憧憬着全息光学透镜的出现。那么AR的工作原理是什么呢?游戏开发者 Aaron Yip 在 Quora(国外著名问答网站)进行了解答,里面是整理的文字。
    发表于 03-15 17:31

    dhcp无法正常工作

    。--telnet工作区,所以切都工作得很好:-)但是DHCP不行!你可以查看附带的屏幕截图,我得到了
    发表于 10-14 10:43

    看透什么是舵机?舵机的工作原理是什么?

    舵机的工作原理是啥?舵机(Servo)里面都是些什么?舵机外的三根线是从上面哪个构件上引出来的?舵机依靠什么控制?
    发表于 06-30 06:17

    为什么要了解电机的工作原理

    为什么要了解电机的工作原理在我们生活场景中,电机的应用非常广泛,电风扇、洗衣机驱动电机、冰箱散热风扇、玩具车驱动电机、电脑散热风扇、抽油烟机风扇等,几乎所有的家用电器都会用到电机,可以说没有了电机
    发表于 08-27 06:49

    了解电器的功能和工作原理

    电器修理、电路设计都是要通过分析电路原理图,了解电器的功能和工作原理,才能得心应手开展工作的。作为从事此项工作的同志,首先要有过硬的基本功,要能对有技术参数的电路原理图进行总体
    发表于 09-09 09:01

    嵌入式DHCP Server在vxWorks中的软件实现

    随着嵌入式时代的来临,嵌入式的应用越来越广。首先介绍DHCP协议的工作原理,然后详细描述嵌入式DHCP服务器在vxWorks中的软件实现过程。 With the coming of embedded age embedded
    发表于 01-11 09:34 32次下载

    dhcp工作过程详解

    对于学习DHCP来说,很重要的一部分就是对于DHCP工作过程的理解。那么首先DHCP分为两个部分:一个是服务器端,另一个是客户端。所有客户机的IP地址设定资料都由
    发表于 03-06 17:25 6142次阅读

    DHCP工作原理的教学资料设计

    DHCP(Dynamic Host Configuration Protocol),即动态主机配置协议。它是TCP/IP协议簇中的一种,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配
    发表于 05-05 08:00 3次下载
    <b class='flag-5'>DHCP</b><b class='flag-5'>工作原理</b>的教学资料设计

    dhcp的作用是什么_dhcp工作原理

    DHCP是动态主机设置协议,是一个局域网的网络协议,使用UDP协议工作。主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。
    发表于 04-22 10:11 4.3w次阅读

    DHCP服务器的工作原理及常见问题总结

    关于一些DHCP服务器的工作原理、常见问题总结和虚拟机部署DHCP服务器时出现的问题
    的头像 发表于 02-11 09:26 1628次阅读

    开启了dhcp但获取不到ip

    到IP地址时,可能会遇到一些问题。下面我将详细解释为何会出现这种情况,并提供相应的解决办法。 首先,让我们快速回顾一下DHCP工作原理。当我们的设备连接到网络时,它会通过DHCP服务器请求分配一个IP地址。
    的头像 发表于 11-27 14:47 2981次阅读

    dhcp配置详细步骤

    中央服务器上集中管理和分配IP地址,简化了网络配置的过程,提高了网络管理的效率。本文将详细介绍如何进行DHCP配置的步骤。 一、了解DHCP 在开始配置DHCP之前,首先需要
    的头像 发表于 11-27 14:50 3147次阅读

    dhcp服务异常怎么修复

    出现异常,导致设备无法正常获取 IP 地址。本文将详细介绍如何修复 DHCP 服务异常问题。 一、了解 DHCP工作原理 在深入探讨如何修复 D
    的头像 发表于 11-27 14:53 2393次阅读

    简述DHCP工作原理

    的分配,减轻了手动配置的负担,并能够避免重复分配的问题。本文将详细介绍DHCP工作原理DHCP工作原理可以分为四个主要步骤:发现、提供、请求和确认。 发现(Discover):
    的头像 发表于 11-27 15:01 1251次阅读

    DHCP和DNS是如何工作的?两者之间有何区别?

    DHCP和DNS是如何工作的?两者之间有何区别? DHCP(动态主机配置协议)和DNS(域名系统)是计算机网络中起着重要作用的两个协议。它们都是用来管理与互联网连接的设备和域名的。 首先,让我们
    的头像 发表于 12-27 14:09 409次阅读