子网掩码

1、关于子网号

IP地址由网络号和主机号组成。主机号后来被分成了子网号和主机号两部分。这两部分的划分可以依据用户需要,如子网号10位,主机号6位,或者子网号8位,主机号8位,都是可以的。

这里就讨论子网号和主机号都是8位的情况。


2、子网寻址

子网对于外部路由器而言隐藏了内部网络组织。一个数据报,发往140.252.57.1,则该数据包首先发往路由器140.252.104.1,之后发往对应的子网。

下图反应了子网的组成,223.1.1.1   223.1.1.2  223.1.1.3三台主机接口和路由接口 组成了一个子网,该子网的地址是223.1.1.4(路由接口)。任何要求连接到该组网的地址都要求其地址形式为223.1.1.xxx。

与此同时,网络号+子网号  被称之为网络前缀。这里223.1.1就是网络前缀


3、子网掩码

用于区分出主机号,如图  后8位为0


4、tcp/ip  inetdevice.h中的函数inet_ifa_match

addr^ifa->ifa_address两个地址异或,如果子网相同,则结果为0,&ifa->ifa_mask的意义是不考虑主机号。

!取反

那么如果两个地址是同一个子网的,那么该函数返回1.

(关于异或 a=1001  b=1010  a^b=0011)

static __inline__ bool inet_ifa_match(__be32 addr, struct in_ifaddr *ifa)
{
	return !((addr^ifa->ifa_address)&ifa->ifa_mask);
}
文章参考:《计算机网络自顶向下》《TCP-IP详解卷1:协议》
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值