在第18章中,当我们看到建立连接的TCP报文段序列时,会发现ARP请求对应于TCP试图发送的初始TCP SYN(同步)段 。
注重,在线路上始终看不到TCP的报文段 。我们能看到的是ARP请求 。直到ARP回答返回时,TCP报文段才可以被发送,因为硬件地址到这时才可能知道 。假如我们用过滤模式运行TCP dump命令,只查看TCP数据,那么将没有任何输出 。
4.5.3 ARP高速缓存超时设置
在ARP高速缓存中的表项一般都要设置超时值(在4.8小节中,我们将看到治理员可以用ARP命令把地址放入高速缓存中而不设置超时值) 。从伯克利系统演变而来的系统一般对完整的表项设置超时值为20分钟,而对不完整的表项设置超时值为3分钟(在前面的例子中我们已见过一个不完整的表项,即在以太网上对一个不存在的主机发出ARP请求 。)当这些表项再次使用时,这些实现一般都把超时值重新设为20分钟 。
Host Requirements RFC表明即使表项正在使用时,超时值也应该启动,但是大多数从伯克利系统演变而来的系统没有这样做—它们每次都是在访问表项时重设超时值 。
4.6 ARP代理
假如ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARP或ARP代理(Proxy ARP) 。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边” 。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它 。
举例是说明ARP代理的最好方法 。如图3-10所示,系统sun与两个以太网相连 。但是,我们也指出过,事实上并不是这样,请把它与封内图1进行比较 。在sun和子网140.252.1.1之间实际存在一个路由器,就是这个具有ARP代理功能的路由器使得sun就似乎在子网140.252.1.1上一样 。具体安置如图4-6所示,路由器Telebit NetBlazer,取名为netb,在子网和主机sun之间 。
当子网140.252.1.1(称作gemini)上的其他主机有一份IP数据报要传给地址为140.252.1.29 的sun时,gemini比较网络号(140.252)和子网号(1),因为它们都是相同的,因而在图4-6 上面的以太网中发送IP地址140.252.1.29的ARP请求 。路由器netb识别出该IP地址属于它的一个拔号主机,于是把它的以太网接口地址140.252.1.1作为硬件地址往返答 。主机gemini通过以太网发送IP数据报到netb,netb通过拨号SLIP链路把数据报转发到sun 。这个过程对于所有140.252.1.1子网上的主机来说都是透明的,主机sun实际上是在路由器netb后面进行配置的 。
假如在主机gemini上执行ARP命令,经过与主机sun通信以后,我们发现在同一个子网140.252.1.1上的netb和sun的IP地址映射的硬件地址是相同的 。这通常是使用委托ARP的线索 。
gemini % arp -a ;;;;
这里是子网140.252.1.1上其他主机的输出行
netb (140.252.1.183) at 0:80:ad:3:6a:80
sun (140.252.1.29) at 0:80:ad:3:6a:80
图4-6中的另一个需要解释的细节是在路由器netb的下方(SLIP链路)显然缺少一个IP地址 。为什么在拨号SLIP链路的两端只拥有一个IP地址,而在bsdi和slIP之间的两端却分别有一个IP地址?在3.8小节我们已经指出,用ifconfig命令可以显示拨号SLIP链路的目的地址,它是140.252.1.183 。NetBlazer不需要知道拨号SLIP链路每一端的IP地址(这样做会用更多的IP地址) 。相反,它通过分组到达的串行线路接口来确定发送分组的拨号主机,因此对于连接到路由器的每个拨号主机不需要用唯一的IP地址 。所有的拨号主机使用同一个IP地址140.252.1.183作为SLIP链路的目的地址 。
ARP代理可以把数据报传送到路由器sun上,但是子网140.252.1.13上的其他主机是如何处理的呢?选路必须使数据报能到达其他主机 。这里需要非凡处理,选路表中的表项必须在网络140.252的某个地方制定,使所有数据报的目的端要么是子网140.252.1.13,要么是子网上的某个主机,这样都指向路由器netb 。而路由器netb知道如何把数据报传到最终的目的端,即通过路由器sun 。
推荐阅读
- TCP协议的通讯方式
- winxp系统中自动获取ip地址具体操作方法
- 第三层IP协议和路由功能的介绍上
- 我国发展MPLS 技术的策略
- 苹果id三个地址怎么填
- 二 解析中国网通MPLS VPN
- IPv4今日地址行为
- 反向地址转换协议
- SNMP:简单网络管理协议
- SLP:服务定位协议