网络层——DHCP 协议

禁止码迷,布布扣,豌豆代理,码农教程,爱码网等第三方爬虫网站爬取!

自动获取地址

如果是对于不怎么需要移动的设备,那么它的 IP 地址变化的频率是很低的,例如机房、服务器和学校的各种实验室。现在请考虑一个情景,今天下午的实验课需要自己带电脑,第一节课在教室一上课,第二节课在教室二上课;上完课你去食堂吃饭,同时你也想在食堂看点《计算机网络》的网课;吃完饭后,热爱学习的你又带着电脑前往图书馆继续学习。注意这个情景,你一共切换了 4 个地点,假设这 4 个地点都属于不同的网络段,因此为了能够正常地访问互联网,你需要根据对应的网络前缀配置一个新的 IP 地址。
对于主机而言,我们可以手动配置 IP 地址,这种硬核的手法被称之为硬编码或静态编码,但是如果考虑上文所述的情景,这种方式显然较为繁琐。作为一个“懒人”,我们总是希望有一种手法可以自动地完成上述操作,DHCP 协议就能够实现动态配置 IP 地址的需求。

动态主机配置协议

DHCP 允许主机自动获取 IP 地址,由于其具有将主机连接到一个网络的网络相关方面的自动能力,因此又被称之为即插即用协议零配置协议。网络管理员通过对 DHCP 服务器的配置,使得某给定主机每次与网络连接时能得到一个相同地址,或者是被分配一个临时 IP 地址。进行 IP 地址分配之后,DHCP 协议还能够提供子网掩码、默认网关和本地 DNS 服务器地址。
DHCP 协议被广泛应用于住宅因特网接入网、企业网和无线接入网中,这使得主机频繁加入、退出网络变得极其便利。若没有 DHCP 协议的应用,则任何需要临时接入的主机都需要由专人进行 IP 地址分配,而且需要 24 小时都有系统管理员可以提供这种服务,这无疑是开销很大的做法。

DHCP 服务器

DHCP 协议是一个客户-服务器协议,DHCP 服务器用于提供 DHCP 协议的服务,客户是需要接入网络的主机,为了正常地访问互联网,它需要获取 IP 地址及相关网络配置信息。
在最简单的场合下,每个子网都需要部署一台 DHCP 服务器(通常是一台路由器),若子网中没有 DHCP 服务器,则需要 DHCP 中继代理来提供 DHCP 服务,DHCP 中继代理的任务是存储用于该网络的 DHCP 服务器地址。当 DHCP 中继代理收到 DHCP 发现报文时,就会使用单播的方式向 DHCP 服务器转发该报文,并等待应答,中继代理也同样需要负责转发 DHCP 服务器的应答信息。

配置步骤

DHCP 协议的运行过程可以分为 4 个步骤,分别是 DHCP 服务器发现、DHCP 服务器提供、DHCP 请求和 DHCP ACK。

DHCP 服务器发现

对于需要接入网络的主机,首要任务是发现一个能够为其分配 IP 地址的 DHCP 服务器。要完成这个工作,主机会使用 UDP 协议使用端口 67发送 DHCP 发现报文
DHCP 发现报文应该如何发送?注意在这个时候主机并不知道所在网络的网络前缀,自然也不知道该网络的 DHCP 服务器的 IP 地址了,因此 DHCP 发现报文将使用广播进行报文发送,仅有 DHCP 服务器可以对 DHCP 发现报文进行回应,此时的目的地址为广播地址 255.255.255.255,而源地址为 0.0.0.0。DHCP 服务器讲吧 IP 数据报传递给链路层,链路层将该帧广播到所有与子网连接的孩子结点。

DHCP 服务器提供

当 DHCP 服务器收到 DHCP 发现报文时,会现在服务器的数据库中查找计算机的配置信息,若找到则返回找到的信息。若找不到,则服务器将发送一个 DHCP 提供报文为用户做出回应,包括收到的发现报文的事务 ID,向客户推荐的 IP 地址,网络掩码和 IP 地址租用期。此时报文的发送的方式也是使用广播地址 255.255.255.255,使用 68 端口向子网中的所有孩子结点进行广播,为什么此处还是广播?这是因为在子网中,DHCP 服务器可能并不唯一,因此先收到 DHCP 发现报文的 DHCP 服务器可以通过广播的方式告知其它 DHCP 服务器,让它们收回 DHCP 服务。
这里我们稍微讨论下租用期,对于新接入的主机,分配的 IP 地址不能够永久地存在,因为只要该主机移动到另一个网络中,该 IP 地址的滞留将变为额外的开销。在实际情况下,主机在到达租用期的一半时间时,就会向 DHCP 服务器申请延长租用期,若主机因为某些原因没有进行延期申请(例如移动到另一子网),DHCP 服务器将在租用期到期时收回分配的 IP 地址。注意此时 DHCP 服务器可以拒绝用户的延期,此时将发送 DHCP NACK 报文,此时主机需要重新使用 DHCP 协议申请新的 IP 地址。租用期的设置由 DHCP 服务器自己决定,例如学校的机房可以把租用期设置为一节课的时间。

DHCP 请求

新到的客户将选择一个 DHCP 服务器,而且此时主机已经知道了 DHCP 服务器的 IP 地址了,因此向选中的 DHCP 服务器发送 DHCP 请求报文进行回应。

DHCP ACK

服务器使用 DHCP ACK 报文对 DHCP 请求报文进行响应,正是所要求的的参数。当客户收到 DHCP ACK 保温之后,DHCP 协议交互就完成了,此时客户可以在租用期内使用 DHCP 分配的 IP 地址,这种状态被称之为已绑定状态

DHCP 协议缺陷

从移动性的角度来看,当结点连接到一个新子网时,要通过 DHCP 协议得到一个新的 IP 地址,而当一个移动节点在子网之间移动时,就不能维持与远程应用之间的 DHCP 连接。因此对于移动 IP,我们需要一种对 IP 基础设施的扩展,允许移动节点在网络之间移动时,也能使用其单一的永久的地址。

参考资料

《计算机网络(第七版)》 谢希仁 著,电子工业出版社
《计算机网络 自顶向下方法》 [美] James F.Kurose,Keith W.Ross 著,陈鸣 译,机械工业出版社
DHCP 协议_百度百科

posted @ 2020-07-04 17:43  乌漆WhiteMoon  阅读(683)  评论(0编辑  收藏  举报