dhcp协议服务器端默认通信端口是,DHCP协议简析

dhcp协议服务器端默认通信端口是,DHCP协议简析不知道看官大人是否有过这样的疑惑?一台计算机,插上网线是不是就可以直接上网了呢?其实没有这么简单,需要配置本机IP地址、子网IP地址、网关IP地址和DNS地址等。配置有两种方式,一种是手动配置,采用静态IP上网方式,可是这种方式怎么能让致力于世界更美好的工程师大大心满意足呢?于是,就有了今天的主角,基于UDP的DHCP(DynamicHostConfigurationProtcol),动态主…

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

不知道看官大人是否有过这样的疑惑?一台计算机,插上网线是不是就可以直接上网了呢?其实没有这么简单,需要配置本机IP地址、子网IP地址、网关IP地址和DNS地址等。配置有两种方式,一种是手动配置,采用静态IP上网方式,可是这种方式怎么能让致力于世界更美好的工程师大大心满意足呢?

于是,就有了今天的主角,基于UDP的DHCP(Dynamic Host Configuration Protcol),动态主机配置协议,其有简单的六个阶段,Discover(发现)、Offer(提供)、Request(请求)、Ack(确认)和Relogin(重新登录)以及Update(更新租约)。看官们,跟着小采风的脚步,一起来学习一下吧!一、发现阶段:客户机寻找DHCP服务器

8bf8c7d04baf?from=timeline&isappinstalled=0

图1:Discover

截图分析:

1)客户端不知道自己的IP,以0.0.0.0标识,DHCP服务器IP地址不清楚,以255.255.255.255广播地址标识;客户机以00:0b:72:01:fc:42来标识MAC地址,以FF:FF:FF:FF:FF:FF广播地址来寻找DHCP;

2)其他主机接收到此包,直接丢弃;DHCP服务器明确自己需要接受此包,(注可以被多台DHCP服务器接收);

3)客户机端口为68,DHCP端口为67,为默认端口号;二、提供阶段:DHCP服务器提供IP地址

截图分析:

8bf8c7d04baf?from=timeline&isappinstalled=0

图2:Offer

1)此包仍在发送中,客户机并不具备192.168.0.10的IP地址;

2)DHCP服务器优先基于ARP协议与之通信,如果失败,直接提供广播方式发送;三、请求阶段:客户机确认DHCP提供的IP地址

若多台DHCP服务器为其提供Offer信息,则客户机只接收第一台DHCP服务器的IP地址,那么第一台DHCP服务器如何知道自己提供的IP地址被接收?其他DHCP服务器如何知道自己提供的IP地址没有被接收呢?

截图分析:

8bf8c7d04baf?from=timeline&isappinstalled=0

图3:Request (1)

1)客户机虽然接收到分配的IP地址,但是没有与DHCP服务端进行确认,并不能开始使用;

2)这是一个与图1相同的广播形式的数据包,目的在于与第一个DHCP服务器进行确认,与其他DHCP服务器进行通信,告知其分配的IP地址并未采用,这是如何实现的呢?截图分析:

8bf8c7d04baf?from=timeline&isappinstalled=0

图4:Request(2)

3)图3的数据包,相应网络范围内的DHCP服务器均会收到,每台DHCP服务器检查DHCP Sever Identifier字段,如果是本机IP,则确认其分配的即Requested IP Address有效;如果不是本机IP,则其分配的IP地址则无效;四、确认阶段:DHCP服务器确认IP字段有效

截图分析:

8bf8c7d04baf?from=timeline&isappinstalled=0

图5:Ack

1)仅图4中确认IP地址有效的DHCP服务器,返回Ack数据包;

2)此数据包包含在本文开头时强调的上网的基本信息,实现动态上网;

故事到这里是否就可以圆满结束了呢?那动态主机配置如何体现其动态过程呢?看官切勿着急,工程师们热爱的是全面的系统,怎么会置之不理呢?五、重新登录与更新租约

1)客户机重新启动后,不再直接发送Discover信息,而是发送Request信息;DHCP服务器会优先尝试,允许其继续使用IP地址,发送Ack数据包;如果该IP不能再使用,返回Nack数据包,客户机重新开始Discover阶段;

2)DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息,与1)中过程相同;

DHCP协议简析就到这里啦,本次的内容简单实用,重点在于Request阶段的那个具备广播属性的数据包,作用有二,其一是与第一个DHCP服务器确认其IP地址的有效性,其二是与其他DHCP服务器说明其IP地址并未被采用。

最美人间四月天。不经意间,已是四月的尾巴了。小采风不由得感叹,时光之短暂。四月,对于小采风来说,意味深长。不过,收获一个相约一起跑步的队友,让原本柳絮荡漾的校园里,更平添了许多欢笑。五一小长假,节后见。

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

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

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


相关推荐

  • resnet18 pytorch_如何搭建服务器

    resnet18 pytorch_如何搭建服务器参照ResNet50的搭建,由于50层以上几乎相同,叠加卷积单元数即可,所以没有写注释。101和152的搭建注释可以参照我的ResNet50搭建中的注释:训练可以参照我的ResNet18搭建中的训练部分:ResNet101和152可以依旧参照ResNet50的网络图片:上代码:ResNet101的model.py模型:importtorchimporttorch.nnasnnfromtorch.nnimportfunctionalasFclassDownSampl

    2022年10月6日
    2
  • intellij 激活码_通用破解码

    intellij 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    83
  • jdbctype数据类型_数据类型对应的关键字

    jdbctype数据类型_数据类型对应的关键字mybatis中jdbcType时间类型:当jdbcType=DATE时,传入年月日当jdbcType=TIMESTAMP时,传入年月日+时分秒附录:java.sql.TypesJavaIBMDB2OracleSybaseSQL-SERVER

    2022年9月25日
    3
  • 模型融合stacking实战

    模型融合stacking的原理具体不再解释,有的博客已经解释很清楚了,还是附一张经典图吧,直接上完整程序(根据后面的数据集下载地址可以下载数据集,然后直接运行程序):#Loadinourlibrariesimportpandasaspdimportnumpyasnpimportreimportxgboostasxgbimportwarningswa…

    2022年4月9日
    75
  • 圆桌排序公式_大圆桌怎么坐

    圆桌排序公式_大圆桌怎么坐假设有来自 m 个不同单位的代表参加一次国际会议。每个单位的代表数分别为 ri(i=1,2,…,m)。会议餐厅共有 n 张餐桌,每张餐桌可容纳 ci(i=1,2,…,n) 个代表就餐。为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。试设计一个算法,给出满足要求的代表就餐方案。输入格式第 1 行有 2 个正整数 m 和 n,m 表示单位数,n 表示餐桌数。第 2 行有 m 个正整数,分别表示每个单位的代表数 ri。第 3 行有 n 个正整数,分别表示每个餐桌的容量 ci。输

    2022年8月10日
    5
  • 【Spring】代理模式:静态代理

    【Spring】代理模式:静态代理为什么要学代理模式?因为这就是SpringAOP的底层!【面试时,SpringAOP和SpringMVC一定会问】代理模式的分类:静态代理 动态代理静态代理角色分析:抽象角色:一般会使用接口或抽象类来解决 真是角色:被代理的角色 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作 客户:访问代理对象的人!代码步骤:接口(Rent.java)packagecom.company.org;publicinterfaceRent{pu

    2022年10月17日
    3

发表回复

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

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