IP地址中的网络地址和主机地址分别是什么意思?怎么计算的呢?

什么意思呢?

先理解下这个:01087654321
这是一个电话号码,它是一坨数字但我们很清楚它分为两部分,其中010是表示北京的区号,后面87654321是北京范围内的一台座机号(如有雷同纯属巧合)所以我们经常把它写成010-87654321以区分区号和座机号。
现在来看一个IP地址:192.168.1.3
看上去是一坨数字,里面也包含两个部分,具体的说是两个ID(习惯叫它ID),一个是网络ID一个是主机ID。以后看到一个IP地址的时候一定要有这样的意识,我看到了一个网络标识和一个主机标识。
那么哪一部分是网络ID哪一部分是主机ID呢?单看这个IP是看不出来的,要区分它们需要一些特殊的表示方法。
常用表示法1:192.168.1.3/24
常用表示法2: 192.168.1.3 netmask(子网掩码) 255.255.255.0
这两种表示法都表示相同的意思,即,前面三个十进制数192.168.1是网络ID,后面3表示主机ID)。
Why?
常用表示法1 的/24 表示IP地址的前面24位二进制数是网络ID
常用表示法2 那是IP地址的两部分,网络地址在前,主机地址在后,通过子网掩码进行区分和计算。比如一个IP192.168.1.1,子网掩码255.255.255.0,那么网络地址就是192.168.1.0,主机地址就是0.0.0.1。

怎么计算的呢?

将IP地址和子网掩码全部转换为二进制形式
然后二者逐位相与的结果就是网络地址
IP与子网掩码的非的结果相与就是主机地址。

还是刚才的例子:
IP十进制:192.168.1.1
IP二进制:11000000 10101000 00000001 00000001
子网掩码十进制:255.255.255.0
子网掩码二进制:11111111 11111111 11111111 00000000

网络地址:IP & 子网掩码
网络地址二进制:11000000 10101000 00000001 00000000
网络地址十进制:192.168.1.0

主机地址:IP & (~子网掩码)
主机地址二进制:00000000 00000000 00000000 00000001
主机地址十进制:0.0.0.1

你可能感兴趣的:(网络,tcp/ip,网络,网络协议)