DHCP协议简析

不知道看官大人是否有过这样的疑惑?一台计算机,插上网线是不是就可以直接上网了呢?其实没有这么简单,需要配置本机IP地址、子网IP地址、网关IP地址和DNS地址等。配置有两种方式,一种是手动配置,采用静态IP上网方式,可是这种方式怎么能让致力于世界更美好的工程师大大心满意足呢?

于是,就有了今天的主角,基于UDP的DHCP(Dynamic Host Configuration Protcol),动态主机配置协议,其有简单的六个阶段,Discover(发现)、Offer(提供)、Request(请求)、Ack(确认)和Relogin(重新登录)以及Update(更新租约)。看官们,跟着小采风的脚步,一起来学习一下吧!

一、发现阶段:客户机寻找DHCP服务器

图1:Discover

截图分析:

1)客户端不知道自己的IP,以0.0.0.0标识,DHCP服务器IP地址不清楚,以255.255.255.255广播地址标识;客户机以00:0b:72:01:fc:42来标识MAC地址,以FF:FF:FF:FF:FF:FF广播地址来寻找DHCP;

2)其他主机接收到此包,直接丢弃;DHCP服务器明确自己需要接受此包,(注可以被多台DHCP服务器接收);

3)客户机端口为68,DHCP端口为67,为默认端口号;

二、提供阶段:DHCP服务器提供IP地址

截图分析:

图2:Offer

1)此包仍在发送中,客户机并不具备192.168.0.10的IP地址;

2)DHCP服务器优先基于ARP协议与之通信,如果失败,直接提供广播方式发送;

三、请求阶段:客户机确认DHCP提供的IP地址

若多台DHCP服务器为其提供Offer信息,则客户机只接收第一台DHCP服务器的IP地址,那么第一台DHCP服务器如何知道自己提供的IP地址被接收?其他DHCP服务器如何知道自己提供的IP地址没有被接收呢?

截图分析:

图3:Request (1)

1)客户机虽然接收到分配的IP地址,但是没有与DHCP服务端进行确认,并不能开始使用;

2)这是一个与图1相同的广播形式的数据包,目的在于与第一个DHCP服务器进行确认,与其他DHCP服务器进行通信,告知其分配的IP地址并未采用,这是如何实现的呢?截图分析:

图4:Request(2)

3)图3的数据包,相应网络范围内的DHCP服务器均会收到,每台DHCP服务器检查DHCP Sever Identifier字段,如果是本机IP,则确认其分配的即Requested IP Address有效;如果不是本机IP,则其分配的IP地址则无效;

四、确认阶段:DHCP服务器确认IP字段有效

截图分析:

图5:Ack

1)仅图4中确认IP地址有效的DHCP服务器,返回Ack数据包;

2)此数据包包含在本文开头时强调的上网的基本信息,实现动态上网;


故事到这里是否就可以圆满结束了呢?那动态主机配置如何体现其动态过程呢?看官切勿着急,工程师们热爱的是全面的系统,怎么会置之不理呢?

五、重新登录与更新租约

1)客户机重新启动后,不再直接发送Discover信息,而是发送Request信息;DHCP服务器会优先尝试,允许其继续使用IP地址,发送Ack数据包;如果该IP不能再使用,返回Nack数据包,客户机重新开始Discover阶段;

2)DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息,与1)中过程相同;


DHCP协议简析就到这里啦,本次的内容简单实用,重点在于Request阶段的那个具备广播属性的数据包,作用有二,其一是与第一个DHCP服务器确认其IP地址的有效性,其二是与其他DHCP服务器说明其IP地址并未被采用。

 最美人间四月天。不经意间,已是四月的尾巴了。小采风不由得感叹,时光之短暂。四月,对于小采风来说,意味深长。不过,收获一个相约一起跑步的队友,让原本柳絮荡漾的校园里,更平添了许多欢笑。五一小长假,节后见。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,851评论 6 13
  • 前言 写这篇文章的缘由是客户提出的一个问题:客户使用公司的Wi-Fi产品的App,有两个设备出现了问题,点击App...
    Noskthing阅读 8,073评论 2 23
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 9,152评论 0 10
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,473评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 14,470评论 6 174