zoukankan      html  css  js  c++  java
  • DHCP完整过程详解及Wireshark抓包分析

    DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,简单来说就是主机获取IP地址的过程,属于应用层协议。
    DHCP采用UDP的68(客户端)和67(服务器)端口进行通信。

    【过程】
    DHCP过程主要为DHCP Discover-->DHCP Offer-->DHCP Request-->DHCP Ack四个过程。
    通过Wireshark抓取DHCP获取IP过程的数据报文。
    1、开Wireshark抓包
    2、PC当前已有IP,使用cmd命令释放IP(ipconfig /release),并重新获取IP(ipconfig /renew)

    3、停止抓包,使用bootp过滤报文。

    4、可以看到图中的5个报文,其中DHCP Release报文为PC释放IP时发出的报文。

    获取IP时,PC会发送DHCP Discover广播报文,由于当前PC没有IP,故源IP为0.0.0.0;特别要注意到的是,PC会随机出一个Transaction ID,如果之后收到的Offer报文中的Transaction ID与PC模拟出的不同,PC会将该Offer报文直接丢弃。

    DHCP Offer报文

    DHCP Request报文

    DHCP Ack报文

    【模拟服务器发送Offer报文的过程及注意事项】
    1、保证服务器与客户端的连通性
    2、准备好一个Offer报文(可编辑)
    3、使用Wireshark抓取客户端发出的Discover报文,确定当前客户端随机出的Transaction ID
    4、更改Offer报文中的Transaction ID与Discover报文中一致
    5、使用发包软件发送Offer报文

    注:Transaction ID

    【地址租期】
    DHCP服务器提供的每个IP地址都有相应的租用期,在Offer报文中的IP Address Lease Time中可以看到。地址租期时间过长会导致地址资源长期被占用,租期过短会导致DHCP请求包过多,增加网络负担。还要结合当前使用场景来设置。一般来说,对DHCP客户端数量较大,且断开网络比较频繁的场所,如机场、商铺等,一般把DHCP租期配置较短,这样IP地址能很快被回收。

    【IP续租过程】
    客户端会在地址租期还有1/2的时候,向DHCP服务器发送DHCP Request报文;如果收到服务器的DHCP Ack后,客户端的IP地址租期重新回满。
    如果未收到Ack,可继续使用该IP,在租期还有1/4时发出第二次Request报文;如果收到Ack,租期回满;
    如果未收到Ack,在租期还有1/8时发出第三次Request报文,如果收到Ack,租期回满
    如果未收到Ack,租期结束后IP被回收。

  • 相关阅读:
    CALayer3层的属性
    CALayer1简介
    网络处理2异步POST请求和同步请求
    网络处理1异步GET请求
    【ObjectiveC】05第一个OC的类
    CALayer4自定义层
    .Net网站不能预编译以及不能请求的调试过程
    (源码)WinForm TextBox 实现自动索引功能
    分享一个WinForm里面自定义的MessageBox
    C#操作十六进制数据以及十进制与十六进制互相转换
  • 原文地址:https://www.cnblogs.com/Wendy-r/p/12679241.html
Copyright © 2011-2022 走看看