dhcp报文_动态地址分配DHCP,IP地址管理方式及分配原则,一分钟了解下
一、DHCP简介
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配 IP
地址等网络配置参数。
DHCP 采用客户端/服务器通信模式,由客户端向服务器提出请求分配网络配置参数的申请,服务器
返回为客户端分配的 IP 地址等配置信息,以实现 IP 地址等信息的动态配置。
在DHCP的典型应用中,一般包含一台DHCP服务器和多台客户端(如PC和便携机)

二、DHCP的IP地址分配
1、IP地址分配策略
针对客户端的不同需求,DHCP 提供三种 IP 地址分配策略:
1)、 手工分配地址:由管理员为少数特定客户端(如 WWW 服务器等)静态绑定固定的 IP 地址。
通过 DHCP 将配置的固定 IP 地址分配给客户端。
2)、自动分配地址:DHCP 为客户端分配租期为无限长的 IP 地址。
3)、动态分配地址:DHCP 为客户端分配具有一定有效期限的 IP 地址,到达使用期限后,客户端
需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。
2、IP地址获取过程

DHCP客户端从DHCP服务器获取IP地址,主要通过四个阶段进行:(1) 发现阶段,即 DHCP 客户端寻找 DHCP 服务器的阶段。客户端以广播方式发送
DHCP-DISCOVER 报文。
(2) 提供阶段,即 DHCP 服务器提供 IP 地址的阶段。DHCP 服务器接收到客户端的
DHCP-DISCOVER 报文后,根据 IP 地址分配的优先次序选出一个 IP 地址,与其他参数一起
通过 DHCP-OFFER 报文发送给客户端。
(3) 选择阶段,即 DHCP 客户端选择 IP 地址的阶段。如果有多台 DHCP 服务器向该客户端发来
DHCP-OFFER 报文,客户端只接受第一个收到的 DHCP-OFFER 报文,然后以广播方式发送
DHCP-REQUEST 报文,该报文中包含 DHCP 服务器在 DHCP-OFFER 报文中分配的 IP 地
址。
(4) 确认阶段,即 DHCP 服务器确认 IP 地址的阶段。DHCP 服务器收到 DHCP 客户端发来的
DHCP-REQUEST 报文后,只有 DHCP 客户端选择的服务器会进行如下操作:如果确认将地
址分配给该客户端,则返回 DHCP-ACK 报文;否则返回 DHCP-NAK 报文,表明地址不能分
配给该客户端。
客户端收到服务器返回的 DHCP-ACK 确认报文后,会以广播的方式发送免费 ARP 报文,探测是否
有主机使用服务器分配的 IP 地址,如果在规定的时间内没有收到回应,客户端才使用此地址。否
则,客户端会发送 DHCP-DECLINE 报文给 DHCP 服务器,并重新申请 IP 地址。
如果网络中存在多个 DHCP 服务器,除 DHCP 客户端选中的服务器外,其它 DHCP 服务器中本次
未分配出的 IP 地址仍可分配给其他客户端。
3、IP地址的租约更新
DHCP 服务器分配给客户端的 IP 地址具有一定的租借期限(除自动分配的 IP 地址),该租借期限称
为租约。当租借期满后服务器会收回该 IP 地址。如果 DHCP 客户端希望继续使用该地址,则 DHCP
客户端需要申请延长 IP 地址租约。
在 DHCP 客户端的 IP 地址租约期限达到一半左右时间时,DHCP 客户端会向为它分配 IP 地址的
DHCP 服务器单播发送 DHCP-REQUEST 报文,以进行 IP 租约的更新。如果客户端可以继续使用
此 IP 地址,则 DHCP 服务器回应 DHCP-ACK 报文,通知 DHCP 客户端已经获得新 IP 租约;如果
此 IP 地址不可以再分配给该客户端,则 DHCP 服务器回应 DHCP-NAK 报文,通知 DHCP 客户端
不能获得新的租约。
如果在租约的一半左右时间进行的续约操作失败,DHCP 客户端会在租约期限达到 7/8 时,广播发
送 DHCP-REQUEST 报文进行续约。
相关文章:

不同浏览器的怪癖小结【转】
1.在设置div top,left是必须一起设置,否则对象消失 ,说明层postion设为fixed document.getElementById("mydiv").style.top10"px"; document.getElementById("mydiv").style.left10"px"; 在chrome下测试没有这个问题 2.获取…

