不同网段不能通信的原因

两台计算机 插了一个交换机 a 机找b机 他们不同网段 为什么不能通信~ 首先说明 我知道他们不是一个广播域 也没有三层路由 我就是说 2层的交换机如何识别 他们是不是同一个网段 同一个才能发过去 不通的交给 三层处理。 刚开始学网络 大哥赐教 我知道他们不能 我问的就是为什么不能 我也知道 加个路由就行~ 看清楚我问的是 当交换机 接受到一个数据帧的时候 他如何判断的 目的地址 和 源地址 是不是一个网段的 当然如果是 就直接发送 不是就交给路由~ 我问的就是 交换机 如何识别 网段的

在这里存在一个误区,而且好多地方说明ARP原理的时候也没有将清楚,其实交换价没有判断IP属于相同或不同子网的功能,交换机只关心目标MAC地址然后将之送出去。
是否处于同一个IP子网是发送主机自己判断的,他将自己IP地址+子网掩码与目标IP地址(主机是知道目标IP的)进行计算判断,如果相同,那么在进行ARP查找会将目标MAC地址置为全F,这样交换机收到后就会在内部广播;如果不同子网,则会将目标MAC地址设置为默认网关MAC地址(如果不知道,会通过ARP查找默认网关地址对应的MAC地址),那么交换机就会将该帧传给三层路由器,进行后续的路由转发。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-11-08
以PING来举例,当设备A PING 设备B时,设备A先会判断自己和设备B是否在同一个网段,这个过程是由设备A自己通过IP和掩码来计算判断的,如果在同一个网段,那设备A就会发送ARP包以获取设备B的MAC地址,如果不是同一个网段,设备A如果配的有网关就会寻找网关,如果没有网关,设备A会直接停步访问,因为不在同一个网段,也没有网关,所以无法获得目标设备的MAC地址,所以就终止访问。
访问时为什么要获取目标设备的MAC呢?因为在访问时,需要从应用层,传输层、网络层、数据链路层,一层一层的来封装数据,普通交换机就是在二层,也就是数据链路层,数据在这一层是要封装MAC地址的,所有层都封装完后才会进行传输。如果在无法获得二层的MAC就无法进行二层的封装,因此就终止访问了。
第2个回答  2020-04-04
交换机是用MAC地址来进行通信的,但是它又怎么识别一个IP地址在不在一个网段呢?想必这就是楼主要问的问题。
我的理解:IP地址这样一个规则是
International
Organization
for
Standardization
规定的规则,这个东西其实跟交换机没多大关系,它只寻求MAC地址和端口的对应关系,而IP同一网段或者不同网段其实是两个互相通信的终端决定的啊。
交换机只管收了数据查MAC,同段IP在广播时接受方收到广播应答了就发出去了,而不同段的IP在广播时是在这个网段范围内广播的,没路由,自然接受方就收不到数据,它连广播都收不到啊。
楼主可能又说那交换机怎么认识是不同段的啊,这是IOS规定的,所有网络设备被制造出来都遵循这样一个守则,规则就是这样啊,还要问为什么要制定这个规则,就去问:国际标准化组织吧。
第3个回答  2019-05-23
首先,确认一点,采用什么协议进行通讯,如果采用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
相似回答