TCP/IP 协议——DHCP与自动配置详解

一个系统能够在Internet上运行并提供常用服务的基本要素:

  • IP地址
  • 子网掩码
  • DNS服务器IP地址
  • 默认路由器IP地址

DHCP介绍

DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP有两个主要部分组成:地址管理和配置数据交付。地址管理用于IP地址的动态分配,并为客户机提供地址租用。配置数据交付包括DHCP协议的消息格式和状态机。

DHCP服务器决定IP分配方式:自动分配、动态分配和手动分配。

  1. 最常用方法是动态分配,客户机从服务器配置的地址池(通常为一个预定义的范围)中获得一个可撤销的IP地址。

  2. 自动分配使用的是相同方法,但地址不可撤销。

  3. 在手动分配中,DHCP协议用于传输地址,但地址对于请求的客户机是不变的(即它不是由服务器维护的可分配池的一部分)。

DHCP客户端指的是支持DHCP协议的网络设备上的指定端口,通过该端口与DHCP服务器交互获取配置信息。三者之间的差异是地址分配是否基于客户机的身份,以及该地址是否可撤销或变更。

在上面提到的动态分配方式中,DHCP客户端请求分配一个IP地址,服务器从可用的地址池中选择一个地址作为响应。通常情况下这个地址池是专门为DHCP用途分配的一个连续的IP地址范围。

分配给客户机的地址只在一段特定时间内有效,这段时间称为租用期。

  • 较长的租用期通常会较快耗尽可用的地址池,但能提供更稳定的地址和减小网络开销(因为续租请求较少)。
  • 较短的租用期可为其他客户提供可用性更高的地址池,随之而来的是稳定性减小和网络流量负荷增大。

当服务器向客户机提供租用期时,服务器将租用信息保存在持久性存储中,通常是非易失性内存或磁盘中。

DHCP消息格式

DHCP的前身是BOOTP,它是在BOOTP上做了扩展,以保持两种协议之间的兼容性。一个DHCP(或者可以说是BOOTP)消息格式如下图所示:

Op(操作字段)标识消息是请求(1)还是应答(2);

HW类型字段分配基于ARP使用的值,并定义在相应的IANA ARP参数页中[IARP],最常见的值为1(以太网);

HW长度字段用于存放硬件(MAC)地址,对于类似以太网的网络,值通常为6;

跳步数字段用于保存消息传输过程中的中继次数,发送方将该值设为0,每次中继时加1;

事务ID有客户机选择,为一个随机数,用于将应答和请求匹配;

秒数字段由客户机设置,是第一次尝试申请或重新申请地址经过的秒数;

标志字段当前只包含一个经过定义的位,称为广播标志;

客户机IP地址包含请求者的IP地址(如果已知),否则为0;

"你的"IP地址有服务器填写,向请求者提供服务器地址;

下一服务器IP地址给出下一个服务器的地址,用以客户机的引导过程;

网关中继IP地址有DHCP或BOOTP中继器填写,它们在转发消息时返回自己的地址;

客户机硬件地址保存客户机的硬件地址(唯一标识);

服务器名和引导文件名可选,表示服务器名称或启动文件路径;

选项字段是BOOTP中的供应商扩展字段,现在用以区分DHCP消息与传统BOOTP消息,选项通常提供相对简单的配置信息,或者支持一些其他协商协议。

常见选项包括填充(0)、子网掩码(1)、路由器地址(3)、域名服务器(6)、域名(15)、请求的IP地址(50)、地址租用期(51)、DHCP消息类型(53)、服务器标识符(54)等等。

DHCP协议的地址分配过程

当一台新的客户机连接到网络的时候,它首先发现可用的DHCP服务器以及它们能够提供地址。然后它决定使用哪台服务器和哪个地址,并向提供该地址的服务器发送请求(同时将其他选择通知所有服务器)。除非服务器在此期间已将该地址分配出去,否则它通过确认将地址分配给请求的客户机。

如下图,一次典型的DHCP交换:

