IP地址计算---子网掩码确定和子网划分等详解 (附常见相关习题)

.

  • 一、 Ip地址
        • 1、什么是IP地址
        • 2、什么是子网掩码
        • 3、ip地址的两种表示方式
        • 3、特殊的一类IP地址
  • 二、常见IP相关计算
        • 1、网络号
        • 2、主机号
        • 3、广播地址
        • 4、可用IP地址范围
        • 5、子网数目
  • 三、子网划分
  • 四、子网掩码如何确定

一、 Ip地址

1、什么是IP地址

IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照CP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。包括主机地址和网络地址两部分。如11000000 10101000 00000001 00000110(192.168.1.6)

2、什么是子网掩码

  • 子网掩码(subnet masking)的功能是告知主机或路由设备,地址的哪一部分是网络号,包括子网的网络号部分,哪一部分是主机号部分。

  • 子网掩码使用与IP地址相同的编址格式,即4个8位组的32位长格式。

  • 在子网掩码中,网络部分和子网络部分对应的位全为“1”主机部分对应的位全为“0”

  • 通过将子网掩码与IP地址进行“与”操作,可提供所给定的IP地址所属的网络号(包括子网络号)

172.31.128.255/18

其中18就是子网掩码,表示32位中高18位是1,其它位为0。它的二进制形式为11111111.11111111.11000000.000000,转为十进制就是255.255.192.0,为了方便我们习惯于写单个数字18表示子网掩码

IP地址计算---子网掩码确定和子网划分等详解 (附常见相关习题)_第1张图片

3、ip地址的两种表示方式

  • 原始的划分方式
    左边的某些连续位表示网络号,右边的某些连续位表示主机号,那么我们平常在讨论这一系列问题的时候,会有一个“网络地址”的概念,一般来说网络地址并不等于IP地址,网络地址就是IP地址中的网络号,将主机号置0,就可以得到网络地址。
    IP地址 ::= {<网络号><主机号>}

IP地址计算---子网掩码确定和子网划分等详解 (附常见相关习题)_第2张图片

  • 目前使用的最新方式:CIDR
    CIDR中已经废弃了IP地址的分类,无分类编址的命名也是由此得来的,所以目前基本已经不再采用所谓的A类、B类、C类的IP地址分类表示法,引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;
 IP地址 ::= {<网络号><子网号><主机号>}

IP地址计算---子网掩码确定和子网划分等详解 (附常见相关习题)_第3张图片

3、特殊的一类IP地址

IP地址计算---子网掩码确定和子网划分等详解 (附常见相关习题)_第4张图片

二、常见IP相关计算

例子: 给定IP地址和子网掩码 172.31.128.255 / 18

1、网络号

公式:将IP地址的二进制和子网掩码的二进制进行“&”(and)运算,得到的结果就是网络号。“&运算”的规则是1&1=1,0&1=0,1&0=0,0&0=0。

ip:        10101100.00011111.10000000.11111111  

子网掩码:  11111111.11111111.11000000.00000000
----------------------------------------------------
网络号:     10101100.00011111.10000000.00000000   & 
网络号点分法表示: 172.31.128.0   

2、主机号

公式:用IP地址的二进制和(子网掩码的二进制的反码)进行“&”运算,得到的结果就是主机号。反码就是将原本是0的变为1,原本是1的变为0。

ip:           10101100.00011111.10000000.11111111  

子网掩码取反:  00000000.00000000.00111111.11111111
----------------------------------------------------
主机号:        00000000.00000000.00000000.11111111   & 
主机号点分法表示: 0.0.0.255 

3、广播地址

公式:在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是11111111.11111111.11000000.00000000, 0有14个,主机位是14,我们将网络号172.31.128.0,转换为二进制是 10101100.00011111.10000000.00000000,从右边数起,将14个0全部替换为1, 即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。将这个二进制广播地址转换为十进制就是
172.31.191.255

网络号:     10101100.00011111.10000000.00000000

子网掩码:  11111111.11111111.11000000.00000000
----------------------------------------------------
广播地址:   10101100.00011111.10111111.11111111   网络号从右向左0填为1,个数为掩码中的0
广播地址点分法表示: 172.31.191.255

4、可用IP地址范围

因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 ~广播地址-1,所以子网中的可用IP地址范围就是从172.31.128.1-172.31.191.254

5、子网数目

首先将/18换成为我们习惯的表示法:
11111111.11111111.11000000.000000转为十进制就是255.255.192.0,可以看到这个掩码的左边两节和B类默认掩码是一致的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B类大网进行子网划分。B类掩码默类是用16位(16个0)来表示可分配的IP 地址,这里的掩码在B类默认掩码的基础上多出了两个表示网络号的1,也就是向主机位借了两个1这就是说是将B类大网划分为2的2次方个子网(2^n,n表示所借1的个数),所以最终的子网数目是4

三、子网划分

例子: 已知IP 192.168.1.133 ,子网掩码为255.255.255.192;求划分的子网的个数和范围

首先将子网掩码写为二进制的形式方便观察将其转换成二进制后和255.255.255.0对比可发现,前掩码的前24位没有变化,只是在原来表示主机号的部分头两位变成了1

192.168.1.113:	    11000000.10101000.00000001.10000101   (1)

255.255.255.192:   11111111.11111111.11111111.11000000    (2)
----------------------------------------------------
255.255.255.0:      11111111.11111111.11111111.00000000    (3)
   

