ARP 与 DHCP 协议详解与抓包分析

ARP 与 DHCP 协议详解与抓包分析

首先我们回顾下一个 http 请求的大致流程:

image-20250317163642915

  • 给 http 正文加一层 http 头
  • 给上层报文加一层 tcp 头
  • 给上层报文加一层 ip 头
  • 给上层报文加一层 mac 头

先不思考为什么有这样的层次,以及每一层为什么要这么做,根据上述图片和描述,可以知道一个请求发出,需要添加 ip 地址头和 mac 地址头,如果不添加,这个请求就无法发送出去。

ARP 协议

ARP 协议:Address Resolution Protocol 地址解析协议,既然是地址解析,解析的是什么呢?

答案是根据 IP 地址获取 MAC 地址,为什么需要有这样的协议呢,当我们访问一个域名,例如 www.baidu,com,会由 DNS 服务器解析出对应的 ip 地址,并向对方发送一个请求,请求对应的界面,对方收到后,把界面返回,展示在了电脑上。

但是 DNS 服务只能根据域名解析出 ip 地址,我们在上面说过,一个包的发送一定要加上 mac 头呢,这个 mac 头该怎么获取呢,这里并不是直接靠的 ARP 协议;在获取到对方的 ip 后(假设 ip 是 110.110.110.110),本机会根据自己的 ip 地址和子网掩码与对方的 ip 进行运算(涉及到的概念:CIDR、子网掩码、同一网段),如果在同一网段,说明咱俩离得很近(逻辑上),没必要再发送到网关走路由器,直接在本地大吼一声(发一个包):谁的 IP 是 110.110.110.110,跟我说下你的 mac 地址,你可能会想:前面不是提到一个包必须有 mac 头才能发出吗,这是怎么发的,有一个特殊的 mac 地址,所有比特位全1(ff:ff:ff:ff:ff:ff)是一个特殊的 mac 地址,局域网内所有的主机在收到后,都要取下 mac 地址看里面的内容。这时 ip 是 110.110.110.110 发现问的是自己,就回复说,这是我的 ip,我的 mac 地址是 aa:aa:aa:aa:aa:aa,主机获取到这个 mac 地址后,就可以加上 mac 头把包发送出去了。

上面有一些注意的点:

  • 根据是否在同一网段走 ARP 协议或发送到网关(获取网关 mac 地址同理,网关 ip 静态配置好了)
  • mac 地址全1(也叫广播地址,ip 全1同理),则局域网内所有主机要拆下来确认内容,注意是局域网,如果不是局域网,这个包转发出去后,所有的主机都要确认,会对网络造成非常大的影响

DHCP 协议

现在问题来了,我们主机的 ip 是怎么来的呢?如果你使用 linux 配置过静态 ip,你可能知道会去修改一个网卡的配置文件,手动配置为 static,写死 ip 和网关。但是我们打开电脑,连接 wifi 之后也可以上网了,这个时候的 ip 是怎么来的呢?

DHCP:动态主机配置协议(Dynamic Host Configuration Protocol),就是来做这个工作的。你的电脑会有网卡,这个网卡是生产商写死的,有全球唯一的一个 mac 地址,当你连接 wifi 之后,大概会发生以下几个步骤:

  • 主机发送一个报文,内容大概是:有没有人啊,我刚来,没 ip,我的 mac 地址是***,给我分配个 ip 呗,重要字段如下:
	源mac			目标mac				源ip				目标ip
主机网卡mac地址      ff:ff:ff:ff:ff:ff    00:00:00:00	  255:255:255:255		

注意这里的目标 mac 和目标 ip 是都是广播地址,DHCP 服务器收到后,就知道了这个信息,这次请求称为 DHCP Discover

  • DHCP 服务器收到包后,分出来一个 ip,给请求主机发过去,内容大概是:来,我给你分配一个ip,你用吧,重要字段如下:
	源mac			   目标mac		   源ip				目标ip
DHCP服务器mac地址      主机网卡mac地址    DHCP服务器ip地址	  欲分配的ip地址		

这里其实有一个疑问,这只是我想给你分配的 ip,你还没有绑定到网卡上,为什么目标 ip 就可以写成这个 ip 了呢,这次回复称为 DHCP Offer

  • 如果你在局域网里配置了多个 DHCP 服务器,主机有可能收到多个 offer,一般选择最先抵达的进行回复,内容大概是:我的mac地址是***,准备接收这个 offer 了,其它的你们留着给新来的吧,重要字段如下:
	源mac			目标mac				源ip				目标ip
主机网卡mac地址      ff:ff:ff:ff:ff:ff    00:00:00:00	  255:255:255:255		

