网络协议:DHCP协议工作原理,DHCP分配方式,DHCP租约,Wireshark抓包分析DHCP报文

本文主要是介绍网络协议:DHCP协议工作原理,DHCP分配方式,DHCP租约,Wireshark抓包分析DHCP报文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《计算机网络零基础快速入门》

DHCP协议

  • 一、简介
  • 二、分配方式
    • 1)自动分配
    • 2)手工分配
    • 3)动态分配
  • 三、工作原理
  • 四、抓包分析
  • 五、租约

计算机想要 「通信」必须要有一个IP地址,IP协议只是提供了IP,想要使用IP,你得自己配,而DHCP就是用来分配IP的协议。

一、简介

DHCP(Dynamic Host Configuration Protocol)也叫动态主机配置协议,负责「管理」「分配」IP。

DHCP使用UDP传输数据,客户端发送请求到DHCP服务器的67端口,服务器返回响应给客户端的68端口。

DHCP协议使用C/S架构,分为两个部分:

  • DHCP Server(服务器):安装了DHCP协议的服务器;控制一段IP地址范围,处理客户端的DHCP请求。
  • DHCP Client(客户端):PC等终端设备;使用DHCP服务器分配的IP地址、默认网关、DNS服务器地址等配置信息。
  • DHCP Relay(中继):非必选!跨网段时(路由器默认不转发广播),作为中间人负责转发服务器和客户端间的DHCP报文。

二、分配方式

管理员可以配置DHCP分配IP地址的方式:

1)自动分配

​ DHCP服务器为第一次连接的客户端分配一个「永久」性的IP地址,客户端多次连接时,IP地址不会变化。

2)手工分配

​ 管理员提前在DHCP服务器配置好客户端的IP地址,类似静态配置。

3)动态分配

​ DHCP服务器给客户端分配一个受租约限制的IP,租约到期后可以被其他客户端使用。

三、工作原理

常见的DHCP工作过程分为四步:

  1. DHCP Discover :客户端广播发现报文。
  2. DHCP Offer :服务器返回响应报文,携带IP地址。
  3. DHCP Request :客户端广播请求报文,希望使用这个IP地址。
  4. DHCP ACK :服务端响应确认报文,客户端开始使用IP。

在这里插入图片描述
1)需要IP的客户端,广播一条发现报文( DHCP Discover )。

2)所有DHCP服务器都会收到发现报文,并向客户端发送一个响应报文( DHCP Offer ),响应报文中携带服务器自己的IP和可以分配给客户端的IP;

3)客户端收到第一个响应后,会广播一个请求报文( DHCP Request ),并将响应报文中的服务器IP和可以分配的IP放到报文里。

4)所有DHCP服务器都会收到请求报文,并判断报文里的服务器IP是不是自己:

  • ​ 如果不是自己,就收回刚才分配的IP;
  • ​ 如果是自己,就向客户端发送一个确认响应报文( DHCP ACK ),并在报文里提供IP地址的租期。

5)客户端收到响应报文后,检查分配的IP是否可用:

  • 如果可用,就使用IP;
  • ​如果不可用,比如IP已经被别人使用,就向DHCP服务器发送拒绝报文,通知服务器禁用这个IP,让后重新申请IP(回到第一步)。

6)客户端可以随时发送释放报文( DHCP Release),释放IP地址,服务器收到释放报文后,会回收IP地址并重新分配。

其他涉及的报文类型:

  • DHCP Decline:客户端发现IP地址无法使用时,就发送拒绝报文,通知服务器禁用这个IP。
  • DHCP NAK:服务器对客户端 DHCP Request 响应的拒绝报文,客户端收到后重新 DHCP Discover。
  • DHCP Inform:客户端获取IP地址后,向服务器获取DNS等配置信息。

四、抓包分析

重启网卡,抓取DHCP协议的数据包:

