(Java面试题)
在网络通讯时,IP地址表示一个主机。你和隔壁小王都在家里用QQ上网聊天,你发现你的IP是192.168.1.101,小明的IP也是192.168.1.101。请问:为什么两台IP地址相同的主机可以通讯?
实际上,全国有几百万台家庭电脑的IP都是192.168.1.XXX,但是,却不妨碍大家互相QQ聊天。
比如,
你的电脑A 192.168.1.101
你家路由器 192.168.1.1 (LAN口) / 202.188.14.139 (WAN口)
小明家路由器 192.168.1.1 (LAN口) / 134.12.98.5 (WAN口)
小明的主机B 192.168.1.101
你发出一条消息后,该消息依次经过:
( A ) >> 你家路由器 >> 。。。>> 小明家路由器 >> ( B )
简单地讲,你的消息将由路由器转发,真实发生的是两台路由器之间的通讯,而这两台路由的IP是不相同的。
大概的原因主是这样,具体的详细的原理讲解:请参考Java学习指南- 网络通信篇,关于交换机、路由器、端口映射的章节。