注意这里的目标 mac 和目标 ip 是都是广播地址,因为需要通知到其他的 DHCP 服务器它接收的是哪个 offer,否则其他服务器不知道这个 ip 是否分配出去了,要等待,这次请求称为 DHCP Request

  • DHCP 服务器收到后进行回复,大概内容:okok,这就是你的 ip 了,会把相关的一些配置信息也发送过来
	源mac			   目标mac		   源ip				目标ip
DHCP服务器mac地址      主机网卡mac地址    DHCP服务器ip地址	  欲分配的ip地址		

这次请求称为 DHCP Ack

以上就是 DHCP 的主流程,其实中间还夹杂了一些 ARP 的报文,比如我的 ACK 发送出去后,如果在网络中丢失了怎么办,对方还能分配上吗?怎么确认呢?我给对方分配了一个 ip,万一这个 ip 已经有人静态配置过了呢?解决方式就是:在分配前和分配后都发 ARP 报文确认,这一点在下面的报文分析中也有体现。

同时,DHCP 分配后肯定需要回收,不能说分出去了你下线了都不知道,在租用的 ip 达到一段时间后,一般在租期过去 50% 的时候,直接向为其提供 IP 地址的 DHCP Server 发送 DHCP Request 消息包。客户机接收到该服务器回应的 DHCP ACK 消息包,会根据包中所提供的新的租期以及其他已经更新的 TCP/IP 参数,更新自己的配置

DHCP 报文分析

抓包工具:wireShark

抓包方式:首先开启飞行模式,接着关闭飞行模式,打开 wifi,在拦截到的包中过滤出协议是 DHCPARP 的报文,如下:

image-20250317170554520

DHCP Discover

image-20250318092230749

与上述协议讲解中基本一致,但是默认情况下,不会直接请求希望分配的 ip,这里可能是我连上 wifi 后,开启了飞行模式,又重新连的,返回了之前租用的 ip(192.168.0.121)

image-20250318092539938

我们看报文顺序可以注意到,序号 213 的 discover 报文后,发起了多个 arp 报文,目的 ip 是广播,内容是:有谁在用 192.168.0.121 的 ip,这里是要确认这个 ip 没有主机在使用

image-20250318093023640

image-20250318093305059

DHCP Offer

image-20250318100937553

DHCP Request

image-20250318101211992

注意:此时只是表达我想接受这个 offer,并没有将 ip 绑定到网卡上,因此依然需要广播通知

DHCP Ack

image-20250318101515053

在 ACK 确认完后,DHCP Server 还会发 ARP,看看这个 ip 是否真的被绑定了

image-20250318102734736

DHCP 协议就像租房子一样,首先我广播发送一个请求,说我新来的,没房子呀,中介(DHCP 服务器)回复说我给你推荐一个,这个时候可能有多个中介联系我,我选择一个最先找我的,广播说我要租你这个房子,其它中介收到后就知道你不要他们的房子,他们可以继续租给其他人了;你要租房子的这个中介收到你的租赁请求后,说没问题,给你确认一下,把租期之类的配置信息也发给你。你如果想续租,在租期接近一半的时候可以请求续租…

《RSMA速率拆分在有限反馈通信系统中的MMSE基预编码实现》 本文将深入探讨RSMA(Rate Splitting Multiple Access)技术在有限反馈通信系统中的应用,特别是通过MMSE(Minimum Mean Square Error)基预编码进行的实现。速率拆分是现代多用户通信系统中一种重要的信号处理策略,它能够提升系统的频谱效率和鲁棒性,特别是在资源受限和信道条件不理想的环境中。RSMA的核心思想是将用户的数据流分割成公共和私有信息两部分,公共信息可以被多个接收器解码,而私有信息仅由特定的接收器解码。这种方式允许系统在用户间共享信道资源,同时保证了每个用户的个性化服务。 在有限反馈通信系统中,由于信道状态信息(CSI)的获取通常是有限且不精确的,因此选择合适的预编码技术至关重要。MMSE预编码是一种优化策略,其目标是在考虑信道噪声和干扰的情况下最小化期望平方误差。在RSMA中,MMSE预编码用于在发射端对数据流进行处理,以减少接收端的干扰,提高解码性能。 以下代码研究RSMAMMSE预编码的结合以观察到如何在实际系统中应用RSMA的速率拆分策略,并结合有限的反馈信息设计有效的预编码矩阵。关键步骤包括: 1. **信道模型的建立**:模拟多用户MIMO环境,考虑不同用户之间的信道条件差异。 2. **信道反馈机制**:设计有限反馈方案,用户向基站发送关于信道状态的简化的反馈信息。 3. **MMSE预编码矩阵计算**:根据接收到的有限反馈信息,计算出能够最小化期望平方误差的预编码矩阵。 4. **速率拆分**:将每个用户的传输信息划分为公共和私有两部分。 5. **信号发射接收**:使用预编码矩阵对信号进行处理,然后在接收端进行解码。 6. **性能评估**:分析系统吞吐量、误码率等性能指标,对比不同策略的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值