- IP地址是一个电脑的三层网络地址,如果是公网IP地址则必须全球唯一,如果是私有IP地址必须局域网内部唯一;
- 子网掩码是计算网络大小及IP地址范围的一个参数,使用IP地址与子网掩码可以计算出网络地址;
- 默认网关是本网络到达外网的出口,它必须与IP地址在同一个网段。而是否在一个网段是由IP地址与子网掩码计算得到的。
IP地址
IP地址格式为:网络地址+主机地址或 IP地址=网络地址+子网地址+主机地址。
子网掩码
A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑
B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑
C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑
掩码 | 位数 | 可用主机数(主机地址数) |
---|---|---|
255.0.0.0 | 8 | 16777216-2=16777214 |
255.128.0.0 | 9 | 8388608-2=8388606 |
255.192.0.0 | 10 | 4194304-2=4194302 |
255.224.0.0 | 11 | 2097152-2=2097150 |
255.240.0.0 | 12 | 1048576-2=1048574 |
255.248.0.0 | 13 | 524288-2=524286 |
255.252.0.0 | 14 | 262143=262142 |
255.254.0.0 | 15 | 131072-2=131070 |
255.255.0.0 | 16 | 65536-2=65534 |
255.255.128.0 | 17 | 32768-2=32766 |
255.255.192.0 | 18 | 16384-2=16382 |
255.255.224.0 | 19 | 8192-2=8190 |
255.255.240.0 | 20 | 4096-2=4094 |
255.255.248.0 | 21 | 2048-2=2046 |
255.255.252.0 | 22 | 1024-2=1022 |
255.255.254.0 | 23 | 511=510 |
255.255.255.0 | 24 | 256-2=254 |
255.255.255.128 | 25 | 128-2=126 |
255.255.255.192 | 26 | 64-2=62 |
255.255.255.224 | 27 | 31=30 |
255.255.255.240 | 28 | 16-2=14 |
255.255.255.248 | 29 | 8-2=6 |
255.255.255.252 | 30 | 4-2=2 |
判断是否同一网段
判断是否在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。
- A类的,只算第一段。
- B类,只算第一、二段。
- C类,算第一、二、三段。
计算方法:
把IP地址和子网掩码的二进制数的每位数进行AND运算得到的结果;
如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位
IP地址 11000000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算结果 11000000.10101000.00000000.00000000
转换为十进制 192.168.0.0 即网络标识;
子网掩码反取 00000000.00000000.00000000.11111111
IP 11000000.10101000.00000000.00000001
AND运算结果 00000000.00000000.00000000.00000001
转换为10进制 0.0.0.1 即主机标识;
网段表示法
用CIDR(无类别域间路由选择,Classless and Subnet Address Extensions and Supernetting))的形式表示的一个网段,或者说子网。
IP地址后面斜杠加具体数字
192.168.1.0/24
确定一个子网需要知道主机地址和子网掩码,但用CIDR的形式,可以简单得到两个数值。
如:192.168.0.0/24
表示:
这个网段的IP地址区域为 192.168.0.1 ~ 192.168.0.254
子网掩码是255.255.255.0
(192.168.0.0和192.168.0.255有特殊含义,不能用作IP地址)
子网掩码的计算方式
其实关键就在“24”上。我们知道IP地址是四个十进制数组成的,相当于32位二进制。用CIDR表示形式,后一个数字将这32位进行了间隔(以24为例):
前24位用"1"表示,后面8位用0表示,得到一个二进制数:
11111111 11111111 11111111 00000000。将其转化为十进制,就是:255.255.255.0
例如:
192.168.1.0/24表示网段是192.168.1.0,子网掩码是24位;
子网掩码为:255.255.255.0,用二进制表示为:11111111 11111111 11111111 00000000 ;
这里为什么是24呢,就是因为子网掩码里面的前面连续的“1”的个数为24个,一定要连续的才行。
例如:
192.168.1.0/28表示的意思是网段是192.168.1.0
子网掩码为:255.255.255.240,用二进制表示为:11111111 11111111 11111111 11110000。
- 问题:
24和28两个字不一样,为什么网段是一样的呢?
24位说明网络位是24位,主机位 32 - 24 = 8位,则子网的IP个数是254个,即是从00000001到11111110
28位说明网络位是28位,主机位 4 位,则子网的IP个数是14个,即是从00000001到00001110