DHCP


1. DHCP是什么

协议,一种应用层的网络协议,他可以动态地分配网络中的IP地址和其他网络配置的参数以及网络设备,通俗一点讲,每台设备的IP地址,子网掩码,网关等网络参数信息都是由他来完成的。

1.1DHCP服务器和DHCP的关系

DHCP服务器是实现DHCP协议的网络设备或软件,它负责为客户端设备分配IP地址和其他网络配置参数。

1.2DHCP服务器一般位于生活中的何处

通常情况下,个人设备不具备独立的DHCP服务器,一般现代路由器中集成了DHCP服务器,也有专门的服务器去实现DHCP.

2.DHCP的实现过程

  1. DHCP发现(DHCP Discover):客户端在网络中启动时,发送一个广播消息(DHCP Discover),以寻找可用的DHCP服务器。
  2. DHCP提供(DHCP Offer):DHCP服务器接收到DHCP Discover消息后,会向客户端发送一个DHCP提供消息,其中包含一个可用的IP地址以及其他网络配置参数。
  3. DHCP请求(DHCP Request):客户端收到DHCP Offer消息后,可以选择接受其中的一个DHCP服务器提供的配置。客户端发送一个DHCP请求消息,确认接受该DHCP服务器的配置。
  4. DHCP确认(DHCP Acknowledgment):DHCP服务器收到DHCP请求消息后,会发送一个DHCP确认消息(DHCP Acknowledgment),确认向客户端提供网络配置。
  5. DHCP配置更新:客户端收到DHCP确认消息后,会将接收到的网络配置应用于自身,并更新自己的IP地址、子网掩码、网关、DNS服务器等配置

如下图所示,是DHCP过程的大致实现:

  • 其一:在源客户端发送DHCP请求报文的时候,由于自身IP没有得到分配,于是使用0.0.0.0作为源地址,利用255.255.255.255进行广播传发,所以使用到了UDP广播通信.

  • 其二:DHCP服务器发送offer时,包含了什么信息,IP地址,默认网关,DNS服务器,子网掩码,IP地址租期

地址租期是什么?

IP地址由DHCP分配成功后,意味着每一个客户端所拥有的IP地址都具备一个生命周期,这个时间长度的具体单位便是地址租期,一旦地址租期超过,DHCP则会重新分配一个IP地址,通常而言,这个地址租期是可以设置的,其实也可以想明白,存在个人设备不使用的情况下,这样就可以等使用时再分配地址,而不是一次性分配后,便不管这个地址的存活时间了.

地址租期快过期了,客户端如何去做?

重复3,4过程,只不过此时DHCP服务器发送ACK请求报文中包含了新的地址租期时间,这一过程也叫DHCP Renewal

DHCP服务器如何知道客户端的位置?

通过数据链路层,通过MAC地址确认主机.

  • 其三:DHCP通信的所有通信,都是通过UDP广播通信

下面让我们看一下DHCP具体的实现过程:

  • 红框框出的即为DHCP的基本四个流程

Transaction:是事务的意思,在每次传送数据的时候都会有一个事务ID去记录,这个记录也也用来判断是不是我所需要的数据,而不仅仅局限于Mac地址,所以在四次传输过程了,事务ID一致且不变

2.1客户端发送Discover

2.2DHCP服务器发送offer

2.3客户端发送Request

2.4DHCP服务器发送ACK

由此,客户端便会配置相关的网络信息

为此,我们来观察一下DHCP服务器的IP地址:192.168.0.1,这个IP地址看的十分眼熟,于是我查询了路由器管理设备信息,发现了这个IP地址同时也是默认网关的地址,于是根据我的查询结果得出,这是网络设备默认设置也是DHCP服务器的一种设置,在家庭学校中比较常见

