分享

这样算同一网段吗?

 pphsy 2014-04-26
               你的理解确实有点问题吧,一个可行的改法是把PCA的掩码改为 255.255.0.0,就没问题了。原理解释如下:
(根据你的描述,我暂且理解为你的网络环境中只有一台直连交换机,不存在路由器或其他的网络设备)

《一点该说的基础知识》

       首先,对于一个使用标准的ABCDE分类编址方案的IP地址,其实可以看成: IP地址 = 网络号 + 主机号。其中网络号由本机IP地址本机网络掩码做与运算获得,主机号由本机IP地址本机网络掩码的反码做与运算获得。比如说你举的例子中,对于PCA,网络号为 Net_IdA=192.168.0.0,主机号为 Host_IdA=0.0.0.6;对于PCB,网络号为 Net_IdB=192.168.0.0,主机号为 Host_IdB=0.0.1.3。看到这,你肯定要大呼,这俩丫的网络号不是一样的么,那就是在同一个子网啊,为什么不通呢?别急着下结论,请耐心往下看~

       其次,ping操作的实际内涵是什么?看下面的步骤:
(1)由本机构造一个ICMP请求包,发送给目的主机;
(2)目的主机处理后构造一个ICMP响应包,返回给本机;
(3)本机根据是否收到响应包,以及响应包的内容得到本次ping的结果,并交由显示器呈现给用户。
       也就是说,一次成功的ping操作其实是一次完整的双向通信过程,并非只要本机能将请求发送出去就算好了的。数据包要能出得去,更要回得来。

       最后还要说明的是一台主机要给另一台主机发送数据时的工作流程,以A向B发送数据为例,如下图:


《下面我们再来分析你的实验过程》

 PCA ping PCB 
       当PCA构造好ICMP请求包打算发送给PCB时,参照上面的流程图,其处理过程应当如下:
(1)PCA首先将PCB的IP地址192.168.1.3与自己的掩码255.255.255.0做与运算,得到它所认为的PCB的网络号:Net_IdB'=192.168.1.0【注意到Net_IdB'与Net_IdB并不一致】;
(2)然后用这个 Net_IdB' 与自己的网络号 Net_IdA=192.168.0.0 作比较,发现不一样;
(3)PCA把构造好的ICMP请求包交付给网关,但网关不存在,于是请求发送失败。
       呈现给你的直观现象就是 PCA ping PCB 不通【我猜系统给出的响应应该是:目标主机不可达(中文系统)/Destination Host Unreachable(英文系统)】,原因在于数据包出不去。

 PCB ping PCA 
       当PCB构造好ICMP请求包打算发送给PCB时,参照上面的流程图,其处理过程应当如下:
(1)PCB首先将PCA的IP地址192.168.0.6与自己的掩码255.255.0.0做与运算,得到它所认为的PCA的网络号:Net_IdA'=192.168.0.0【注意到Net_IdA'与Net_IdA是一致的】;
(2)然后用这个 Net_IdA' 与自己的网络号 Net_IdB=192.168.0.0 作比较,发现一样;
(3)PCB把构造好的ICMP请求包直接交付给PCA 。
       PCA处理后构造完成ICMP响应包,打算回给PCB,其处理过程和前文PCA向PCB发送请求包一致,结果是PCA发送响应包失败。
       呈现给你的直观现象就是 PCB ping PCA 不通【我猜系统给出的响应应该是:请求超时(中文系统)/Request timed out(英文系统)】,原因在于数据包回不来。

《配置的时候应该注意什么》

       如果你不是有什么特殊需求的话,那么你应该为你同一子网内的所有主机配置相同的掩码。          

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多