TCP/IP基础笔记之ARP, DHCP

本文介绍了ARP协议如何将IP地址转换为MAC地址,详细讲解了ARP缓存时间、免费ARP及其作用。同时,文章深入剖析了DHCP的工作流程,包括DHCP discovery、DHCP offer、DHCP request和DHCP acknowledgement四个阶段,解释了DHCP客户端如何获取和续租IP地址,并提到了Apple设备在网络连接中的特殊行为。
部署运行你感兴趣的模型镜像

WIFI association成功后的操作和ethernet差不多,ARP和DHCP是其中2个常用协议。

 

ARP

  1. 作用是把IP地址转换为对应的Ethernet MAC地址。
  2. 在BSD-style OS, 每条ARP entry在ARP表里的时间是20分钟。
  3. 在得到任何ARP reply前,PC可以连续75秒发ARP requests 。具体时间和实现相关。
  4. Gratuitous ARP(免费ARP)包括gratuitous ARP request和gratuitous ARP reply,但gratuitous ARP reply很少见。Gratuitous ARP request源IP和目的IP一样都是发送PC的IP,目的MAC是ff:ff:ff:ff:ff:ff的广播地址。这种ARP主要用于检测IP冲突,更新其他PC的ARP表。如有些OSbooting up或改了IP时,会发这种ARP告诉大家。

 

DHCP

DHCP用来从DHCP server得到IP地址。DHCP server使用UDP端口67,DHCP client使用UDP端口68。 完整的过程如下:

DHCP discovery

DHCP客户端发DHCP discovery广播包。

DHCP offer

DHCP server回复IP地址,掩码,lease时间等信息。

DHCP request

DHCP client可能收到好几个从不同server来的DHCP offer,发送broadcast request让大家知道client接受了哪个server来的IP。

DHCP client也可能直接发DHCP request去要原来用过的IP。如果还在原来的网络,DHCP server可能回复成功。 如果不是原来的网络,那么Authoritative DHCP server会直接拒绝请求;Non-authoritative DHCP server会忽略这个请求,DHCP client会超时(timeout时间看具体实现),然后发DHCP discovery。

DHCP acknowledgement

DHCP server ACK.  DHCP client会按照协商的参数配置网卡。得到IP后,通常DHCP client会用ARP broadcast来确认没有IP冲突。

 

DHCP获得IP的过程,通常是client先发DHCP request broadcast,来请求使用以前用过的IP地址。 如果DHCP client和server不在同一个子网,可能会用到DHCP Helper or DHCP Relay Agent

DHCP lease renew会给DHCP server发unicast DHCP request。

 

典型的DHCP过程wireshark capture如下:

 

对于Apple设备,它们会先给history记录中的各个网络,发unicast ARP request包,测试相关网络是否存在,如果收到ARP reply,那么macbook目前就在此网络,直接发DHCP request要以前在这个网络时的IP地址。 发一定数量的ARP request,没有ARP reply,就换下个网络。 最后还是没有发现以前的网络,就发DHCP discovery,来一遍完整的DHCP获得IP流程。

 

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值