IP地址在不同网段的计算机为什么不能通信?

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:36:16
环境如下:一个二层交换机,二台电脑A和B,AB不在一个网段.
二层交换机不是只根据MAC地址来转发数据的吗? 那么为什么A和B不能通信呢? 又不涉及到IP地址?

复制的人就不用来了,我宁可关闭问题也不会给你们的.
回答问题的时候也别告诉我不在一个网段没有路由器就不能通信,我也知道这个.我需要的是为什么!!!!

首先要明白一点,IOS一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接受数据是从下至上.

来看你的问题,环境如下,我们来用一个ping命令的过程来解释:
一个交换机,连两个电脑A和B,A和B不在一个网段,他们的IP分别是192.168.1.2,255.255.255.0,B是 192.168.2.1,255.255.255.0,网关也可以设也可以不设,但其实你设了也是个假的网关,因为在你的环境里面只有一个交换机,并没有路由器,对吗?

A ping B:
1.Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同IP地址“192.168.2.1”一起交给IP层协议.
2.IP协议会查看目的IP地址是否和源IP在同一网段,如果在同一网段就直接查找ARP缓存,查找目的MAC,如果目的IP地址是否和源IP不在同一网段,那么就将数据包发送到网关.
3.按照前面的描述,在A电脑上有两种情况,1是没设网关 2是设了一个假的网关,那么如果没设的话,数据包到这一步就丢弃了,目的IP和源IP不在一个网段而且A没有网关,那么就无法发送.如果A设网关了的话,接着往走.
4.假设A电脑设定的网关是192.168.1.1,那么IP协议知道了目的IP,但是不知道目的MAC,所以会查找A电脑的ARP缓存,看里面有没有目的MAC,很遗憾,肯定没有,因为环境里并没有这个网关设备存在.所以A会发一个ARP广播到192.168.1.X整个网段,来查找IP是192.168.1.1 的MAC,当然,物理上就不存在192.168.1.1这个设备,自然就没有设备来响应这个ARP广播,所以最终IP协议无法知道目的MAC,就无法将数据包往下一个层数据链路层传递.

回到最开始,还是那句话:IOS一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接收数据是从下至上.
在此场景中数据包在三层就停住了,根本不会涉及到二层.

我懂LZ的意思~~就是说不同网段IP的机器接交换机,但是无法进行通信。其实这个很简单啦。因为机器本身就有张路由表的。它发现不同网段的应该把IP数据报发给网关。

为了让报文在物理网路上传