DHCP协议简述

DHCP协议简述DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCPServer…

大家好,又见面了,我是你们的朋友全栈君。

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
–以上内容来自百度百科

  • dhcp主要用于通过DHCP服务器(一般是路由器)给局域网中的主机分配IP地址。其过程是:

    1、主机首次接入局域网链路时(此时主机还没有IP地址)发一个DHCP协议的广播消息,要求DHCP服务器分配IP地址;
    2、DHCP服务器收到广播消息后,取出一个IP地址并通过ICMP确认该地址暂未被使用后,通知主机使用改地址;
    3、主机在使用IP地址前,先发一个ARP协议的广播消息,在确认该地址未被使用后向DHCP服务器发送消息说明我要使用改地址;
    4、DHCP服务器向主机发送消息–允许你使用该地址。

  • 下面通过抓包简要分析一下该过程:
    1、主机首次发广播消息,源地址为:0.0.0.0,广播地址为:255.255.255.255;
    主机首次发包
    传输层:将DHCP包通过UDP发送,源端口68(客户端),目标端口67(服务端);
    UDP数据包
    网络层:此时主机暂未被分配IP地址,源地址:0.0.0.0,目标地址:255.255.255.255。(IP地址的主机号全为0表示为网络地址(??),主机号全为1表示广播地址);
    IP数据报
    链路层:在链路层将IP数据报封装成MAC帧,源地址:主机MAC地址,目标地址:ff:ff:ff:ff:ff:ff:ff(广播地址)。
    链路层

2、第二步:DHCP服务器发送ICMP广播,询问要分配的IP地址有没有人在使用,然后回送DHCP消息(单播?),告诉你的IP地址。
DHCP回送
如下:DHCP报文内容,包含你的IP地址,子网掩码等信息。
DHCP报文内容

3、第三步:主机发送ARP广播,询问该IP有没有人在使用,然后向服务器发送消息,我要使用该IP地址。
arp报文:
ARP包

4、最后,DHCP服务器回送消息,允许你使用该IP地址。至此,IP分配完毕。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142178.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • uwsgi停止[通俗易懂]

    uwsgi停止[通俗易懂]uwsgi停止和nginx配置uwsgi停止nginx配置uwsgi停止必须在uwsgi.ini中配置好pidfile=绝对路径///uwsgi.pid这样才有pid文件uwsgi–stopuwsgi.pid这样就可以停止了有一点需要注意:如果没有uwsgi.pid又需要停止uwsgi服务可以netstat…

    2022年9月12日
  • 基于SSM框架的网上购物商城及电商后台管理系统

    基于SSM框架的网上购物商城及电商后台管理系统基于SSM框架的网上购物商城及电商后台管理系一、开发环境操作环境:Windows10开发工具:IDEA数据库:MySQL服务器:TomCat二、系统功能介绍前台商城功能注册登录:用户首先要填写相关信息,注册为会员。修改个人信息:用户登录后可以修改个人信息。查看公告和留言反馈网站:用户可查看公告,登录后可以给网站留言反馈网站问题。浏览商品:会员浏览网上商城,可以根据分类检索、关键字检索、热销商品和折扣商品浏览商品和商品信息及评价。管理购物车:登录后会员可以将想购买的商品加入购物

    2022年6月5日
  • Installation did not succeed.解决方案之一

    Installation did not succeed.解决方案之一

    2021年10月1日
  • [转]组合数取模【转自AekdyCoin的组合数取模】

    [转]组合数取模【转自AekdyCoin的组合数取模】转载自大牛的百度空间:http://hi.baidu.com/aekdycoin/item/e051d6616ce60294c5d249d7大家都在中学阶段学习了组合数的定义:这个表示的是从n个元素中选取m个元素的方案数。(PS.组合数求模似乎只用在信息学竞赛和ACM竞赛等计算机编程设计大赛中……,求在现实中的运用)可以知道当n,m取得比较大的时候,组合数可能很大很大(天文数字?无…

    2022年7月23日
  • J2EE架构师之路

    J2EE架构师之路不经意的回首,工作进入第五个年头了,发现走过了从Java程序员到J2EE架构师的历程。发现电脑上安装了各种各样的J2EE工具:JBuilder,WSAD,Eclipse,Rose,Together,Weblogic,Jtest,Optimizator,Mysql…发现电脑上保存了各种各样的OpenSource项目:Tomcat,JBoss,Ant,Hibernate,Spr

    2022年6月30日
  • 线程池如何创建线程_创建线程池的七个参数

    线程池如何创建线程_创建线程池的七个参数Executors如何创建线程池?Executors类是从JDK1.5开始就新增的线程池创建的静态工厂类,它就是创建线程池的,但是很多的大厂已经不建议使用该类去创建线程池。原因在于,该类创建的很多线程池的内部使用了无界任务队列,在并发量很大的情况下会导致JVM抛出OutOfMemoryError,直接让JVM崩溃,影响严重。但是Executors类究竟是如何使用…

    2022年9月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号