【Network】IPv4 地址

Posted by 西维蜀黍 on 2019-08-21, Last Modified on 2021-09-21

IPv4 地址

IP地址由32位二进制数组成,这个地址通常分成 4 段,每 8 个二进制为一段。

但是,为便于使用,常以XXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的十进制数,比如大家非常熟悉的 192.168.0.1。

IP 地址分为两个部分:

  • 网络 ID
  • 主机 ID

但是具体哪部分属于网络 ID,哪些属于主机 ID 并没有规定。因为有些网络是需要很多主机的,这样的话代表主机 ID 的部分就要更多,但是有些网络需要的主机很少,这样主机 ID 的部分就应该少一些。

IPv4 地址的类别

地址可分为A、B、C、D、E五大类,其中E类属于特殊保留地址。

绝大部分 IP 地址属于以下几类:

  • A 类地址:IP 地址的前 8 位代表网络 ID ,后 24 位代表主机 ID。
  • B 类地址:IP 地址的前 16 位代表网络 ID ,后 16 位代表主机 ID。
  • C 类地址:IP 地址的前 24 位代表网络 ID ,后 8 位代表主机 ID。

这里能够很明显的看出 A 类地址能够提供出的网络的数量相对较少,但是每个网络可以拥有相对非常多的主机。

A类地址

  • A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0。
  • A类地址网络号范围:0.0.0.0—127.0.0.0,地址范围:0.0.0.0到127.255.255.255。
  • A类地址中的私有地址和保留地址:
    • 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址),范围是 10.0.0.0—10.255.255.255。
    • 127.X.X.X是保留地址,用做循环测试用的。

B类地址

  • B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。它的第1个字节的前两位固定为10。
  • B类地址网络号范围:128.0.0.0—191.255.0.0。地址范围128.0.0.0到191.255.255.255。
  • B类地址的私有地址和保留地址:
    • 172.16.0.0—172.31.255.255是私有地址
    • 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
    • 191.255.255.255是广播地址,不能分配。

C类地址

  • C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。
  • C类地址网络号范围:192.0.0.0—223.255.255.0。地址范围 192.0.0.0到223.255.255.255。
  • C类地址中的私有地址:
    • 192.168.X.X是私有地址,范围为 192.168.0.0—192.168.255.255。

D类地址

  • D类地址不区分网络地址和主机地址,它的第1个字节的前四位固定为1110。
  • D类地址范围:224.0.0.0—239.255.255.255

E类地址

  • E类地址不分网络地址和主机地址,它的第1个字节的前五位固定为11110。
  • E类地址范围:240.0.0.0—255.255.255.254

特殊的 IPv4 地址

直接广播地址

在A类、B类、C类IP地址中,全是 1 的主机 ID 代表广播,是用于向该网络中的全部主机方法消息的。 IP 地址为 130.100.255.255 就是网络 ID 为 130.100 网络的广播地址(二进制 IP 地址中全是 1 ,转换为十进制就是 255 )。

受限广播地址(“limited broadcast” destination address)

广播通信是一对所有的通信方式。若一个IP地址的二进制数全为1,也就是255.255.255.255,则这个地址用于定义整个互联网。如果设备想使IP数据报被整个Internet所接收,就发送这个目的地址全为1的广播包。

但这样会给整个互联网带来灾难性的负担,因此网络上的所有路由器都阻止具有这种类型的分组被转发出去,使这样的广播仅限于本地网段。

环回地址

以十进制 127 开头的地址都是环回地址。目的地址是环回地址的消息,其实是由本地发送和接收的。主要是用于测试 TCP/IP 软件是否正常工作。我们用 ping 功能的时候,一般用的环回地址是 127.0.0.1。

专用地址

IP地址空间中,有一些IP地址被定义为专用地址,这样的地址不能为Internet网络的设备分配,只能在企业内部使用,因此也称为私有地址。若要在Internet网上使用这样的地址,必须使用网络地址转换或者端口映射技术。

这些专有地址是:

  • 10/8 地址范围:10.0.0.0到10.255.255.255,共有 $2^{24}$ 个地址。
  • 172.16/12 地址范围:172.16.0.0至172.31.255.255,共有 $2^{20}$ 个地址。
  • 192.168/16 地址范围:192.168.0.0至192.168.255.255,共有 $2^{16}$ 个地址。

子网掩码(subnet mask)

//TODO

https://www.cnblogs.com/hibernation/p/3275279.html

CIDR(Classless Inter-Domain Routing)

CIDR notation 其实概念也很直白,它不再粗暴的以字节为粒度来切分 IP 地址,而是精确到 bit 位,我们看一个典型的 CIDR notation:

123.121.114.144/23

注意 IP 地址后面的 /23,这就是 CIDR notation,它表示 IP 地址的前 23 bits 为 Network ID,剩余的 9 bits 为 Host ID。23 并不是 8 的倍数,我们将切分的精读提高到了 bit。我们可以通过简单的位运算,得到具体的 Network ID 和 Host ID,我们将 IP 地址和 /23 先转为二进制:

01111011.01111001.01110010.10010000 IP 地址

11111111.11111111.11111110.00000000 /23 subnet mask

上面两个二进制进行与操作,我们就可以得到 Network ID 和 Host ID:

01111011.01111001.01110010.00000000 Network ID

00000000.00000000.00000000.10010000 Host ID

再将二进制转换为十进制,我们就得到了便于理解的 Network ID:123.121.114.0。由于 Host ID 占用 9 个 bits,这个子网里一共可以有 2 的 9 次方个主机数,也就是 512 个主机,这个子网网段的起始地址为 123.121.114.0,结束地址为 123.121.115.255。我们对于某一个网段内的 IP 地址,有个约定,第一个地址为 Network ID,最后一个地址是该子网内的 Broadcast ID,那么剩下的可用于子网内设备的 IP 地址数量就是 510 个了。

Reference