DHCP是什么的更多相关文章

  1. 协议森林16 小美的桌号(DHCP协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址.DNS域名服务器地 ...

  2. 获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)

    前面我们已经讨论了 DHCP agent 的配置以及 namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程. 在创建 insta ...

  3. dhcp协议交互报文

    DHCP共有八种报文,分别为DHCP Discover.DHCP Offer.DHCP Request.DHCP ACK.DHCP NAK.DHCP Release.DHCP Decline.DHCP ...

  4. 7、二种 为二个不同的子网配置DHCP服务器(中继代理服务器)

    环境如下:        (参考之前,保证二个子网可以互相ping通) 虚拟机vm1        192.168.170.3                    VMnet8 (NAT模式) 虚拟 ...

  5. DHCP

    安装 yum install -y dhcp 配置文件 默认配置为/etc/dhcpd.conf [root@samba ~]# [root@samba ~]# rpm -ql dhcp | grep ...

  6. PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统

    PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统 PXE + Kickstart PXE的工作流程及配置文件 Kickstart的配置文件 Linux安装大致可以分为2个阶段 第 ...

  7. 思科交换机配置DHCP的四个方面

    这里我们主要讲解了思科交换机配置DHCP的相关内容.我们对网络拓扑先进行一下了解,然后对于其在进行一下说明,之后对于配置的代码和命令再进行一下解析. 思科交换机配置DHCP一.网络拓扑 思科交换机配置 ...

  8. 协议分析 - DHCP协议解码详解

    协议分析 - DHCP协议解码详解 [DHCP协议简介]         DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...

  9. 用 namspace 隔离 DHCP 服务 - 每天5分钟玩转 OpenStack(90)

    Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 如何独立的为每个 network 服务呢? 答案是通过 Linux Network Namespace 隔离,本节将详细 ...

  10. 配置 DHCP 服务 - 每天5分钟玩转 OpenStack(89)

    前面章节我们看到 instance 在启动过程中能够从 Neutron 的 DHCP 服务获得 IP,本节将详细讨论其内部实现机制. Neutron 提供 DHCP 服务的组件是 DHCP agent ...

随机推荐

  1. 解决google翻译出错问题

    解决google翻译问题 一.为什么失效 因为google把google翻译的API给关闭了,导致翻译不了. 据网上说是服务器耗钱,但盈利不够导致的. 二.可修复的前提 国内还存有服务器可以用API ...

  2. 「Python实用秘技14」快速优化Python导包顺序

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第14 ...

  3. .Net7发现System.Numerics.Vector矢量化的一个bug,Issues给了dotnet团队

    因为前几天做.Net7的矢量化性能优化,发现了一个bug.在类System.Numerics.Vector里面的成员变量IsHardwareAccelerated.但是实际上不确定这个bug是visu ...

  4. #PowerBi Superchange PowerBi 序言部分笔记(2)

    Xmind本文思维导图 序言部分,主要讲述了BI的分类及发展,以及作者推荐的学习方法.重点是介绍了powerbi的主要四大步骤. 即: 一:数据采集 Data acquisition: Power B ...

  5. Pinot2的无人机任务和数据处理实践

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 4. 应用示例与代码实现讲解 4.1 应用场景介绍 4.2 应用实例分析 ...

  6. 「学习笔记」vector

    本文并不是 vector 的入门教程. 定义 std::vector 是封装动态数组的顺序容器. vector 通常占用多于静态数组的空间,因为要分配更多内存以管理将来的增长.如果元素数量已知,可以使 ...

  7. kali问题排查

    kali从2020的更新到最新版就卡在了启动界面 猜想会不会是内核的问题,选择到这个最新内核就可以正常进入系统了 由于觉得这样启动太过于麻烦,想办法把这个内核作为默认启动内核,从网上了解到要修改/et ...

  8. java.lang.Error: Unresolved compilation problems

    一般有两种常见的情况: 1.当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时,这个 jar 内所有的 java package 中的类必须来自这个 jar 包 ...

  9. 解决Pyonth读取 yaml文件的中文字体,报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe5

    解决方法: 打开pycharm,点击files>setting  如下 改成UTF-8即可 改完后,之前的yaml文件里面的中文会出现乱码情况   删除后重写  即可

  10. 再见RestTemplate,Spring 6.1新特性:RestClient 了解一下!

    在最近发布的Spring 6.1 M2版本中,推出了一个全新的同步HTTP客户端:RestClient.用一句话来让Spring开发者认识RestClient的话:像WebClient一样具备流畅AP ...