首先弄清主机之间通信的一个原则:进行子网划分后,不同子网在逻辑上是独立的,没有路由器的转发,子网之间的主机不可能相互通信。那么如果主机间要能进行直接通信(路由器转发信息不算直接通信),只可能有这些主机处在同一个子网内。
交换机原理
交换机是根据网桥的原理发展起来的 ,与桥接器一样,交换机按每一个包中的MAC地址相对简单地决策信息转发。而这种转发决策一般不考虑包中隐藏的更深的其他信息。与桥接器不同的是交换机转发延迟很小,操作接近单个局域网性能,远远超过了普通桥接互联网络之间的转发性能。
(1)端口地址表
端口地址表记录了端口下包含主机的MAC地址。端口地址表是交换机上电后自动建立的,
保存在RAM中,并且自动维护。
交换机隔离广播域的原理是根据其端口地址表和转发决策决定的。
(2)转发决策
交换机的转发决策有三种操作:丢弃、转发和扩散。
丢弃:当本端口下的主机访问已知本端口下的主机时丢弃。
转发:当某端口下的主机访问已知某端口下的主机时转发。
扩散:当某端口下的主机访问未知端口下的主机时要扩散。
每个操作都要记录下发包端的MAC地址,以备其它主机的访问。
(3)成存期:
生成期是端口地址列表中表项的寿命。每个表项在建立后开始进行倒记时,每次发送
数据都要刷新记时。对于长期不发送数据主机,其MAC地址的表项在生成其结束时删除。
所以端口地地表记录的总是最活动的主机的MAC地址。
我来回答楼主的问题吧,楼上的感觉没有一位真正指出了问题的所在:
首先要明白一点,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是设了一个假的网关,那么如果没设的话,数据包到这一步就丢弃了,没有目的地就发送不了了.如果设了的话,接着往走.
4.假设A电脑设定的网关是192.168.1.1,那么IP协议知道了目的IP,但是不知道目的MAC,所以会查找A电脑的ARP缓存,看里面有没有目的MAC,很遗憾,肯定没有,因为并没有网关设备.所以A会发一个ARP广播到192.168.1.X网段,来查找IP是192.168.1.1的MAC,当然,物理上就没有这个设备,自然就没有人相应此ARP广播,所以最终IP协议无法拿到目的的MAC,就无法将数据包往下一个层数据链路层传递.
回到最开始,还是那句话:IOS一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接受数据是从下至上.
在此场景中数据包在三层就停住了,根本不会涉及到二层.
交换机是用MAC地址来进行通信的,但是它又怎么识别一个IP地址在不在一个网段呢?想必这就是楼主要问的问题。
我的理解:IP地址这样一个规则是 International Organization for Standardization 规定的规则,这个东西其实跟交换机没多大关系,它只寻求MAC地址和端口的对应关系,而IP同一网段或者不同网段其实是两个互相通信的终端决定的啊。
交换机只管收了数据查MAC,同段IP在广播时接受方收到广播应答了就发出去了,而不同段的IP在广播时是在这个网段范围内广播的,没路由,自然接受方就收不到数据,它连广播都收不到啊。
楼主可能又说那交换机怎么认识是不同段的啊,这是IOS规定的,所有网络设备被制造出来都遵循这样一个守则,规则就是这样啊,还要问为什么要制定这个规则,就去问:国际标准化组织吧。
首先,确认一点,采用什么协议进行通讯,如果采用IP协议,则两台主机必须在一个网络内。也就是网络号必须相同才能进行通讯。
如果不在一个子网内需要进行通讯,则必须通过第三层的路由进行通信。
例子:pc 192.168.1.1 255.255.255.0 gw:192.168.1.254
服务器 172.16.1.1 255.255.255.0 gw:172.16.1.254
如果要进行通讯,则必须通过路由,
数据包传输方式为:
192.168.1.1<->192.168.1.254<->172.16.1.254<->172.16.1.1
交换机只管收了数据查MAC,同段IP在广播时接受方收到广播应答了就发出去了,而不同段的IP在广播时是在这个网段范围内广播的,没路由,自然接受方就收不到数据,它连广播都收不到啊。