打印

[求助] 让我很费解的个一问题~PING的问题!

让我很费解的个一问题~PING的问题!

注意:这段是我参考的问题~~~~
大家注意:这里的IP不用管了,因为PING的是广播。

大家先看看这个:
不同子网机器竟然可以PING通????

看了《三层交换机和路由器的区别》一文后,对其中的一句话颇为费解。原文如下:机器A把自己的IP地址与目的IP地址比较,从其软件中配置的子网掩码提取出网络地址来确定目的机器是否与自己在同一子网内。若目的机器B与机器A在同一子网内,A广播一个ARP请求,B返回其MAC地址。机器A在和B通信的时候,仅知道B的IP地址,对B的子网掩码并不了解,所谓的从其软件中配置的子网掩码提取出的网络地址来确定目标机器是否在自己的同一子网内,是A机用本机的子网掩码和B机的IP地址进行逻辑运算得到的。并非使用B机器的子网掩码和B机器的IP地址进行逻辑运算得到的。但是问题在于,如果B机实际上的子网掩码并不一定和A机器相同,而且实际上很有可能和A机器并不在同一子网内。那么A机器就不可能得到B机器的MAC地址。无法与B机器通信。但文中所说似乎是A机器能得到B机器的MAC地址,可以与B机取得联系。有兼于此,做了如下实验
将内网某台机器的IP地址设为60.194.241.14,子网掩码设置为255.255.255.240。这样此台机器的IP地址和子网掩码进行与运算之后得到网络号60.194.241.0。B机器的IP地址设置为60.194.241.15,子网掩码设置为255.255.255.248。运算之后得到B机器的网络号为60.194.241.8。很显然,A机器和B机器并不在同一个子网内。但是,根据文章论述,A机器在和B机器通讯是先把自己的IP地址和B机IP相比较,使用自己的子网掩码提取出网络地址来确定B机是否在同一子网内。B机器IP和A机器的子网掩码与运算之后得到的网络地址为60.194.241.0。和A机的网络号是相同的,说明A机器和B机器在相同的子网内。可以互相通讯。实际上B机器的真实网络号为60.194.241.8,与A机器并不在同一子网内。A机器和B机器能否正常通信呢?
在A机器上PING B机 5次,使人非常奇怪的是居然受到了B机器的REPLY应答,竟然可以PING通。延迟都小于1MS,要知道,实际上两台机器并不在同一子网内。怎么会出现这种情况?不同子网的机器难道可以互通?百思不得其解,请高人指点,非常感谢!!!
======================================================================================================================================


=======================================================================================================================================
这个是我真正的问题:
主机A与主机B之间使用交叉网线连接以太口,A的地址配置为192.168.2.15/24 主机B的地址为192.168.2.16/16 两台电脑之间能通信吗?
=======================================================================================================================================
这里是其他人回答的最上面的那个问题:
举个例子
A ip:192.168.1.1 255.255.255.0
B ip:192.168.1.34 255.255.255.224

按照“机器A把自己的IP地址与目的IP地址比较,从其软件中配置的子网掩码提取出网络地址来确定目的机器是否与自己在同一子

网内。若目的机器B与机器A在同一子网内,A广播一个ARP请求,B返回其MAC地址”说法,A 拿出自己的netmask 与目标 ip进行计

算,结果计算出的网络号192.168.1.0

实际上A确实认为B与自己在同一网段,A也确实广播了个arp包,B也确实回复了一个arp包,这时A向B发送icmp包,问题是出在
这里的,当A向B发送icmp包时,包到了B,B对它也进行了检测,用自己的netmask来计算,结果发现A的IP与自己不在同一网段,
因此丢掉这个包,因此才ping不通



--------------------------------------------------------------------------------------------------------------------------------------


希望能够得到大家的指点!谢谢.
计算机网络群:45333599
请注明:菊花人。

TOP

如果有看不明白的尽管提出来,我感觉我应该说明白了,~~呵呵.
计算机网络群:45333599
请注明:菊花人。

TOP

看的我晕晕的
路过

TOP

"有兼于此,做了如下实验。
将内网某台机器的IP地址设为60.194.241.14,子网掩码设置为255.255.255.240。
B机器的IP地址设置为60.194.241.15,子网掩码设置为255.255.255.248
在A机器上PING B机 5次,使人非常奇怪的是居然受到了B机器的REPLY应答,竟然可以PING通 要知道,实际上两台机器并不在同一子网内"


你所做的实验:60.194.241.14/28 其子网数目为14个,除去全0和全1(一个作此子网的网络地址一个作广播地址),
B机:60.194.241.15/29 其子网数目为6个 , 除去全0和全1 ,但你B机的地址60.194.241.15并不在此子网中,此子网的地址范围为:60.194.241.1-60.194.241.6 .地址61.194.241.15恰是A子网的广播地址,故可以PING通


192.168.2.15/24
192.168.2.16/16 此两地址是不能互PING通的.

[ 本帖最后由 sunnyone 于 2008-5-11 08:58 编辑 ]

TOP

谢谢4楼的回答。

但很抱歉,
192.168.2.15/24
192.168.2.16/16 此两地址是能互PING通。
所以你说错了噢。‘
计算机网络群:45333599
请注明:菊花人。

TOP



的确可以PING 通~~~查了下ARP解析过程:


主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表项中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求数据包以主机A的IP地址和MAC地址作为发送者IP地址和发送者MAC地址,以主机B的IP地址和全0的MAC地址作为目标IP地址和目标MAC地址。由于ARP请求数据包以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:首先把ARP请求数据包中的请求发起者(即主机A)的IP地址和MAC地址存入自己的ARP表项中。然后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4) 主机A收到响应数据包后,将主机B的MAC地址加入到自己的ARP表中,从而完成一次ARP解析过程


A:192.168.2.16/16 B:192.168.2.15/24所以,你的地址看上去虽然不在一个网段,你A的地址只是将其广播域扩大了,ARP解析时,无论A还是B在广播ARP请求时,都可以在自己的网络段中找到对方的IP地址,所以也就可以完成ARP和RARP的请求.能相互通信也就正常了.不知道理解的对不对,还请高人指点.

[ 本帖最后由 sunnyone 于 2008-5-13 18:49 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

感谢6楼的回答,还是不是很明白!
计算机网络群:45333599
请注明:菊花人。

TOP

语言表达能力有限`~~~呵呵`~~~也不知道自己分析的正确与否~~呵呵`~还是期待高手详解

TOP