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流程。
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流程。
相关文章推荐
- 简介NAT技术实现TCP负载均衡
- 服务器机柜和网络机柜的区别
- 从事互联网信息服务业务网络与信息安全责任书
- 中国移动与9 供应商构建4G网络
- 无法解析此远程名称: 'www.***.com' 解决办法 请求因 HTTP 状态 417 失败
- iOS开发网络篇—使用ASI框架进行文件下载
- iOS开发网络篇—数据缓存
- iOS开发网络篇—发送json数据给服务器以及多值参数
- iOS开发网络篇—简单介绍ASI框架的使用
- iOS开发网络篇—监测网络状态
- iOS开发网络篇—文件的上传
- 世界那么大,我就想去看看网络营销
- iOS开发网络篇—多线程断点下载
- iOS开发网络篇—NSURLConnection基本使用
- iOS开发网络篇—GET请求和POST请求
- iOS开发网络篇—数据安全
- iOS开发网络篇—HTTP协议
- iOS开发网络篇—搭建本地服务器
- iOS开发网络篇—网络编程基础
- Java(Android) Http通信