打印

[请教]有关网络通信中的IP与子网掩码

[复制链接]
2064|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yxdengos|  楼主 | 2010-3-9 19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用ARM和PC做了关于UDP的实验,使用LWIP协议进行通信,其中ARM作为客户端进行发送,PC接收数据。

当PC上IP使用192.168.1.55  子网掩码255.255.0.0
  ARM netif存取IP为192.168.0.8 子网掩码255.255.255.0   通信失败!PC网卡接收一直是0

但是PC 192.168.0.55 255.255.255.0
ARM 上192.168.1.8 255.255.0.0 通信成功

请问,在C类的网络中,当子网掩码使用255.255.0.0时,关于判定两个计算机是否在同一个网络的原则是怎么样的?上述的现象应该如何解释?

谢谢!

相关帖子

沙发
ShakaLeo| | 2010-3-9 20:26 | 只看该作者
子网掩码为1的位留给IP地址里的网络号和子网号,为0的位留给IP地址里的主机号。C类IP地址只有8位留给子网号和主机号,前面的位都是网络号,所以我觉得子网掩码使用255.255.0.0是不符合规范的,出错也就在所难免。

使用特权

评论回复
板凳
yxdengos|  楼主 | 2010-3-9 21:50 | 只看该作者
谢谢!

我的问题就是想问一下 对于C类的网络 如果不使用子网和默认子网掩码 应该是什么规则?

我怎么感觉跟数据传输方向有关?因为子网掩码不会在IP包中,那么接收方接收判断时的原则,就值得揣摩了

使用特权

评论回复
地板
ShakaLeo| | 2010-3-9 22:43 | 只看该作者
C类IP地址如果不使用子网,那么子网掩码就应该是255.255.255.0 。因为低8位是主机号,高位全是网络号。
你做实验的现象我觉得可以这么解释:ARM板的网卡驱动程序在发送前会先判断目的IP和本机IP是否在同一网络内,计算方法就是把目的IP和本机IP分别与本机子网掩码做“位与”运算,然后看这两个结果是否相等。如果用这种判断方法,那么你的第一种情况计算结果是不同的,一个是192.168.1.0,一个是192.168.0.0 。而第二种情况的计算结果是相同的,结果都是192.168.0.0 。如果做UDP双向通讯的实验,有可能这两种情况都不能成功。

使用特权

评论回复
5
奇门遁甲| | 2010-3-9 23:55 | 只看该作者
掩码为了分网段,分网段是为了路由;

ARM 192.168.1.8 255.255.0.0要发送数据到 PC,192.168.0.55 255.255.255.0
ARM只知道PC地址不知道也不需要对方的掩码,把PC的地址和255.255.0.0位与得出网络号192.168
正好arm的IP和掩码位与也得网络号192.168,那么是同一网段;
如果还没有对方mac,arm立即发送arp请求获取mac,然后要发送了;

使用特权

评论回复
6
yxdengos|  楼主 | 2010-3-12 20:33 | 只看该作者
关于4、5楼的想法都是正确的

进行双向通信 确实出现问题

谢谢

使用特权

评论回复
7
luminosity| | 2010-3-13 12:57 | 只看该作者
ding!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

132

帖子

0

粉丝