dhcp是什么协议(dhcp协议用在什么情况下)

文章主要脉络如下。

dhcp是什么协议(dhcp协议用在什么情况下)

哈喽小伙伴们大家好啊,本篇文章我们来聊一聊 DHCP 协议。在聊之前,先想象一个场景。

你现在站在地铁上或者坐在办公室中,你的手机也好,电脑也好都有一个 IP 地址,假如这个 IP 地址是你手动输入的,你需要写下面这些东西 ……

dhcp是什么协议(dhcp协议用在什么情况下)

电脑配置这些还好,直接咔咔咔的配置完了,如果你用的是手机,那么你需要点到 IP 地址,输入 IP 地址,点到子网掩码,输入子网掩码,点到默认路由,输入路由,点到 DNS 服务器,输入 DNS 服务器 …… 这玩意这么麻烦啊,恰好你刚配置完,领导叫你开会,得嘞,刚配置好的地址白瞎了。换了一个环境,需要重新配置 IP 地址,于是你把上面的步骤再重复了一遍,这时候散会了,然后你炸了。。。。。。

我们还省去了你有可能配置错误的时候。

上面这段描述最让人恼火的就是你需要手动配置 IP 地址,woc,为啥不能设置成自动配置 IP 地址呢?谁说不能的,能!那就是用 DHCP, 这也是我们下面要聊的内容。

认识 DHCP

DHCP的全称是 Dynamic Host Configuration Protocol动态主机配置协议。使用 DHCP 就能实现自动设置 IP 地址、统一管理 IP 地址分配。也就是不管你是在开会还是在工位干活,都省去了手动配置 IP 地址这一步繁琐的操作,同时 DHCP 也大大减少了可能由于你手动分配 IP 地址导致错误的几率。

DHCP 与 IP 密切相关,它是 IP 网络上所使用的协议。如果你想要使用 DHCP 提供服务的话,那么在整条通信链路上就需要 DHCP 服务器的存在,连接到网络的设备使用 DHCP 协议从 DHCP 服务器请求 IP 地址。DHCP 服务器会为设备分配一个唯一的 IP 地址。

除了 IP 地址外,DHCP 服务器还会把子网掩码,默认路由,DNS 服务器告诉你。

DHCP 服务器

现在,你不需要手动配置 IP 地址,也不再需要管理 IP 地址了,管理权已经移交给了 DHCP 服务器,DHCP 服务器会维护 IP 地址池,在网络上启动时会将地址租借给启用 DHCP 的客户端。

由于 IP 地址是动态的(临时分配)而不是静态的(永久分配),因此不再使用的 IP 地址会自动返回 IP 地址池中进行重新分配。

那么 DHCP 服务器由谁维护呢?

网络管理员负责建立 DHCP 服务器,并以租约的形式向启用 DHCP 的客户端提供地址配置,啊,既然不需要我管理,那就很舒服了~

好了,现在你能舒舒服服的开发了,你用 postman 配了一条 192.168.1.4/x/x 的接口进行请求,请求能够顺利进行,但是过了一段时间后,你发现 192.168.1.4/x/x 这个接口请求不通了,这是为啥呢?然后你用 ipconfig查询了一下自己的 IP 地址,发现 IP 地址变成了 192.168.1.7,怎么我用着用着 IP 地址还改了?DHCP 是个垃圾,破玩意!!@#¥%¥%……¥%

其实,这也是一个 DHCP 服务器的一个功能,DHCP 服务器通常为每个客户端分配一个唯一的动态 IP 地址,当该 IP 地址的客户端租约到期时,该地址就会更改。

唯一意思说的就是,如果你手动设置了一个静态 IP,同时 DHCP 服务器分配了一个动态 IP,这个动态 IP 和静态 IP 一样,那么必然会有一个客户端无法上网。

我就遇到过这种情况,我使用虚拟机配置的静态 IP 是192.168.1.8,手机使用 DHCP 也同样配置了 192.168.1.8 的 IP 地址,此时我的虚拟机还没有接入网络,当我接入网络时,我怎样也连不上虚拟机了,一查才发现 IP 地址冲突了 ……

虽然 DHCP 服务器能提供 IP 地址,但是他怎么知道哪些 IP 地址空闲,哪些 IP 地址正在使用呢?

实际上,这些信息都配置在了数据库中,下面我们就来一起看一下 DHCP 服务器维护了哪些信息。

  • 网络上所有有效的 TCP/IP 配置参数

