您的位置:首页 > 理论基础 > 计算机网络

TCP/IP基础笔记之ARP, DHCP

2015-06-08 05:33 686 查看
WIFI association成功后的操作和ethernet差不多,ARP和DHCP是其中2个常用协议。

 
ARP

作用是把IP地址转换为对应的Ethernet MAC地址。

在BSD-style OS, 每条ARP entry在ARP表里的时间是20分钟。

在得到任何ARP reply前,PC可以连续75秒发ARP requests 。具体时间和实现相关。

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表。如有些OS在booting 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流程。



 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: