目录
前言:
一、IP地址与子网地址的基础表示方法
二、已知IP地址和子网掩码1的位数,求子网网络号
三、子网掩码的点分十进制和子网掩码长度转换
前言:
这篇博客主要记录了一些面试与考试时根据IP地址和子网掩码手算子网地址的技巧,实际工作中,计算机可以很方便的帮我们完成这个任务,但是在计算它们时,我们可以加深对IP、子网地址、子网掩码的了解。
一、IP地址与子网地址的基础表示方法
IP地址为一个长32比特的二进制串
我们可以将IP地址的每个字节用十进制表示,如:255.255.255.255
子网掩码为一个32位的二进制串,其前一段必为1,后一段必为0
如:11111111 11111111 00000000 00000000
192.168.1.1/16表示该主机IP地址192.168.1.1,子网掩码前16位为1,后16位为0
当我们计算IP地址的网络号时,用子网掩码与IP地址按位相与可得子网地址。
二、已知IP地址和子网掩码1的位数,求子网网络号
方法:
1、确定Host ID的个数n
2、IP子网中IP地址个数 NIP = 2n,
3、子网地址中Subnet id所在字节X
n<=8,那么X为第4个字节,且能够整除2n
8<n<=16,那么X为第3个字节,且能够整除2n-8
16<n<=24,那么X为第2个字节,且能够整除2n-16
24<n<=32,那么X为第1个字节
原理:子网号一定是Host ID数量的整数倍,因为子网号结尾都是0
l 计算方法
---------------------------------------------------------------------------------------------------------------------------------
例题:已知网络IP位201.70.64.193/26,求子网地址(使用点分十进制)。
例题解析:我们知道子网地址为IP与子网掩码相与,但是在手算时,这样太耗时了。
我们先来计算子网中的主机号HostID位数
HostID=32-26=6
子网中的HostID数量为
即:2^6=64
193属于[3X64,255]
故子网地址为 201.70.64.193/26
---------------------------------------------------------------------------------------------------------------------------------
三、子网掩码的点分十进制和子网掩码长度转换
我们已经学会了在ip和子网掩码以 192.168.1.1/26这样的形式给出时如何计算子网地址。
但是当子网掩码以点分十进制(如:255.255.240.0)给出时,我们就需要先将其转化为掩码长度。
---------------------------------------------------------------------------------------------------------------------------------
点分十进制掩码转化为掩码长度方法:
1.找到点分十进制掩码中从右往左第一个不为0的字节表示的十进制数X。
2.计算该字节0位数n为
3.计算掩码长度 Len=32-n-8*(点分十进制中为0的字节数量)
---------------------------------------------------------------------------------------------------------------------------------
例题:
将子网掩码255.240.0.0转化为掩码长度
1.从右往左第一个不为0的字节表示的十进制数X=240
2.该字节结尾0的位数n=
,n=4
3.掩码长度Len=32-4-8*2=16(.0.0为两个以十进制表示为0的字节)