这些参数主要包括主机名(Host name)、DHCP 客户端(DHCP client)、域名(Domain name)、IP 地址IP address)、网关(Netmask)、广播地址(Broadcast address)、默认路由(default rooter)。

  • 有效的 IP 地址和排除的 IP 地址,保存在 IP 地址池中等待分配给客户端
  • 为某些特定的 DHCP 客户端保留的地址,这些地址是静态 IP,这样可以将单个 IP 地址一致地分配给单个DHCP 客户端

好了,现在你知道 DHCP 服务器都需要保存哪些信息了,并且看过上面的内容,你应该知道一个 DHCP 的组件有哪些了,下面我们就来聊一聊 DHCP 中都有哪些组件,这些组件缺一不可。

DHCP 的组件

使用 DHCP 时,了解所有的组件很重要,下面我为你列出了一些 DHCP 的组件和它们的作用都是什么。

  • DHCP Server,DHCP 服务器,这个大家肯定都知道,因为我们上面就一直在探讨 DHCP 服务器的内容,使用 DHCP ,是一定要有 DHCP 服务器的,要不然谁给你提供服务呢?
  • DHCP Client,DHCP 客户端,这个大家应该也知道,毕竟只有一个服务端不行啊,没有客户端你为谁服务啊?DHCP 的客户端可以是计算机、移动设备或者其他需要连接到网络的任何设备,默认情况下,大多数配置为接收 DHCP 信息。
  • Ip address pool: 你得有 IP 地址池啊,虽然说你 DHCP 提供服务,但是你也得有工具啊,没有工具玩儿啥?IP 地址池是 DHCP 客户端可用的地址范围,这个地址范围通常由最低 -> 最高顺序发送。
  • Subnet:这个组件是子网,IP 网络可以划分一段一段的子网,子网更有助于网络管理。
  • Lease:租期,这个表示的就是 IP 地址续约的期限,同时也代表了客户端保留 IP 地址信息的时间长度,一般租约到期时,客户端必须续约。
  • DHCP relay:DHCP 中继器,这个一般比较难想到,DHCP 中继器一般是路由器或者主机。DHCP 中继器通常应对 DHCP 服务器和 DHCP 客户端不再同一个网段的情况,如果 DHCP 服务器和 DHCP 客户端在同一个网段下,那么客户端可以正确的获得动态分配的 IP 地址;如果不在的话,就需要使用 DHCP 中继器进行中继代理。

现在 DHCP 的组件你了解后,下面我就要和你聊聊 DHCP 的工作机制了。

DHCP 工作机制

在聊 DHCP 工作机制前,先来看一下 DHCP 的报文消息

DHCP 报文

DHCP 报文共有以下几种:

  • DHCP DISCOVER:客户端开始 DHCP 过程发送的包,是 DHCP 协议的开始
  • DHCP OFFER:服务器接收到 DHCPDISCOVER 之后做出的响应,它包括了给予客户端的 IP 租约过期时间、服务器的识别符以及其他信息
  • DHCP REQUEST:客户端对于服务器发出的 DHCPOFFER 所做出的响应。在续约租期的时候同样会使用。
  • DHCP ACK:服务器在接收到客户端发来的 DHCPREQUEST 之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的 IP 和其他信息可以被允许使用。
  • DHCP NAK:DHCPACK 的相反的报文,表示服务器拒绝了客户端的请求。
  • DHCP RELEASE:一般出现在客户端关机、下线等状况。这个报文将会使 DHCP 服务器释放发出此报文的客户端的 IP 地址
  • DHCP INFORM:客户端发出的向服务器请求一些信息的报文
  • DHCP DECLINE:当客户端发现服务器分配的 IP 地址无法使用(如 IP 地址冲突时),将发出此报文,通知服务器禁止使用该 IP 地址。

DHCP 的工作机制比较简单,无非就是客户端向服务器租借 IP ,服务器提供 IP 给客户端的这个过程呗。嗯,你很聪明,大致是这样的,不过有一些细节需要注意下,下面我通过两张图来和你聊一下。

关于从 DHCP 中获取 IP 地址的流程,主要分为两个阶段。

第一个阶段是 DHCP 查找包的阶段

dhcp是什么协议(dhcp协议用在什么情况下)

查找包的阶段主要分为两步:第一步是 DHCP 发现包,第二步是 DHCP 提供包。

