IP地址是指互联网协议地址,又译为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。
IPv4地址
IPv4地址由四个字节即32位组成,但实际中一般书写成点分十进制格式,即一个字节为一组,每组有效范围0~255,组间用.
号进行连接。一般情况下IPv4地址首字节不能为0,即合法有效的最小IPv4地址是1.0.0.0
。IPv4地址包含网络号和主机号两个部分,网络号表示其属于哪一个具体网络,主机号表示其属于该网络中的哪一台主机。在同一个硬件能够互联互通的网络环境下,网络号相同时一般可以认为属于同一个网络。
子网掩码
仅单纯给定一个IPv4地址时,是无法得知网络号或主机号的。如果要知道网络号或主机号,必须要结合子网掩码运算才行。子网掩码通常有两种常见表示方法:一是网络号在IP地址中所占的位数,例如192.161.147.73/12
;二是将网络号所在位全部置为1,主机号所在位全部置为0,并转换点分十进制表示,例如192.161.147.73/255.240.0.0
。二者含义完全一样,都表如下的网络号和主机号:
11000000.1010
⏟
网络号
0001.10010011.01001001
⏟
主机号
\begin{matrix} \underbrace{ 11000000.1010 } \\ 网络号 \end{matrix} \begin{matrix} \underbrace{ 0001.10010011.01001001 } \\ 主机号 \end{matrix}
11000000.1010网络号
0001.10010011.01001001主机号
其网络号部分为11000000.1010
(即192.160.0.0
),主机号部分为0001.10010011.01001001
(即0.1.147.73
)。
注意:
①主机号全为0时有特殊用途,用于表示该网络的完整网络号,不能分配给主机使用。
②主机号全为1时有特殊用途,用于表示该网络的广播地址,不能分配给主机使用。
③网络号不能全为0,因为此时完整网络号将变成0.0.0.0,该地址有其它特殊用途。
地址分类
地址类别 | 地址范围 | 二进制表示 | 默认掩码 |
---|---|---|---|
A类 | 1.0.0.0 到 127.255.255.255 | 0xxxxxxxx . z . z . z | 255.0.0.0(8) |
B类 | 128.0.0.0 到 191.255.255.255 | 10xxxxxxx . z . z . z | 255.255.0.0(16) |
C类 | 192.0.0.0 到 223.255.255.255 | 110xxxxxx . z . z . z | 255.255.255.0(24) |
D类 | 224.0.0.0 到 239.255.255.255 | 1110xxxxx . z . z . z | |
E类 | 240.0.0.0 到 255.255.255.255 | 1111xxxxx . z . z . z |
A类地址网络号部分为8位,最高位固定为0
,所以网络号有效范围是1~127,每个网络可以有16777214个主机号(224-2)。
B类地址网络号部分为16位,最高两位固定为10
,所以网络号有效范围是128~191,每个网络可以有65534个主机号(216-2)。
C类地址网络号部分为24位,最高三位固定为110
,所以网络号有效范围是192~223,每个网络可以有254个主机号(28-2)。
D类地址最高四位固定为1110
,此类地址不区分网络号和主机号,只在组播中使用。例如224.0.0.2
表示所有路由的组播地址。
E类地址最高四位固定为1111
,此类地址不区分网络号和主机号,仅用于实验用途。
此五类地址划分未将特殊IPv4地址/地址段去除,使用时要注意不要轻易使用这些特殊的地址/地址段。
特殊地址
- 0.0.0.0
此地址通常用于表示一个无效的、未知的或者不可用的目标;
在服务器上可用于表示本机上的所有IPv4地址,通常用于简化服务器拥有多个IPv4时的配置;
在路由中可用于表示默认路由,即当路由表中没有找到匹配的路由的时候所对应的路由。 - 100.64.0.0/10
用于在电信级NAT环境中服务提供商与其用户通信。 - 127.0.0.0/8
此段地址全部表示回环地址,所有发往该地址段的数据包都应当被送回。但在实际中除127.0.0.1
外,发往本段内其它地址的数据可能会被丢弃。 - 127.0.0.1/24
回环地址中的一个,其特殊之处在于,所有网络设备一定在此地址上遵循了“回环地址”的约定,即发往该地址的数据会被立即发回它自身。 - 10.0.0.0/8
A类地址中的私有地址,只能出现在局域网中,不能出现在互联网中,只拥有一个网络号,可容纳16777214个主机。 - 172.16.0.0/16
B类地址中的私有地址,只能出现在局域网中,不能出现在互联网中,拥有16个网络号,每个网络可容纳65534个主机。 - 192.168.0.0/24
C类地址中的私有地址,只能出现在局域网中,不能出现在互联网中,拥有256个网络号,每个网络可容纳254个主机,此类地址在家庭网络中最为常见。 - 169.254.0.0/16
本地链路地址,通常用于主机没能由DHCP分配到IP地址时的自动分配。 - 255.255.255.255/32
广播地址,可指代同一广播域内的所有主机。 - 192.0.0.0/24
用于IANA的IPv4特殊用途地址表。 - 192.0.2.0/24
分配为用于文档和示例中的“TEST-NET”。 - 198.51.100.0/24
分配为用于文档和示例中的“TEST-NET-2”。 - 203.0.113.0/24
分配为用于文档和示例中的“TEST-NET-3”。 - 233.252.0.0/24
分配为用于文档和示例中的“MCAST-TEST-NET”。 - 192.88.99.0/24
用于6to4任播中继。 - 198.18.0.0/15
用于测试两个不同的子网的网间通信。
IPv6地址
IPv4地址由16个字节即128位组成,但实际中一般书写成冒分十六进制格式,即两个字节为一组,每组有效范围0000~FFFF,组间用:
号进行连接。在这种表示法中,每一组中的前导0是可以省略的,并且连续多组的0可以压缩为::
,但为了保证地址解析的唯一性::
只允许出现一次。例如2001:0000:0000:0000:0008:417A:0000:0000
,即能简写为2001::8:417A:0:0
,也能简写为2001:0:0:0:8:417A::
,但不能简写为2001::8:417A::
。
子网前缀
IPv6的子网前缀与IPv4的子网掩码功能基本相同,都是为了区分地址中哪部分是网络号哪部分是主机号。但与IPv4不同的是由于IPv6地址要长很多,所以IPv6的子网前缀只有一种表示方法,即网络号在IPv6地址中所占的位数。由于IPv6自动配置需要使用64位主机号,因此强烈建议子网前缀最大不要超过64,以便能够为主机号留下足够的长度。另外由于IPv6地址的前48位用于路由前缀标识(该标识由IANA负责分配和管理),因此除了运营商级别的骨干网络外,普通网络中的子网前缀最小不应小于48。例如2409:8A00:606E:D390:1CC6:977C:59DB:30F8/64
,网络号和主机号如下:
2409
:
8
A
00
:
606
E
⏟
路由前缀
:
1
C
C
6
⏟
子网号
:
1
C
C
6
:
977
C
:
59
D
B
:
30
F
8
⏟
主机号
\begin{matrix} \underbrace{ 2409:8A00:606E } \\ 路由前缀 \end{matrix} \begin{matrix} \underbrace{ :1CC6 } \\ 子网号 \end{matrix} \begin{matrix} \underbrace{ :1CC6:977C:59DB:30F8 } \\ 主机号 \end{matrix}
2409:8A00:606E路由前缀
:1CC6子网号
:1CC6:977C:59DB:30F8主机号
其中路由前缀部分还可以继续细化,以上地址前缀部分查询IANA后细分如下:
001
⏟
类型
00100
00001001
:
1000
⏟
一级运营商
1010
00000000
⏟
二级运营商
:
01100000
01101110
⏟
三级子网号
\begin{matrix} \underbrace{ 001 } \\ 类型 \end{matrix} \begin{matrix} \underbrace{ 00100\ 00001001:1000 } \\ 一级运营商 \end{matrix} \begin{matrix} \underbrace{ 1010\ 00000000 } \\ 二级运营商 \end{matrix} \begin{matrix} \underbrace{ :01100000\ 01101110 } \\ 三级子网号 \end{matrix}
001类型
00100 00001001:1000一级运营商
1010 00000000二级运营商
:01100000 01101110三级子网号
2000::/3前缀表示这是一个全局路由单播地址
2409:8000::/20前缀表示这是一个属于中国移动的全局单播地址
2409:8a00::/32前缀表示这是一个属于中国移动(北京)的全局单播地址
2409:8A00:606E::/48可能是中国移动(北京)按照基站再细化后的前缀
地址分类
- 0:0:0:0:0:0:0:0 (:😃
和IPv4中的0.0.0.0
作用基本相同。 - 0:0:0:0:0:0:0:1 (::1)
和IPv4中的127.0.0.1
作用完全相同。 - 2000::/3
全局单播地址,相当于IPv4中公网IP的概念,即除特殊地址后剩下的A、B、C类地址。 - FE80::/10
链路本地单播地址,与IPv4地址中的特殊段169.254.0.0/16
概念相似,但与10.0.0.0/8
、172.16.0.0/16~172.32.0.0/16
、192.168.0.0/24~192.168.255.0/24
功能上更加接近。 - FF00::/8
组播地址,与IPv4中D类地址功能完全相同。