[书摘] Microsoft Windows Server 2003 TCP/IP 协议和服务技术参考 之 ARP (1)
前一段时间买了一本书,感觉非常不错,其中有很多我一直想知道但是又无处查找的资料,买书当天就想写一个书摘来和大家一起分享,给同样迷茫的朋友提供帮助,但是由于同事离职、工作重心调整等诸多因素,拖了很久到现在……
废话少说,介绍一下这本书
书名:Microsoft Windows Server 2003 TCP/IP 协议和服务技术参考
出版社:清华大学出版社
定价:68元
目录:
第1部分 网络接口层
第1章 局域网(LAN)技术
第2章 广域网技术
第3章 地址解析协议(ARP)
第4章 点对点协议(PPP)
第2部分 网络层协议
第5章 网络协议(IP)基础
第6章 IP地址分配
第7章 IP路由选择
第8章 网络控制消息协议(ICMP)
第9章 Internet组管理协议(IGMP)
第10章 Internet协议版本6(IPv6)
第3部分 传输层协议
第11章 用户数据报协议
第12章 传输控制协议基础
第13章 传输控制协议连接
第14章 传输控制协议数据流
第15章 传输控制协议的重传和超时
第四部分 应用层协议服务
第16章 动态主机配置协议服务器服务
第17章 域名系统
第18章 Windows Internet名称服务
第19章 文件和打印机共享
第20章 RADIUS和Internet验证服务
第21章 Internet信息服务和Internet协议
第22章 Internet协议的安全性
第23章 虚拟专用网
由于我对arp协议比较熟悉,所以先给大家摘录一些arp协议相关的东东。
1、关于arp缓存表项的生存期(有效时间)
在默认情况下,Windows Server 2003家族和Windows XP中,ARP缓存中的表项仅存储2分钟。如果一个ARP缓存表项在2分钟内被用到,则其期限再延长2分钟,直到最大生命期限10分钟为止。超过10分钟的最大期限后,ARP缓存表项将被移出,并且通过另外一个ARP请求——ARP回应交换来获得新的对应关系。ARP缓存表项的存放时间可以通过改变ArpCacheLife和ArpCacheMinReferencedLife的注册表值来重新设置。
ArpCacheLife
Location: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Data Type: REG_DWORD
Valid range: 0-0xFFFFFFFF
Default value: 120
Present by default: No
ArpCacheLife设置了未被使用的ARP缓存表项可以被保持的时间。如果注册表中没有ArpCacheLife项,则ArpCacheLife的默认值是120秒(2分钟)。
ArpCacheMinReferencedLife
Location: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Data Type: REG_DWORD
Valid range: 0-0xFFFFFFFF
Default value: 600
Present by default: No
ArpCacheMinReferencedLife设置被重复使用的表项可以在ARP缓存中存放的时间。ArpCacheMinReferencedLife的默认值是600秒(10分钟)。在注册表中ArpCacheMinReferencedLife和ArpCacheLife的值的使用方法如下:
如果ArpCacheLife比ArpCacheMinReferencedLife的值大或与之相等,则被使用和未被使用的ARP缓存表项可存储的时间都是ArpCacheLife。
如果ArpCacheLife比ArpCacheMinReferencedLife的值小,则未被使用的ARP缓存表项在ArpCacheLife秒的时间后就过期了,被使用的表项的生存期为ArpCacheMinReferencedLife秒。
2、无偿ARP和重复的IP地址检测
ARP可以被用来检测重复的IP地址,这是通过传送一种叫做无偿ARP的ARP请求来完成的。无偿ARP就是一个发往自己IP地址的ARP请求。在无偿ARP中,SPA(发送者协议地址)和TPA(目标协议地址)被设置成同一个IP地址。
如果节点发送一个发往自己IP地址的ARP请求,就不应收到任何一个ARP回应帧,这样节点就可以判断没有其他节点使用跟它相同的IP地址。如果节点发送一个发往自己IP地址的ARP请求,结果收到ARP回应,这样此节点就可以判断有另外一个节点使用同样的IP地址。
注册表中对ArpRetryCount的设置控制了无偿ARP的发送数量。
ArpRetryCount
Location: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Data Type: REG_DWORD
Valid range: 0-3
Default value: 3
Present by default: No
ArpRetryCount设置了当初始化某个IP地址时,发送的无偿ARP的次数。如果发送了ArpRetryCount个无偿ARP后,都没有收到ARP回应,IP就假定此IP地址在此网络段中是唯一的。
提示:无偿ARP试图检测在同一个网络段中的IP地址重复。由于路由器并不转发ARP帧,无偿ARP并不能检测在不同网络段之间的IP地址冲突。
摘到这里,我插一句,描述一个现象以验证书上的论述:如果有台机器上的Windows正在启动,你可以在同网段中另外一台机器上sniffer到这台机器启动过程中发送的3个无偿ARP请求。
如果你对这本书上的内容感兴趣,留个言,我将继续为大家摘录精彩章节。
同时,欢迎到我的blog来讨论,相关blog地址是:
http://blog.haha567.com/blog.php?job=art&articleid=a_20041012_001904
最后,为想买这本书的朋友提供一些信息,给出当当网上这本书的介绍页面地址:
http://www.dangdang.com/product_detail/product_detail.asp?product_id=8880289