IP地址,子网掩码,网段 概念详解

文章目录

      • 1. 子网掩码
        • 1.1 子网掩码的概念及作用
        • 1.2 子网掩码的组成
        • 1.3 子网掩码的表示方法
        • 1.4 为什么要使用子网掩码?
        • 1.5 子网掩码的分类
      • 2. 子网掩码和IP地址的关系
        • 2.1 根据掩码确定网段

IP地址是以 网络号主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信;远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。

1. 子网掩码

1.1 子网掩码的概念及作用

①、子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用。
②、只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
③、子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上。
④、子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。
IP地址,子网掩码,网段 概念详解_第1张图片

1.2 子网掩码的组成

①、同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址。
②、子网掩码32位与IP地址32位相对应,IP地址如果某位是网络地址,则子网掩码为1,否则为0。
③、举个栗子:如:11111111.11111111.11111111.00000000

注:左边连续的1的个数代表网络号的长度,(使用时必须是连续的,理论上也可以不连续),右边连续的0的个数代表主机号的长度。

1.3 子网掩码的表示方法

①、点分十进制表示法
二进制转换十进制,每8位用点号隔开
例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0

②、CIDR斜线记法
IP地址/n
例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000
例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000
不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。

注:n为1到32的数字,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数=2^(32-n)-2(-2的原因:主机位全为0时表示本网络的网络地址,主机位全为1时表示本网络的广播地址,这是两个特殊地址)。

1.4 为什么要使用子网掩码?

前面说道,子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?因为两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。

1.5 子网掩码的分类

①、缺省子网掩码

也叫默认子网掩码,即未划分子网,对应的网络号的位都置 1 ,主机号都置 0 。

未做子网划分的IP地址:网络号+主机号

A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8

B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16

C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24

②、自定义子网掩码

将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下:

做子网划分后的IP地址:网络号+子网号+子网主机号

举个栗子:

如:192.168.1.100/25,其子网掩码表示:255.255.255.128

意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。

2. 子网掩码和IP地址的关系

子网掩码是用来判断任意两台主机的IP地址是否属于同一网络的依据,就是拿双方主机的IP地址和自己主机的子网掩码做与运算,如结果为同一网络,就可以直接通信。

对于下面的IP地址:

ip地址:192.168.1.1 子网掩码:255.255.255.0

ip地址:192.168.1.2 子网掩码:255.255.255.0

我们可以直接的判断,他们是同属于一个网段的ip地址。

那么对于下面这样的呢?

ip地址:192.168.1.1 子网掩码:255.255.255.0

ip地址:192.168.1.2 子网掩码:255.255.0.0

这两个ip地址虽然在不看掩码的情况下,比较像,但他们并不是同一个网段内的。

这个可以从子网掩码来判断,

192.168.1.1 255.255.255.0是属于192.168.1.0网段的。

而192.168.1.2 255.255.0.0是属于192.168.0.0网段。

2.1 根据掩码确定网段

如何根据IP地址和子网掩码,计算网络地址:
①、将IP地址与子网掩码转换成二进制数。
②、将二进制形式的 IP 地址与子网掩码做“与”运算。
③、将得出的结果转化为十进制,便得到网络地址。
如下图:

IP地址,子网掩码,网段 概念详解_第2张图片

网络地址计算小技巧:IP地址和子网掩码做与运算,把IP地址的主机位直接归0,就快速得到网络地址。所以只要一看到IP地址和子网掩码,就能马上确认网络地址。

例1:

创建vlan1:ip地址:192.168.1.1 子网掩码:255.255.255.0

创建vlan2: ip地址:192.168.2.1 子网掩码:255.255.255.0

那么他们是不是在同一个网段呢? 平时配置ip地址较多的朋友,可以直观的判断,他们并不是属于同一个网段,那么如何计算呢? 要想判断两个ip地址是不是在同一个网段,只需将ip地址与子网掩码做与运算,如果得出的结果一样,则这两个ip地址是同一个子网当中。

详细计算

将ip地址192.168.1.1转换为二进制
11000000 10101000 00000001 00000001

将子网掩码255.255.255.0转换成二进制
11111111.11111111.11111111.00000000

然后将两者相“与(and)"运算:
11000000 10101000 00000001 00000001
11111111.11111111.11111111.00000000

然后得到:
11000000 10101000 00000001 00000000

转换成网络号就是:192.168.1.0
将ip地址192.168.2.1转换为二进制
11000000 10101000 00000010 00000001

将子网掩码255.255.255.0转换成二进制
11111111.11111111.11111111.00000000

然后将两者相“与(and)"运算:
11000000 10101000 00000010 00000001
11111111.11111111.11111111.00000000

然后得到:
11000000 10101000 00000010 00000000

转换成网络号就是:192.168.2.0

很明显,二者的结果是不一样的,一个是网段192.168.1.0,一个是网段192.168.2.0,所以不是一个网段。

例2

ip地址1192.168.1.1 子网掩码:255.255.252.0

ip地址2192.168.2.1 子网掩码:255.255.252.0

很明显,我们这个和上面例1的ip地址是一样的,只是子网掩码不一样,如果不看子网掩码,首先可能就判断他们不是同一个网段。

这里面和上面例1中唯一变化就是子网掩码从255.255.255.0换成了255.255.252.0了,那我们来看下,他们是否属于同一个网段。

详细计算

将ip地址192.168.1.1转换为二进制
11000000 10101000 00000001 00000001

将子网掩码255.255.252.0转换成二进制
11111111.11111111.11111100.00000000

然后将两者相“与(and)"运算:
11000000 10101000 00000001 00000001
11111111.11111111.11111100.00000000

然后得到:
11000000 10101000 00000000 00000000

转换成网络号就是:192.168.0.0
将ip地址192.168.2.1转换为二进制
11000000 10101000 00000010 00000001

将子网掩码255.255.252.0转换成二进制
11111111.11111111.11111100.00000000

然后将两者相“与(and)"运算:
11000000 10101000 00000010 00000001
11111111.11111111.11111100.00000000

然后得到:
11000000 10101000 00000000 00000000
转换成网络号就是:192.168.0.0

很明显,二者的结果是一样的,都是属于192.168.0.0网段,所以他们是同属于一个网段。

当然,如果对子网较熟了就不需要经过这些运算了,大部分的网段可以通过分析子网掩码与ip地址就可以判断出来是否属于网一网段,但前提是你需要熟悉网段的原理与运算的方法。

【参考博客】:

  • 子网掩码详解
  • 如何判断两个IP地址是否在同一个网段?什么是子网掩码?

你可能感兴趣的:(杂七杂八,网络基础,tcp/ip,网络,服务器)