2020上海交通大学考研专业课之DHCP

今天,来讨论一下今年考研专业课中出现的另一个知识点:DHCP。交大推荐的课本上对这个知识点没有详细说过,所以考到的时候我也稍微有点懵,不过好歹在谢希仁的《计算机网络》书上见到过这个点,但也就是提到了一下,我对这个协议的详细了解还建立在两年前学CCNA的时候,培训课上老师讲过这个知识点,还有点印象。交大每年专业课都会有一些课本上没有讲过的知识点,应该就是考察基本面吧~

卷子上的题是这样问的:RARP的功能是什么,和哪个协议的功能比较类似,说明两个协议的典型工作过程,说明二者在实现和应用上的区别?

这个题目其实就是考RARP和DHCP的原理和区别

下面我先介绍RARP的功能原理和DHCP的功能原理,然后再来分析二者的区别和联系。

RARP

即反向地址转换协议。它允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网网关路由器里创建一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器,此机器就会存储起来以便日后使用。 RARP 可以使用于以太网、光纤分布式数据接口及令牌环LAN。

上面给出的是搜狗百科的定义,说白了,其实它就是ARP的逆过程。ARP的功能是根据用户的IP地址来解析出对应的MAC地址。那么RARP就是根据MAC地址去反向解析出IP地址。只不过需要注意的一个点就是,主机的物理地址(MAC地址)在出厂时就有的,而IP地址则是之后在用户需要联网时,为用户分配的。所以ARP的过程只是根据IP地址去找出对应MAC地址的过程。而RARP则是一个请求RARP服务器为用户分配IP地址的过程。所以,从这个角度来说,RARP的功能类似于DHCP。而且现在由于DHCP的存在,它基本已经代替了RARP的功能,所以现在RARP已经基本不怎么用了。所以现在一些有关网络的课本,对这个协议也只是提一提它的功能,并没有详细说明。

工作原理

  1. 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址
  2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址
  3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用
  4. 如果不存在,RARP服务器对此不做任何的响应
  5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败
下面重点来说一下DHCP这个协议

DHCP

动态主机配置协议(Dynamic Host Configuration Protocol),简称DHCP,是一个应用于局域网的网络协议,该协议允许服务器向客户端动态分配IP地址和配置信息。
该协议位于OSI模型的应用层,使用UDP协议工作,主要有两个用途:

  • 用于内部网或网络服务供应商自动分配IP地址给用户
  • 用于内部网管理员作为对所有电脑作中央管理的手段。

基本功能

通常被应用在大型的局域网络环境中,主要作用是集中的管理分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率

DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:

  • 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用
  • DHCP应当可以给用户分配永久固定的IP地址
  • DHCP应当可以同用其他方法获得IP地址的 主机共存(如手工配置IP地址的主机)
  • DHCP 服务器应当向现有的BOOTP 客户端提供服务(对于BOOTP,一会儿再做说明)

DHCP的工作原理

DHCP工作原理图

DHCP详细的交互过程如下:

DHCP交互过程

  • DHCP Client以广播的方式发出DHCP Discover报文
  • 所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文
    DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录
  • DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文
    DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址
  • DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息
  • DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程
  • DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配
在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户 端,让客户端重新发起地址请求过程。

DHCP分配地址的三种机制

  • 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址
  • 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用
  • 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机

DHCP应用中涉及到的三类设备

  • DHCP客户端:在支持DHCP功能的网络设备上将指定的端口作为DHCP Client,通过DHCP协议从DHCP Server动态获取IP地址等信息,来实现设备的集中管理。一般应用于网络设备的网络管理接口上
  • DHCP服务器:DHCP服务器指的是由服务器控制一段IP地址范围,客户端登录服务器时就可以自动获得服务器分配的IP地址和子网掩码
  • DHCP中继代理:DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容。而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去
    DHCP中继代理

在DHCP客户端看来,DHCP中继代理就像DHCP服务器;在DHCP服务器看来,DHCP中继代理就像DHCP客户端。

DHCP客户端可以带来如下好处:

  • 降低了配置和部署设备时间

  • 降低了发生配置错误的可能性

  • 可以集中化管理设备的IP地址分配

DHCP的应用场合

什么时候最好使用DHCP?

