论坛: 系统集成 标题: 网络通信的一个问题 复制本贴地址    
作者: tuzi [tuzi]    版主   登录
关于掩码的问题,挺有意思 

我现在已经用网卡和双绞线按正确的方法将两台电脑连在了一起,现在我故意把两台电脑的子网掩码设置的不一样,请问各位朋友在这种情况之下两台电脑是否可以通信,为什么?
请详细的分析一下  (我是在其他论坛看到 大家说说看)


地主 发表时间: 12/19 14:44

回复: cqwb007 [cqwb007]   论坛用户   登录
这与用一、二层设备连接也没什么大的区别,物理上是连通的,但逻辑上两个系统互不认帐!

B1层 发表时间: 12/21 20:04

回复: wing605 [wing605]      登录
虽然设置为两个不同的掩码,但通过正确的设置应该是可以进行通信的。

B2层 发表时间: 03-12-22 11:40

回复: tuzi [tuzi]   版主   登录
-------------一下转贴整理自网易精华区---------------
关于同一个网段两台不同掩码长度的主机的通讯(比如: 172.16.1.1 255.255.0.0 和 172.16.2.1 255.255.255.0)
在以太网中,最终是通过layer2地址mac address来决定的。
一台主机想要通信时会先检查arp cache,找到就发送,如没找到,则去检查双方的ip地址是否在一个网段(根据掩码)。如果是同一个网段则发送目的为对方的arp解析请求(2层广播),如果不是同一个网段,会根据设置的default gateway为目的发送arp解析请求,解析成功后会把数据发往default gateway(比如路由器)
(注意,在Win系列的计算机上如果没有设置Default Gateway,主机不会再发送一个指向位于远程网络的对方的arp解析请求,因此Cisco路有器上的proxy-arp功能不起作用。)

ping使用icmp协议,简单的说发起ping的一方发送icmp echo数据包,接受ping的一方回答icmp echo-reply数据包,因此在防火墙或者路有器上过滤其中一种包可以实现单向ping通。

初始状态下,双方的arp-cache都是空的,(刚开机的状态)子网掩码较短的主机会认为对方在自己的同一个网段内,因此会发送目的地为对方的arp解析请求,这时对方就将监听到的ip-mac地址的映射存入自己的arp cache, 同时回复一个arp解析应答,这样发起方(掩码短的)也就保存了对方的ip-mac地址的映射,因此当ping的时候,在发送icmp echo或者icmp echo-reply时,当先检查arp-cache时,可以找到,相应的entry,通信
可以建立。
另一种情况,当子网掩码较长的一方发起通信(ping),当比较ip时,会发现目的地与自己不在同一个网段,这时如果时ms的主机,未设DG(default-gateway,这里假定是路由器的接口)的情况下,通信不能建立,如果设置了DG,那么,会发送一个目的为DG的arp解析请求,路由器回答这个arp后,发起方把ping echo数据包发向路由器,路由器上的所有激活(active)的接口的地址以及某个接口上子接口或者第二地址之间不能够over-lapping,否则设不上,因此当路由器转发这个icmp echo时,它或者认为这个包是发给本网段的(路由器接口的掩码设为长的),那么就丢掉这个包,或者去检查路由表(路由器接口的掩码设为短的),这时一般情况下
是在其中找不到目的网段的,因此包被丢弃;另一种情况当互联网络(inter-networks)中存在一个不连续的网络,刚好与这边的地址相同,掩码为长的,(这一般是由于不良的网络设计所致),这时路由器会把这个ping包发往遥远的网段,而不是处在同一个端口下面的真正目的地,当然, 这个icmp echo是永远也得不到icmp echo-reply的

结论,这种情况下,是否连通要看连接是由谁发起的


B3层 发表时间: 04-01-15 20:33

论坛: 系统集成

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号