成长必经的低谷已经来了么?
90年出生的我,已经在IT里面走了2年了.小时候出生在一个村落.后来一直在城市中生活着. 一开始学习时,对自己的未来充满着希望,如今,却在找工作中,不断的徘徊. 其实一开始想学习的是编写程序.这源于我一开始对网络的认识.那时候第一次接触到了电脑,记得是一台联想的台式机器,慢慢…

Go指南练习_错误
源地址 https://tour.go-zh.org/methods/20 一、题目描述 从之前的练习中复制 Sqrt 函数,修改它使其返回 error 值。 Sqrt 接受到一个负数时,应当返回一个非 nil 的错误值。复数同样也不被支持。 创建一个新的类型 type ErrNegativeSqrt float64 并为其实…

java基础编程题(1)
1、 题目:打印出杨辉三角形(要求打印出10行如下图) 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1...... package com.jzq.test1;/*** 题目:打印出杨辉三角形(要求打印出10行如下图&#x…

poj_2762,弱连通
http://poj.org/problem?id2762 这题是求弱连通 弱连通就是无向图强连通(基图是有向图) 思路:先targan缩点,然后这些点求最长链 也就是这些点(缩点)在一棵树上,这棵树的深度应该为强连通分量个…

tp数组转为json_数据存储—JSON
JSON文件存储JSON全称JavaScript Object Notation,也就是JavaScript对象标记,它通过对象和数组的组合来表示数据。1、对象和数组对象:在JavaScript中是使用花括号{}包裹起来的内容,数据结构为{key:value,ke…

VMWARE HOST-ONLY方式共享上网
在HOST-ONLY网络模式下,虚拟系统的网卡连接到宿主计算机的VMware Network Adapter VMnet1网卡上。如果要让VMware的虚拟机可以访问外网,则主系统必须共享网络连接。 具体操作步骤如下: 1. 通过网络连接,打开拨号连接的属性&#x…

tensorflow基于csv数据集实现多元线性回归并预测
#coding:utf8 import tensorflow as tf from sklearn import linear_model from sklearn import preprocessing import numpy as npdef read_data(file_queue):the function is to get features and label (即样本特征和样本的标签)数据来源是csv的文件,…

ab测试nginx Nginx性能优化
转自:https://www.cnblogs.com/nulige/p/9369700.html 1.性能优化概述 在做性能优化前, 我们需要对如下进行考虑 1.当前系统结构瓶颈 观察指标压力测试2.了解业务模式 接口业务类型系统层次化结构3.性能与安全 性能好安全弱安全好性能低2.压力测试工具 1.安装压力测…

jedis使用_网易架构师心得:Springboot下使用redis踩过的坑
点击?蓝色“ 深入原理”,关注并“设为星标”技术干货,第一时间推送首先总结了redis服务端单线程工作模型,redis四种部署方式及使用场景,然后从源码的角度上,分析springboot在jedis和lettuce客户端下使用redis的一些坑…

【URAL】1091 Tmutarakan Exams
题意:取k个不同的数,每个数不超过s,问种数。 若kx1,kx2,...,kx3满足条件,则x1,x2,...,x3必然满足条件。 因此枚举素数容斥,2*3*5*7>50,所以枚举之多三层。 1 #include<cstdio>2 #include<cstri…

怎样将无线路由做成无线AP
什么是无线AP? 无线AP,即Access Point,也就是无线接入点。简单来说就是无线网络中的无线交换机,它是移动终端用户进入有线网络的接入点,主要用于家庭宽带、企业内部网络部署等,无线覆盖距离为几十米至上…

Java实现网页截屏功能(基于phantomJs)
公司最近有个需求:把用户第一次的测量身体信息和最近一次测量信息进行对比,并且需要把对比的数据截成图片可以发给用户(需要在不打开网页的情况下实时对网页进行截图然后保存到服务器上,返回图片地址),通过…

CPU性能指标
1,主频 主频 时钟频率,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍; 时钟频率又称主频,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍; 2ÿ…

canvas 文字颜色_Canvas技术概述
Canvas简介在学习一项新技术之前,先了解这项技术的历史发展及成因会帮助我们更深刻的理解这项技术。历史上,canvas最早是由Apple Inc. 提出的,在Mac OS X webkit中创建控制板组件使用,而在canvas称为HTML草案及标准之前࿰…

sql server 2008学习10 存储过程
输入输出参数: 给存储过程传参数,叫做输入参数,用户告诉存储过程需要 利用这个参数干些什么. 输出参数: 从存储过程得到那些数据. 创建一个可选参数的存储过程: create proc pa1 name varchar(50)NULL as if(name is not null)select * from a where name like name%; elsesele…

C#_关于静态类和静态方法(转)
静态类是不能实例化的,即不能new 我们直接使用它的属性与方法,静态类最大的特点就是共享。 静态类中的所有成员必须是静态的。 静态类可以有静态构造函数,静态构造函数不可继承。 静态构造函数可以用于静态类,也可用于非静态类。 …

Struts2和SpringMVC简单配置以及区别总结
Struts2: struts 2 是一个基于MVC(mode-view-con)设计模式的Web应用框架,是由Struts1和WebWork两个经典框架发展而来的。 工作流程: 1客户端浏览器发出HTTP请求 2根据web.xml配置,该请求被FilterDispatcher(过滤器调度员)接收 3根据struts.xm…

python数字类型及运算_Python基础之(基本数据类型及运算)
一、运算 1.1、算数运算1.2、比较运算:1.3、赋值运算:1.4、逻辑运算:1.5、成员运算:针对逻辑运算的进一步研究: 1、在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>…

AJAX跨域访问解决方案
Case I. Web代理的方式 (on Server A) 即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题,但要求A网站提供Web…

什么是生成器?
在python中, 要产生一个列表,可以这样写: a[] for i in range(10): a.append(i*2) 但是,这样挺麻烦的,产生一个列表,需要三行语句。所以,有人就想到能不能一行代码来表示呢?其实&a…

一项横断面人群研究中比较放射学阴性的中轴脊柱关节炎患者与强制性脊柱炎患者之间的差别...
原文 译文 Patients with Non-Radiographic Axial Spondyloarthritis Differ From Patients with Ankylosing Spondylitis in Several aspects– Results of a Cross-Sectional Cohort Study Uta Kiltz 1, Xenofon Baraliakos2, Pantelis Karakostas2, Manfred Igelmann…

day12-事务
day12总结[c1] 今日内容 l 事务 l 连接池 事务 事务概述 为了方便演示事务,我们需要创建一个account表: CREATE TABLE account( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(30), balance NUMERIC(10.2) ); INSERT INTO…

ThinkPHP基础概念
OOP 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重…

008本周总结报告
这周主要做了下PTA的编程题目的练习和学习和了解了java的多线程,了解了进程和线程的定义,区别,联系等,并知道了多线程的利与弊,并了解了JVM下的多运行机制(本质是CPU 对应用程序的快速换)&#…

python3.8.5是python3吗_Python 升级到3.8.5
mac osx 安装最新版本的3.8.5 将/usr/local/bin目录下的python3.8和pip3.8复制一份并修改为python和pip。 修改python的路径,之后source文件。 输出requirements.txt到桌面 安装新版本的第三方库,我使用的第三方库很多,更新很慢。头大啊。 验…

不看后悔 如何删除WIN7的100M隐藏分区
http://notebook.it168.com/a2010/1101/1120/000001120453_2.shtml

tomcat下面web应用发布路径配置 ( 即虚拟目录配置 )
https://blog.csdn.net/AnQ17/article/details/52122236转载于:https://www.cnblogs.com/gangpao/p/9223504.html

strcpy +memcpy实现循环右移
#include<stdio.h>#include<assert.h>#include<string.h>char *strcpy(char*strDest,const char*strSrc){assert(strDest!NULL&&strSrc!NULL);char * addr strDest;while( *strSrc!\0)*strDest *strSrc;*strDest \0;return addr;}//循环移动steps…

python查看目录下的文件_Python——查看目录下所有的目录和文件
原博文 2019-05-06 19:31 − 写程序我们经常会遇到需要遍历某一个目录下的所有文件这个操作,然而python有现成的库,只需要2个循环就可以搞定。 1 import os 2 3 def all_path(dirname): 4 5 result []#所有的文件 6 7 for ma... 相关推荐 2019-12-10 14…