这一次来谈谈网关是什么。 所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。 实验设计 A与B为实验用的PC机,使用Windows2000Professional作操作系统。 实验方案: 步骤1: 设置两台主机的IP地址与子网掩码: A: 10.2.2.2 255.255.254.0 B: 10.2.3.3 255.255.254.0 两台主机均不设置缺省网关。 用arp -d命令xx两台主机上的ARP表,然后在A与B上分别用ping命令与对方通信,在A与B上分别显示, A: Reply from 10.2.3.3: bytes=32 time<10ms TTL=128 B: Reply from 10.2.2.2: bytes=32 time<10ms TTL=128 用arp -a命令可以在两台PC上分别看到对方的MAC地址。 分析:由于主机将各自通信目标的IP地址与自己的子网掩码相"与"后,发现目标主机与自己均位于同一网段(10.2.2.0),因此通过ARP协议获得对方的MAC地址,从而实现在同一网段内网络设备间的双向通信。 步骤2: 将A的子网掩码改为:255.255.255.0,其他设置保持不变。 操作1:用arp -d命令xx两台主机上的ARP表,然后在A上"ping"B,在A上显示结果为:Destination host unreachable 用arp -a命令在两台PC上均不能看到对方的MAC地址。 分析1:A将目标设备的IP地址(10.2.3.3)和自己的子网掩码(255.255.255.0)相"与"得10.2.3.0,和自己不在同一网段(A所在网段为:10.2.2.0),则A必须将该IP分组首先发向缺省网关。由于A的缺省网关没有配置,无法对分组进行正确发送,因此显示"目标主机不可到达"。 操作2:接着在B上"ping"A,在B上显示结果为: Request timed out 此时用arp -a命令可以在两台PC上分别看到对方的MAC地址。 分析2:B将目标设备的IP地址(10.2.2.2)和自己的子网掩码(255.255.254.0)相"与",发现目标主机与自己均位于同一网段(10.2.2.0),因此,B通过ARP协议获得A的MAC地址,并可以正确地向A发送Echo Request报文。但由于A不能向B正确地发回Echo Reply报文(原因见分析1),故B上显示ping的结果为"请求超时"。在该实验操作中,通过观察A与B的ARP表的变化,可以验证:在一次ARP的请求与响应过程中,通信双方就可以获知对方的MAC地址与IP地址的对应关系,并保存在各自的ARP表中。 步骤3: 在前面实验的基础上,把A的缺省网关设为:10.2.2.1,网关的子网掩码为:255.255.0.0。 在A与B上分别用ping命令与对方通信,各自的显示结果为: A: Reply from 10.2.3.3: bytes=32 time<10ms TTL=128 B: Reply from 10.2.2.2: bytes=32 time<10ms TTL=127 在A与B上分别用tracert命令追踪数据的传输路径,结果分别为: A: tracert 10.2.3.3 Tracing route to 10.2.3.3 over a maximum of 30 hops: 1 <10 ms <10 ms <10 ms 10.2.2.1 2 <10 ms <10 ms <10 ms 10.2.3.3 Trace complete. B: tracert 10.2.2.2 Tracing route to 10.2.2.2 over a maximum of 30 hops: 1 <10 ms <10 ms <10 ms 10.2.2.2 Trace complete. 分析:如步骤2中的分析,由于A认为B与其不在同一个网段,故从A发向B的报文需要经过网关转发;而B认为A与其在同一个网段,故B不需要经过网关直接向A发送报文,从而可以观察到A与B双向通信时传输路径的不对称性。由于ping命令结果显示的是从目标主机返回的Echo Reply报文的TTL的值,而B收到从A返回的Echo Reply报文经过了网关的转发,所以在B中显示该IP报文的TTL值降为了127(从A发出的IP分组的TTL的初始值为128,每经过一个网关,TTL值减1)。 步骤4: 用arp -d命令xxA中的ARP表,在A上ping一台外网段的主机,如中大的WWW (202.116.64.8),再用arp -a可观察到A的ARP表中只有缺省网关的MAC地址信息。 分析:当源主机要和外网段的主机进行通信时,它并不需要获取远程主机的MAC地址,而是把IP分组发向缺省网关,由网关IP分组的完成转发过程。如果源主机没有缺省网关MAC地址的缓存记录,则它会通过ARP协议获取网关的MAC地址,因此在A的ARP表中只观察到网关的MAC地址记录,而观察不到远程主机的MAC地址。 |