过程解析:

  1. 客户机连接网络,向网络广播一个DHCPDISCOVER消息;

  2. DHCP服务器接收到消息,响应一个DHCPOFFER消息,并在"你的"IP地址字段填写提供的IP地址,且提供租用时间(T)、更新时间(T/2)、重新绑定时间(7T/8)等信息;

  3. 客户机接收到来自一台或多台DHCP服务器的响应,确定自己想要哪个DHCPOFFER,并广播一个包含服务器标识符选项的DHCPREQUEST消息,请求的IP地址选项设置为客户机选择使用的IP地址;

  4. 多台DHCP服务器可能收到广播的DHCPREQUEST消息,但只有DHCPREQUEST消息标识的服务器同意将该地址进行绑定,其他服务器则清除与该请求相关的状态,然后标识的服务器响应给客户机:1).发送一个DHCPACK消息,可以使用该地址;2).无法分配该地址,发送一个DHCPNAK消息;

  5. 客户端接到DHCPACK消息后进行配置,并探测网络来确定地址未被使用。如果探测到无冲突,则直接使用;如果探测到冲突,客户机舍弃该地址,向服务器发送一个DHCPDECLINE消息来通知该地址不能使用,经过默认10秒延时后客户机重新从第1步开始操作;

DHCP协议在客户机和服务器中运行一个状态机。状态用于指出协议下一个处理的消息类型:

在简单的网络中,一个DHCP服务器可供同一个局域网中的客户机使用,但在更复杂的网络中,可通过一个或更多的DHCP中继代理来中继DHCP流量将DHCP操作扩展到跨越多个网段。

原文地址:https://www.cnblogs.com/wang-shishuang/p/10482996.html

时间: 2024-08-25 03:48:01

TCP/IP 协议——DHCP与自动配置详解的相关文章

TCP/IP学习笔记(1)----------详解

TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成.TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求.通俗而言:TCP负责发现传输的问题,一有问题就发出信号,

华为交换机之生成树协议(MSTP)配置详解

博文大纲: 一.什么是MSTP? 二.MSTP的基本原理是什么?1.MSTP的网络层次.2.MST域.3.MSTI.4.端口角色.5.MSTP的端口状态. 三.MSTP的保护功能.1.BPDU保护.2.根保护.3.环路保护.4.TC保护. 四.MSTP的配置过程. 一.什么是MSTP? MSTP是一个共有的生成树协议,在实际生产环境中得到广泛的应用.MSTP(Multiple Spanning tree Algorithm and protocol)是多生成树技术,允许在一个交换环境中运行多个生

通过Spring Boot整合Mybatis分析自动配置详解

前言 SpringBoot凭借"约定大于配置"的理念,已经成为最流行的web开发框架,所以有必须对其进行深入的了解:本文通过整合Mybatis类来分析SpringBoot提供的自动配置(AutoConfigure)功能,在此之前首先看一个整合Mybatis的实例. SpringBoot整合Mybatis 提供SpringBoot整合Mybatis的实例,通过Mybatis实现简单的增删改查功能: 1.表数据 CREATE TABLE `role` (  `note` varchar(2

第二十天 TCP 及socket通信原理、http协议及web服务、httpd核心配置详解

一.TCP及socket通信原理详解 二.http协议及web服务原理(一) 三.http协议及web服务原理(二) 四.httpd核心配置详解 1.tcp.udp是一种传输协议,实现进程地址标记,套接字是一个虚拟设备,用来表明主机上的某个进程      众所周知:0-1023:管理员才有权限使用,永久地分配给某应用使用(由IANA分配)      注册端口:1024-41951:只有一部分被注册,分配原则上非特别严格.      动态端口或私有端口:41952-65535:由内核分配临时端口,

云计算介绍 、TCP/IP协议及配置

典型服务模式? C/S,Client/Server架构– 由服务器提供资源或某种功能– 客户机使用资源或功能 ##################################################################TCP/IP协议及配置 ? TCP/IP是最广泛支持的通信协议集合– 包括大量Internet应用中的标准协议– 支持跨网络架构.跨操作系统平台的通信 ? 主机与主机之间通信的三个要素 – IP地址(IP address)– 子网掩码(subnet mask

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP协议详解内容总结(怒喷一口老血)

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP协议详解

OSI通信协议模型(Open System Interconnection) OSI(开放系统互连)通信协议模型是一个多层的通信协议,由国际标准化组织ISO提出.所谓的开放系统是指允许任意两个具有不同基本体系结构的系统进行通信的一套协议集.理论上,OSI允许任意两台计算机实现通信.OSI模型将网络划分为7层模型: OSI模型中每一层只和紧邻的上下两层通信,高层协议偏重于处理用户服务和各种应用请求,底层协议偏重于处理实际的信息传输.分层的目的在于把各种特定的功能分离开来,各个层次相对独立. TCP