• 详解DHCP工作方法,并用wireshark对DHCP四个数据包抓包分析


    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为中国PE第一股,市值超1000亿元。 

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    原文地址:http://www.ctowhy.com/395.html

    DHCP的作用:

    局域网中,用户电脑都需要IP地址才使用网络服务,但是客户并不都会配置IP地址,这时,可以在网络中部署一个DHCP服务器,用来给这些客户主机动态的分配IP。

    所有DHCP的客户端,在向DHCP服务器租用到地址后,会在DHCP服务器端留下租用信息,网络管理员可以根据这些分配信息统一管理这些客户。

    DHCP的一些概念:

    DHCP是一个典型的Client/Server模型的协议,使用UDP传输

    • DHCP Server端,使用UDP端口:67
      DHCP Server可以在很多设备上部署,如Cisco、H3C、Juniper、Windows、Linux……都可以
    • DHCP Client端,使用UDP端口:68
      客户端(主机、路由器、交换机、网络打印机、网络摄像头……都可以作为DHCP客户端)

    DHCP的基本工作流程

    DHCP的客户端如果把网卡的IP地址配置为动态获取IP的方式,就会发送DHCP请求,来寻找DHCP服务器申请地址;b
    dhcp-operate-1

    DHCP的在客户端申请、服务器下发地址的过程中,一共会产生四个数据包,如下:
    dhcp-operate-2

    根据这四个数据包来看,DHCP的工作流程如下图:
    dhcp-operate-3

    DHCP详细工作流程解析

    第一步:
    DHCP客户端主动发起DHCP Discover包,用来寻找DHCP服务器,其中:

    • 源MAC是自己的MAC地址,目的MAC是FFFF.FFFF.FFFF的广播
    • 源IP是0.0.0.0(现在还没有IP,就用全0地址),目的IP是255.255.255.255的三层广播

    因为DHCP服务器在哪里还不知道,所以使用广播来寻找,广播会泛洪到整个网段中;

    第二步:
    DHCP服务器收到客户端发的DHCP Discover之后,会在自己的地址池中拿出一个没有分配的地址以及配套的参数(如:掩码、DNS、网关、域名、租期……),然后以一个DHCP Offer包发送出去。
    这个DHCP Offer数据包的地址如下:

    • 源MAC是DHCP服务器的MAC,目的MAC是FFFF.FFFF.FFFF的广播
    • 源IP是DHCP服务器的IP,目的IP是255.255.255.255的广播

    这时客户端还没有获得IP,DHCP服务器端现在还无法定位客户端,所以用广播来回应。

    第三步:
    客户端收到这个DHCP Offer后,会再发出一个DHCP Request给服务器来申请这个Offer中包含的地址。
    这个时候,客户端还没有正式拿到地址,所以还需要向DHCP服务器申请。

    • 这时客户端的源IP还是0.0.0.0,目的IP还是255.255.255.255
    • 源MAC是客户端的MAC,目的MAC是FFFF.FFFF.FFFF广播包

    第四步:
    服务器收到客户端的请求后,会发出一个DHCP ACK用来确认这个IP地址可以分配给这个客户端。
    客户端收到第四个DHCP ACK数据包才算正式拿到了这个IP。

    【更多“ICMP协议”相关的内容,点击返回:TCP IP协议文章列表】

  • 相关阅读:
    跳表实现
    剑指OFFER24-反转链表
    java常用的明文加密算法
    创建 Java 第三方类库,以及制作类库的Javadoc
    java 中的正则表达式
    JDK、JRE、JVM 关系
    java 编译运行过程
    为什么要配置环境变量
    搭建 java 开发环境
    idea 设置
  • 原文地址:https://www.cnblogs.com/AloneSword/p/4510189.html
Copyright © 2020-2023  润新知