如何计算IP地址的网络号和主机号?

时间:2024-03-03 11:28:00
IP地址与网络分类 (1)IP地址

不同的物理网络技术有不同的编址方式;不同物理网络中的主机,有不同的物理网络地址。网间网技术是将不同物理网络技术统一起来的高层软件技术。网间网技术采用一种全局通用的地址格式,为全网的每一网络和每一主机都分配一个网间网地址,以此屏蔽物理网络地址的差异。IP协议提供一种全网间网通用的地址格式,并在统一管理下进行地址分配,保证一个地址对应一台网间网主机(包括网关),这样物理地址的差异被IP层所屏蔽。IP层所用到的地址叫做网间网地址,又叫IP地址。它由网络号和主机号两部分组成,统一网络内的所有主机使用相同的网络号,主机号是唯一的。IP地址是一个32为的二进制数,分成4个字段,每个字段8位。


(2)三类主要的网络地址

我们知道,从LAN到WAN,不同种类网络规模相差很大,必须区别对待。因此按网络规模大小,将网络地址分为主要的三类,如下:
A类:
0 1
2 3 8 16 24
3 1 0网络号主机号
B类:
1 0网络号主机号
C类:
1 1 0网络号主机号

A类地址用于少量的(最多27个)主机数大于216的大型网,每个A类网络可容纳最多224台主机;B类地址用于主机数介于28~216之间数量不多不少的中型网,B类网络最多214个;C类地址用于每个网络只能容纳28台主机的大量小型网,C类网络最多221个。

除了以上A、B、C三个主类地址外,还有另外两类地址,如下:
D类:
1 1 1 0多目地址
E类:
1 1 1 1
0留待后用
其中多目地址(multicast address)是比广播地址稍弱的多点传送地址,用于支持多目传输技术。E类地址用于将来的扩展之用。


(3)TCP/IP规定网络地址
除了一般地标识一台主机外,还有几种具有特殊意义的特殊形式。
*广播地址

TCP/IP规定,主机号全为“1”的网络地址用于广播之用,叫做广播地址。所谓广播,指同时向网上所有主机发送报文。
*有限广播

前面提到的广播地址包含一个有效的网络号和主机号,技术上称为直接广播(directed
boradcasting)地址。在网间网上的任何一点均可向其他任何网络进行直接广播,但直接广播有一个缺点,就是要知道信宿网络的网络号。

有时需要在本网络内部广播,但又不知道本网络网络号。TCP/IP规定,32比特全为“1”的网间网地址用于本网广播,该地址叫做有限广播地址(limited
broadcast address)。
*“0”地址
TCP/IP协议规定,各位全为“0”的网络号被解释成“本”网络。
*回送地址

A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopback
address)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。

TCP/IP协议规定,一、含网络号127的分组不能出现在任何网络上;二、主机和网关不能为该地址广播任何寻径信息。由以上规定可以看出,主机号全“0”全“1”的地址在TCP/IP协议中有特殊含义,不能用作一台主机的有效地址。


二、子网掩码


(1)子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。

因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是IP网络地址的多重复用技术应运而生。

通过复用技术,使若干物理网络共享同一IP网络地址,无疑将减少网络地址数。
子网编址(subnet
addressing)技术,又叫子网寻径(subnetrouting),英文简称subnetting,是最广泛使用的IP网络地址复用方式,目前已经标准化,并成为IP地址模式的一部分。

一般的,32位的IP地址分为两部分,即网络号和主机号,我们分别把他们叫做IP地址的“网间网部分”和“本地部分”。子网编址技术将本地部分进一步划分为“物理网络”部分和“主机”部分,如图:

网间网部分物理网络主机
|←网间网部分→|←————本地部分—————→|

其中“物理网络”用于标识同一IP网络地址下的不同物理网络,既是“子网”。


(2)子网掩码IP协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。例如位模式:

11111111 11111111 11111111
00000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。这种位模式叫做子网模(subnet
mask)或“子网掩码”。
为了使用的方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如B类地址子网掩码(11111111
11111111 11111111 00000000)为:
255.255.25.0
IP协议关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码。像255.255.255.64和255.255.255.160等一类的子网掩码不推荐使用。

(3)子网掩码与IP地址子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。
例如:有一个C类地址为:

192.9.200.13其缺省的子网掩码为:
255.255.255.0则它的网络号和主机号可按如下方法得到:

①将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101

②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000