我们把IP地址中的前24位(192.168.1)先不关注,因为前24位对应掩码没有变化它们始终表示网络号

  • 原本255.255.255.192在192为0,及255.255.255.0的情况下属于C类地址的默认子网掩码
  • 按照子网掩码的定义,子网掩码1所对应的位为网络号位,而0所对应的位为主机号位
  • 主机号中被借走了两位用来表示网络号了这就是子网号。二进制一位用0或1表示,那么占用了两位就有2*2=4种表示,这里占用了2位,也就是说我们将原有的192.168.1.0这个网络分成了四份,即4个子网)这四段的网络号分别是00000000、01000000、10000000、11000000,现在我们将它们转换成10进制就分别是0、64、128、192,现在把前24位加进来
192.168.1.0  

192.168.1.64  

192.168.1.128 

192.168.1.192 
  • 此时再来看广播地址,既然我们把一个网段分成了四份,它就应该有4个广播地址。广播地址的定义是主机号位全位1的地址就是广播地址。所以这四个网段的广播地址末八位就是00111111、01111111、10111111、11111111,转换成10进制分别为63、127、191、255。加上原来的网络号位,广播地址就是
192.168.1.63

192.168.1.127

192.168.1.191

192.168.1.255

四个网段中去除网络地址和广播地址中间的部分就是可用的主机IP地址了。则可用IP为

192.168.1.1  ------> 192.168.1.62

192.168.1.65-------> 192.168.1.126  

192.168.1.129------> 192.168.1.190

192.168.1.193------> 192.168.1.254

四、子网掩码如何确定

例: 学校新建5个机房,每个房间有30台机器,如果给定一C类网络地址:192.168.1.0,问如何将其划分为5个子网,子网掩码该如何设置?

子网划分建议按以下步骤和实例计算子网掩码:

  1. 将要划分的子网数目转换为2的m次方。如要分8个子网,8=23
  2. 取上述要划分子网数的2m的幂m。如2^3,即m=3。
  3. 将上一步确定的幂m按高序占用主机地址m位后转换为十进制
  4. 如m为3 则是11100000,转换为十进制为224,即为最终确定的子网掩码。
  5. 如果是C类网,则子网掩码为255.255.255.224;如果是B类网,则子网掩码为255.255.224.0;如果是A类网,则子网掩码为255.224.0.0。

23 =8(大于5的最小的2的整幂次数),向主机号中借走三位作为网络号,而剩下的5位主机号,每个网段内可容纳的主机数是25即32,可用主机需要再减2即为30,满足每个房间30台机器的题目要求。取23的幂,即3,即占用了主机号中的高3位即为11100000,转换为十进制为224,所以该地址为C类地址的子网掩码应该设置为255.255.255.224。各机房IP和子网掩码配置如下(已经去掉广播地址和主机地址):

机房号        子网掩码                 IP地址范围
机房1     255.255.255.224     192.168.1.1~192.168.1.30

机房2     255.255.255.224     192.168.1.33~192.168.1.62

机房3     255.255.255.224     192.168.1.65~192.168.1.94

机房4     255.255.255.224     192.168.1.97~192.168.1.126

机房5     255.255.255.224     192.168.1.129~192.168.1.158

其它:

  • IP地址块为211.168.15.192/26、211.168.15.160/27和211.168.15.128/27三个地址块经聚合后可用地址数为(A)
    A.126 B.62 C.128 D.68

    地址聚合无非是找出它们相同的部分…将两个分配的IP地址块最后一部分换算成二进制(因为只有最后一部分不相同),之后可得出新的子网掩码(子网掩码中相同的部分用1表示,不同的部分用0表示):
    211.168.15. 11000000 211.168.15. 10100000 211.168.15. 10000000
    可得聚合地址块为211.168.15. 10000000,即211.168.15. 128
    掩码是IP二进制前面相同的位数,由于从 1~25位三个子网完全相同,所以经过聚合后的地址为211.168.15. 128/25,所以可用地址为:2^(32-25)-2=126

  • 如果将网络IP段40.15.128.0/17划分成2个子网,则第一个子网IP段为40.15.128.0/18,则第二个子网为:(D)
    A.40.15.129.0/18 B.40.15.128.128/18 C.40.15.192.0/17 D.40.15.192.0/18

    1.IP地址32位,分为两段:网络地址+主机地址。其中可由主机地址分离出一些位来作为子网地址 2.斜线后的数字是表示用多少位来表示网络地址,这里很明显是17位,那么只有15位表示主机地址 3.这里分成了两个子网,也就只需要用一位来表示。也就是第18位 4.第一个地址的第十八位明显是0,第二个只能是1

  • 对于IP地址130.63.160.2,MASK为255.255.255.0,子网号为(B)
    A.160.2 B.160 C.63.160 D.130.63.160

    30.63.160.2是B类IP地址,B类IP地址前16位(两个字节)为网络号,后16位是主机号,划分子网就是将主机号中的一部分拿出来当做子网号,这里子网掩码为255.255.255.0也就是把前三个字节当成了网络号,与B类IP默认的前两个字节作为网络号相比,第三个字节就是子网号,就是160。所以这个ip的网络号是130.63 ,子网号是 160 ,主机号是2

总结:本篇总结了IP计算方面的一些常见问题,不足之处欢迎指正,觉得写得不错的可以点个赞

你可能感兴趣的:(计算机网络,子网掩码,网络,java)