在这里插入图片描述

  1. 第一个包是 DHCP Release,这是关闭网卡时,客户端发送的释放IP的数据包:“这个IP我用完了,你回收吧”
  2. 第二个包是 DHCP Discover ,客户端广播的发现报文:“谁是DHCP服务器,我需要IP地址!”
  3. 第三个包是 DHCP Offer ,DHCP服务器们返回的响应报文:“我有IP地址!”,“我也有IP地址”,“……”
  4. 第四个包是 DHCP Request ,客户端广播的请求报文:“我要使用这个DHCP服务器提供的IP地址。”
  5. 第五个包是 DHCP ACK ,被使用IP的服务器:“好的,你用吧,租期是8个小时。”;没被使用IP的服务器 “不用拉到(小声哔哔)”。

五、租约

DHCP给分配的IP设置一个租期,默认1天;

当租期超过 50% 时,客户端会向服务器发送请求报文( DHCP Request )来续租IP地址:

  • 如果服务端收到,就响应确认报文( DHCP ACK ),同时延长租期;
  • ​ 如果没收到,则什么也不做。

当租期超过 87.5% 时,客户端再次广播请求报文( DHCP Request )来续租IP:

  • 如果服务端收到,就响应确认报文( DHCP ACK ),同时延长租期;
  • ​ 如果没收到,则什么也不做,直到租期结束,客户端向服务端发送释放报文( DHCP Release),然后重新广播发现报文( DHCP Discover ),申请IP地址。

这篇关于网络协议:DHCP协议工作原理,DHCP分配方式,DHCP租约,Wireshark抓包分析DHCP报文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759369

相关文章

Java中Map的五种遍历方式实现与对比

《Java中Map的五种遍历方式实现与对比》其实Map遍历藏着多种玩法,有的优雅简洁,有的性能拉满,今天咱们盘一盘这些进阶偏基础的遍历方式,告别重复又臃肿的代码,感兴趣的小伙伴可以了解下... 目录一、先搞懂:Map遍历的核心目标二、几种遍历方式的对比1. 传统EntrySet遍历(最通用)2. Lambd

Spring Boot 处理带文件表单的方式汇总

《SpringBoot处理带文件表单的方式汇总》本文详细介绍了六种处理文件上传的方式,包括@RequestParam、@RequestPart、@ModelAttribute、@ModelAttr... 目录方式 1:@RequestParam接收文件后端代码前端代码特点方式 2:@RequestPart接

Springboot配置文件相关语法及读取方式详解

《Springboot配置文件相关语法及读取方式详解》本文主要介绍了SpringBoot中的两种配置文件形式,即.properties文件和.yml/.yaml文件,详细讲解了这两种文件的语法和读取方... 目录配置文件的形式语法1、key-value形式2、数组形式读取方式1、通过@value注解2、通过

java中4种API参数传递方式统一说明

《java中4种API参数传递方式统一说明》在Java中,我们可以使用不同的方式来传递参数给方法或函数,:本文主要介绍java中4种API参数传递方式的相关资料,文中通过代码介绍的非常详细,需要的... 目录1. 概述2. 参数传递方式分类2.1 Query Parameters(查询参数)2.2 Path

Java线程池核心参数原理及使用指南

《Java线程池核心参数原理及使用指南》本文详细介绍了Java线程池的基本概念、核心类、核心参数、工作原理、常见类型以及最佳实践,通过理解每个参数的含义和工作原理,可以更好地配置线程池,提高系统性能,... 目录一、线程池概述1.1 什么是线程池1.2 线程池的优势二、线程池核心类三、ThreadPoolE

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

MybatisPlus中几种条件构造器运用方式

《MybatisPlus中几种条件构造器运用方式》QueryWrapper是Mybatis-Plus提供的一个用于构建SQL查询条件的工具类,提供了各种方法如eq、ne、gt、ge、lt、le、lik... 目录版本介绍QueryWrapperLambdaQueryWrapperUpdateWrapperL

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过