首先看看这个简单的拓扑结构:
N1 ------------ PC1 | N3 | N2 ------------ PC2 网络1 |
N1 ------------ PC1 | | | N2 ------------ PC2 网络2 |
网络1,2中,N1, N2和N3可以是集线器,交换机,路由器的任意组合。
一台主机首先分析目的IP地址是否视听一个网段
如果不是,报文发送给网关
如果是,察看ARP cache
如果存在,构造frame
如果不存在,发送ARP广播
ARP可以看作是网络层和数据连路层中间的一个glue协议。因为集线器和交换机无法识别IP地址,也就无法运行ARP协议了。
这个似乎就是无法用它们连接不同网络的原因了。不过仔细查看上面的步骤,如果由于错误的子网掩码配置,两台主机认为彼此认为在同一个网络内,由于ARP使用广播,所以交换机和集线器都会转发,从而彼此可以通讯。如果中间是路由器,由于Proxy ARP的应用,仍然可以通讯。
总结:如果两台主机IP通过子网掩码而在同一个网络,无论是用那个网络设备他们都能彼此通讯。如果不在同一个网络,那么只有路由器可以使他们通讯。
参考:
http://cisco.chinaitlab.com/TCP/38035.html
http://en.wikipedia.org/wiki/Address_Resolution_Protocol
http://en.wikipedia.org/wiki/Proxy_ARP