**公司内部很多 Laptop 计算机使用的场合!**因为 Laptop在使用上,当设定为DHCP client 的时候,那么只要它连接上的网域里面有一部可以上网的 DHCP服务器 ,那部Laptop也就可以连接上 Internet 了!

网域内计算机数量相当的多时。另外一个情况就是网域内计算机数量相当庞大时,大到没有办法一个一个的进行说明来设定他们自己的网络参数,这个时候为了省麻烦,还是架设DHCP 来的方便。

什么情况下不建议使用 DHCP 主机?

在网域内的 计算机,有很多机器其实是做为 主机的用途,很少Client 需求,那么似乎就没有必要架设 DHCP。

BOOTP和DHCP的区别与联系

BOOTP比DHCP出现的早,和DHCP有一些类似的处理过程。BOOTP主要用于无盘工作站。无盘工作站没有硬盘和操作系统,但维护方便,很多超市的收银终端使用的就是这种工作站。

相同点

  • DHCP和BOOTP都基于客户端/服务器模式
  • DHCP和BOOTP都使用UDP的67和68号端口
  • 在DHCP和BOOTP中,服务器负责IP地质的分配和管理,每一个分配的IP地质都存储在服务器的数据集中,叫做捆绑,客户端使用DHCP获取IP地址信息

不同点

  • BOOTP中预先手工配置主机信息,当BOOTP客户端请求IP地址时,BOOTP服务器在预先配置的信息中搜索和请求客户端MAC地址相匹配的条目。如果该条目存在,和这个条目相对应的IP地址被返回给客户端。这意味着,IP地址和MAC地址的捆绑条目必须先被预先配置在BOOTP服务器上
  • DHCP根据租约机制允许客户端续租或重新分配网络地址。这种租约机制允许一个IP地址在不同的时间可以被分配给多个客户端使用,也允许一个客户端移到另一个子网时重新获取新的IP地址,还允许客户端刷新新租约或保持相同的IP地址。BOOTP不使用租约机制,BOOTP中一个客户端被分配的IP地址不能在被分配给其他的客户端。
  • BOOTP只能分配4个参数:IP地址,子网掩码,网关,DNS。DHCP除了提供4个基本的参数外还可以提供额外的配置参数,诸如WINS和域名等

从上面对于RARP和DHCP的介绍,我们现在可以来总结性的谈一下二者在应用上的区别:

  • RARP在功能上有点类似于DHCP协议,确切的说DHCP是BOOTP协议的升级,而BOOTP在某种意义上又是RARP协议的升级
  • RARP协议属于数据链路层协议,而BOOTP和DHCP则属于应用层协议
  • RARP报文封装在以太网数据帧中,而BOOTP/DHCP报文则封装在UDP报文中
  • RARP只能实现简单的从MAC地址到IP地址的查询工作,RARP server上的MAC地址和IP地址是必须事先静态配置好的,但DHCP却可以实现除静态分配外的动态IP地址分配以及IP地址租期管理等等相对复杂的功能
  • RARP是早期提供的通过硬件地址获取IP地址的解决方案,但它有自己的局限性,比如RARP客户与RARP服务器不在同一网段,中间有路由器等设备连接,这时候利用RARP就显得无能为力,因为RARP请求报文不能通过路由器,BOOTP/DHCP提供了很好的解决方法
  • RARP使用的是和ARP相同的消息,只不过它的消息中列出的目标MAC地址是其自己的MAC地址,预先配置好的RARP服务器(必须处于客户端同一子网中)接收请求并进行查询。如果目标MAC地址的匹配到RARP服务器就发送ARP响应(包含配置的IP地址在其源IP地址字段中)
  • DHCP大大减轻了配置工作,因为它是动态分配的。在DHCP中,不需要预先配置MAC地址,你只需要配置一个地址池,DHCP会动态地在地址池中选择地址进行分配

这就是关于这个知识点的一些总结,如果还想了解一些考研基础课的经验和学习方法,或者了解一些电子产品的推荐,我会把这些非技术类的文章写在下面的公众号中,有兴趣的小伙伴儿欢迎关注!!

微信公众号

发布了82 篇原创文章 · 获赞 176 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/loveCC_orange/article/details/103870943