DHCP 客户端在通信链路上发起广播,看看链路上有没有能提供 DHCP 包的服务器,然后通信链路上的各个节点会检查自己是否能够提供 DHCP 包,这时 DHCP 服务器说它能够提供 DHCP 包,然后 DHCP 就发出一个 DHCP 包沿着通信链路返回给 DHCP 客户端。

第二个阶段是 DHCP 的请求阶段。

dhcp是什么协议(dhcp协议用在什么情况下)

DHCP 的请求包也分为两步:第一步是 DHCP 请求包,第二步是 DHCP 确认包。

DHCP 客户端在通信链路上发起 DHCP 请求包,请求包主要是告诉 DHCP 服务器,它想要用上一步提供的网络设置,然后 DHCP 服务器向 DHCP 客户端发送确认包,表示允许 DHCP 客户端使用第二步发送的网络设置。

至此,DHCP 的网络设置就结束了,然后通信链路上的主机之间就可以进行 TCP/IP 通信了。

当不需要 IP 地址时,可以发送 DHCP 解除包(DHCP RELEASE)进行解除。另外,DHCP 的设置中通常会有一个租期时间的设定,DHCP 客户端在这个时限内可以发送 DHCP 请求包通知想要延长这个期限。

DHCP 状态机

我们上面知道 DHCP 会发送几种请求包,我们知道,动作肯定伴随着状态的更改,DHCP 也是一样的,在 DHCP 发送/接收各种包的时候,其状态也在发生相应的改变。DHCP 协议可以在客户端和服务器上运行状态机。状态决定了协议接下来要处理的消息类型。

状态之间的转换(箭头)是由于接收和发送消息或者计时器到期才发生的转换。下面是 DHCP 的状态轮转图。

dhcp是什么协议(dhcp协议用在什么情况下)

客户端在开始时没有消息,此时处于 INIT状态,然后客户端会在通信链路上发起一个广播 DHCP DISCOVER。

在 Selecting选择状态下,客户端会收集 DHCPOFFER 消息,直到确定要使用的地址和服务器为止。

一旦 DHCP 客户端做好选择后,它就会发送 DHCPREQUEST 消息并进入 Requesting 状态,在这个状态下它很可能收到并不需要的 ACK 响应,如果这个状态下没有找到合适的地址的话,那么客户端就会发送DHCPDECLINE并恢复为 INIT 状态,但是这种发生的概率比较小。

在处于 Requesting 状态下的客户端很可能接受发送过来的 DHCPACK 消息,获取超时时间 T1和 T2,然后进入 Bound绑定状态,在这个状态下可以使用地址直到地址过期。

在第一个计时器 T1 到期时,客户端会进入 renewing续订状态,并重新尝试建立租约时间,如果收到新的 ACK 消息就表示续订成功,然后就恢复为 Bound 状态。

如果没有收到 ACK 那么 T2 会最终过期进入 Rebinding状态,进入这个状态的客户端会重新尝试获取地址,如果最终的租约到期,那么客户端必须放弃租约地址,并且如果没有其他地址或网络连接要使用,客户端将断开连接。

DHCP 冲突

现在我们讨论一下 DHCP 冲突的问题,DHCP 冲突其实就是 IP 重了,当一个子网中两个或者更多主机配置了相同的 IP 地址时,就会发生 IP 冲突的现象。发生这种情况可能导致的后果是两个冲突的主机混在一起,一台主机可能接收了另一台主机的数据包。

那么造成这种情况的原因是啥呢?

造成这种情况的原因有很多,这里我列举两个可能出现的情况:

  • 第一种情况是一台主机配置了静态 IP 地址,这台主机联网后,其 IP 地址不会在 DHCP 服务器中,然后另外一个主机入网,DHCP 服务器给这台主机自动分配了相同的 IP 地址,这两个地址就产生了 IP 冲突。
  • 第二种情况是,客户端从 DHCP 服务器获得了 IP 地址,然后这台主机下线了,随着租约到期,DHCP 会将这个 IP 地址又分配给了其他主机,等到这个主机重新上线后,由于某种原因,计算机无法访问 DHCP 服务器,这种情况下会造成 IP 冲突。

当检测到 IP 冲突时,通常 Windows 系统和 Mac 系统会弹出 IP 冲突的弹窗。

dhcp是什么协议(dhcp协议用在什么情况下)

DHCP 中继代理

常规家庭网络(土豪除外)中大多数都只有一个以太网,也就是 LAN 网段,一个 DHCP 服务器完全可以满足 LAN 中的客户机使用。但是,在更复杂的网络中,比如企业或者学校,一台 DHCP 服务器显然就无法满足了。因此,这种情况下,往往需要 DHCP 的统一管理,具体实现方式可以通过 DHCP 中继代理来转发 DHCP 流量,如下图所示。