③将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分11000000 00001001 11001000 00001101 AND
11111111 11111111 11111111 00000000 11000000 00001001 11001000
00000000结果为192.9.200.0,即网络号为192.9.200.0。

④将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分11000000 00001001 11001000 00001101 AND
00000000 00000000 00000000 11111111 00000000 00000000 00000000
00001101结果为0.0.0.13,即主机号为13。
(4)子网掩码与IP地址子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。

例如:有一个C类地址为:
192.9.200.13 其缺省的子网掩码为:
255.255.255.0
则它的网络号和主机号可按如下方法得到:
①将IP地址192.9.200.13转换为二进制11000000 00001001 11001000
00001101
②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000

③将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分11000000 00001001 11001000 00001101 AND
11111111 11111111 11111111 00000000 11000000 00001001 11001000
00000000结果为192.9.200.0,
即网络号为192.9.200.0。

④将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分11000000 00001001 11001000 00001101 AND
00000000 00000000 00000000 11111111 00000000 00000000 00000000 00001101
结果为0.0.0.13,即主机号为13。
三、子网划分与实例根据以上分析,建议按以下步骤和实例定义子网掩码。

1、将要划分的子网数目转换为2的m次方。如要分8个子网,8=23。
2、取上述要划分子网数的2的m次方的幂。如23,即m=3。

3、将上一步确定的幂m按高序占用主机地址m位后转换为十进制。如m为3
则是11100000,转换为十进制为224,即为最终确定的子网掩码。如果是C类网,则子网掩码为255.255.255.224;如果是B类网,则子网掩码为255.255.224.0;如果是C类网,则子网掩码为255.224.0.0。

在这里,子网个数与占用主机地址位数有如下等式成立:2m=n。其中,m表示占用主机地址的位数;n表示划分的子网个数。根据这些原则,将一个C类网络分成4个子网。若我们用的网络号为192.9.200,则该C类网内的主机IP地址就是192.9.200.1~192.9.200.254(因为全“0”和全“1”的主机地址有特殊含义,不作为有效的IP地址),现将网络划分为4个部分,按照以上步骤:

4=22,取22的幂,即2,则二进制为11,占用主机地址的高序位即为11000000,转换为十进制为192。这样就可确定该子网掩码为:192.9.200.192,4个子网的IP地址范围分别为:

二进制十进制
① 11000000 00001001 11001000 00000001 11000000 00001001 11001000
00111110 192.9.200.1
192.9.200.62
② 11000000 00001001 11001000 01000001
11000000 00001001 11001000 01111110 192.9.200.65
192.9.200.126

11000000 00001001 11001000 10000001 11000000 00001001 11001000 10111110
192.9.200.129
192.9.200.190
④ 11000000 00001001 11001000 11000001
11000000 00001001 11001000 11111110 192.9.200.193
192.9.200.254

在此列出A、B、C三类网络子网数目与子网掩码的转换表,以供参考。


A类:

子网数目 占用位数 子网掩码
子网中主机数
2 1 255.128.0.0 8,388,606
4 2 255.192.0.0 4,194,302
8 3
255.224.0.0 2,097,150
16 4 255.240.0.0 1,048,574
32 5 255.248.0.0
524,286
64 6 255.252.0.0 262,142
128 7 255.254.0.0 131,070
128 8
255.255.0.0 65,534

B类:

子网数目 占用位数 子网掩码 子网中主机数
2 1
255.255.128.0 32,766
4 2 255.255.192.0 16,382
8 3 255.255.224.0 8,190

16 4 255.255.240.0 4,094
32 5 255.255.248.0 2,046
64 6 255.255.252.0
1,022
128 7 255.255.254.0 510
256 8 255.255.255.0 254

C类:


子网数目 占用位数 子网掩码 子网中主机数
2 1 255.255.255.128 126
4 2
255.255.255.192 62
8 3 255.255.255.224 30
16 4 255.255.255.240 14
32
5 255.255.255.248 6
64 6 255.255.255.252
2

-------------------------------------------
IP地址为202.196.1.35/27的主机所在的网络地址为202.196.1.32,计算方法是用IP地址和子网掩码化为二进制后做"与"运算.


主机172.24.100.45/16和主机127.24.101.46/16一定不在同一网段.第一字节就不同.


如果是写错了,那么172.24.100.45/16和主机172.24.101.46/16在同一网段,网络位完全一致.


主机172.24.100.45/24和主机172.24.101.46/24不在同一网段,前者地址范围是172.24.100.0-255,后者地址范围是172.24.101.0-255.