dhcp是什么协议(dhcp协议用在什么情况下)

如上图所示,存在两个网段 A 和网段 B,DHCP 客户机和 DHCP 服务器不在一个网段内,所以我们在通信链路上架设了一个中继代理,DHCP 客户机通过访问中继代理以达到访问 DHCP 服务器的目的。

使用这种方式,我们不再需要在每个网段都设置一个 DHCP 服务器,只需要在每个网段架设一个中继代理即可。它可以设置 DHCP 服务器的 IP 地址,从而可以在 DHCP 服务器上为每个网段注册 IP 地址的分配范围。

DHCP 客户端会向 DHCP 中继代理发送 DHCP 请求包,而 DHCP 中继代理在收到这个广播包之后再以单播的形式发送给 DHCP 服务器。服务器收到该包以后再向 DHCP 中继代理返回应答,并由 DHCP 中继代理将此包发送给 DHCP 客户端。

DHCP 认证

我们总是假想所有情况都能够顺利进行,害怕出问题,这也许意味着我永远只是个初级程序员吧。我们上面探讨的 DHCP 服务器都是合理的、合法的,但是互联网是一把双刃剑,不是所有人都是合法公民。如果假设了一个未经授权的 DHCP 服务器怎么办?它很可能会对网络造成影响。

为了避免这些问题,在 [RFC3118] 中指定了一种认证 DHCP 消息的方法。它定义了一个 DHCP 选项,即Authentication 选项,如下所示

dhcp是什么协议(dhcp协议用在什么情况下)

认证选项的主要目的就是确定 DHCP 消息是否来自一个授权的发送方。

身份验证的代码(code)属性值是 90,而长度(Length)给出了选项中的字节数(不包括代码和长度字段的字节)。如果协议(Protocol)和算法(Algorithm)属性被设置为 0 ,则认证信息字段将保存一个简单的共享配置的 token,token 大家开发应该都接触过吧,就是一条认证信息。只要配置令牌在客户端和服务器上匹配,这条消息就会被接受。

我们上面聊到的只是其中的一种,还有一种更安全的方法是涉及所谓的延迟身份认证,如果协议和算法都被设置为 1,就表示使用了延迟身份认证。在这种情况下,客户端的 DHCPDISCOVER 消息或 DHCPINFORM 消息包括身份验证选项,并且服务器以其 DHCPOFFER 或 DHCPACK 消息中包含的身份验证信息进行响应。这个认证信息中包括一个消息认证码,它提供对发送方的认证和消息的完整性校验。RDM 表示中继检测,中继检测包括一个单项递增的值,只要经过一个代理中继,那么这个中继检测的值就会 + 1。

虽然 DHCP 认证能够确保安全性,但是它没有被广泛使用,原因有两点:

  • 首先,该方法要求在 DHCP 服务器和每个需要身份验证的客户端之间分配共享密钥。
  • 其次,在 DHCP 已经被广泛使用之后,才指定了 Authentication 选项。

总结

这篇文章我和你探讨了计算机网络中一个比较容易忽视的概念,为什么说他容易忽视呢?因为我们平常开发过程中基本上不会管 IP 地址的配置的,也就是环境搭建的时候会用到一些,但是要系统学习计算机网络的话,DHCP 的重要性不可忽视,DHCP 包括工作机制、DHCP 报文消息,DHCP 状态机、DHCP 认证这些都是需要你了解并掌握的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年12月5日 下午1:42
下一篇 2022年12月5日 下午1:49

相关推荐

  • 一天有几秒钟怎样计算(古代的时间算法怎么算)

    我们经常在看电视剧的时候,会发现午时三刻、一柱香、一盏茶等有关时间的问题,但是对于我们都没有概念,今天给大家分析一下。 【一盏茶】-一般有两种说法:一是相当于10分钟,一是相当于14.4分钟 说法一:一年有十二月,一月有五周,一周有六日,一日有十二时辰,一时辰(2小时)有八刻,一刻(15分)-【古时把一天做一百刻即14.4分一刻,曰15分一刻】一盏茶(10分…

    2023年2月6日
    240
  • 小暑节气的由来及传统食物

    小暑二十四节气的第十一个节令。每一年的7月6日-8日,阳光抵达赤纬105°中为“小暑”。小暑表示天气逐渐酷热,在我国很多地区进到炎夏时节。此时已是头伏前后左右。以下是小编为大家整理的小暑节气的由来及传

    2022年10月10日
    340
  • 核磁共振氢谱图怎么看(分析核磁共振氢谱的一般步骤)

    核磁共振氢谱在有机化学中的应用是多方面的。特别是氢谱的测定,已在结构分析工作中成为不可或缺的工具之一,同样,对HNMR谱图的分析在工作中尤为重要。 一般来说,分析HNMR谱图需要以下三个步骤: 首先,看峰的化学位移 确定该峰归属为什么化学基团上的氢,这需要牢记不同基团的化学位移; 其次,看峰积分的大小 通过积分确定各个基团含氢原子的比例。例如,乙基苯中,甲基…

    2023年8月1日
    1820
  • dwl文件用什么打开(dwl文件可以恢复成cad文件么)

    估计很多人注意到在图纸目录下会多出一些*.dwl或*.dwl2的文件,有些人在CAD异常退出后,对图纸进行的修改没有保存,发现图纸目录下有一个与图纸同名的*.dwl文件,以为dwl文件是生成的自动保存或备份文件,有人直接将*.dwl文件的扩展名改成DWG,发现打不开。前两天还有人问怎么打开这个文件。 DWL文件到底是干什么用的呢?为什么不能改成DWG打开呢?…

    2023年4月25日
    150
  • 国庆节主题绘画手抄报(国庆节手抄报及简笔画合集)

    国庆节手抄报及简笔画合集,简单又漂亮,简洁精美迎国庆,可收藏

    2023年10月3日
    40
  • 木工打衣柜封边另外收费吗(木工打衣柜封边没做好后期如何补救)

    木工打衣柜封边一般是很常见的。但是有些木工手艺不好的话,封边会很丑。那么,木工打衣柜封边没做好后期如何补救?一起来看看久久派带来的介绍吧!木工打衣柜封边另外收费吗得看你和木工之间是怎么算的。我找的木工

    2022年10月2日
    1460
  • 齿冷是什么原因引起的(牙齿怕冷是怎么回事)

    有的人在吃冷热酸甜的食物时,牙齿会感到酸软疼痛,但是刺激消失后这些症状也会随之消失,被人们俗称为“牙齿怕冷”。这到底是为什么呢?难道牙齿也会感冒吗? 牙齿感冒也就是牙齿敏感,一般是由某些口腔疾病引起的。常见的就有以下3种: 1、牙龈萎缩:我们的牙齿根部釉质层非常薄弱,外界刺激很容易通过此处进入牙本质小管,进而传导到牙髓,刺激牙神经,引起疼痛感。平时,牙根都有…

    2023年5月12日
    80
  • 三观一致指的是什么(怎样才算三观正的女孩子)

    看过一句话,非常有道理:“爱情,始于颜值,陷于才华,忠于三观。” 真正长久的关系,都是由正确的三观所支撑起来的。 虽然,男人追求女人的时候都看脸,但真正让他爱不释手的女人,一定是三观很正的女人。 容颜易逝,再美丽的容貌,也有凋谢的一天,唯有正确的三观,才是让男人一生疼惜的资本。 因此,女人若是三观很正,就不怕遇不到优秀的男人,因为女人三观正,圈子的质量就越高…

    2022年12月1日
    320
  • 组合贷款多久能批下来(申请组合贷款流程有哪些)

    组合贷款是有公积金贷款和商业贷款组成的,一般是在公积金贷款无法支付的时候,再申请商业贷款,那么组合贷款多久能批下来?组合贷款多久能批下来组合贷一般需要3个月甚至更长的时间才能批下来,因为组合贷涉及到公

    2022年8月26日
    1800
  • 炸蚕蛹的做法大全(蚕蛹怎样做好吃)

    本期导读:蚕蛹怎样做好吃?教你最好吃的3道做法,补充蛋白质,一个抵3个鸡蛋 俗语说“南方有家蚕(桑蚕),北方有柞蚕”,蚕蛹的原动物为蚕蛾,柞蚕是东北的特产,尤其以辽宁盛产,蚕蛹的品种个头较大,分黑色和黄褐色两种。 蚕蛹是一种营养价值较高的食物,含有丰富的蛋白质,以及脂肪、维生素等营养物质,民间常说一个蚕蛹可以抵三个鸡蛋的营养,蚕蛹所含的蛋白质易被水解,且与人…

    2024年9月6日
    10

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信