前言

IP相关的内容,看了很容易忘,忘了又要重新梳理,趁着学习网络知识,记录一下IP的一些知识点。


定义

IP地址(一般说的是IPv4)是由32位表示,IP地址在计算机内部是二进制的表示方式,每8位一组,使用点(.)分割。为了便于我们识别,会使用十进制进行表示:

例如:


组成

IP地址由两部分组成:网络地址 和 主机地址(或网络标识 & 主机标识)。

在给主机或网络设备配置IP时,需要保障不同网段之间的网络标识不能相同;同一个网段(相同网络标识)的主机地址不能重复;


分类

一个IP地址,包括了两种分类方式:
1、按最初的分类方式包括了A、B、C、D类地址;
2、现在基本上按子网掩码(网络前缀)进行区分。

最初的分类方式

是根据IP地址的前1到4位的区分,同时指定不同的网络和主机标识。

image-1694714060272

如图

  • A类地址
    网络标识用十进制表示:0.0.0.0 - 127.0.0.0(共128个)
    主机地址有24位:2的24次方有16777216个。

网络地址中,最小的和最大的都是保留地址,不可分配,可用数量要 -2。
每个网络地址的主机地址中,最小的和最大的都是保留地址(全是0用于对应的网络地址或IP地址不可获知的情况下使用,全是1的用于广播),可用数量要 -2。

如A类网络地址 0000 0000(+主机地址) 和 0111 1111(+主机地址) 保留,可用网络地址为128 - 2 = 126。
如A类主机地址 (网络地址+)0000 0000, 0000 0000, 0000 0000 和 (网络地址+)1111 1111, 1111 1111, 1111 1111保留,可用主机地址为16777216 - 2 = 16777214。


  • B类地址
    网络标识用十进制表示:128.0.0.0 - 191.255.0.0(共2的14次方=16384个)
    主机地址有16位。

其中10000000十进制128,10111111十进制191)


  • C类地址
    网络标识用十进制表示:192.0.0.0 - 223.255.255.0,网络位有24位,3位固定,所以共2的21次方=2097152个。

主机位有8位,每个网络地址下有 2的8次方256个,256 - 2 = 254个可用地址。


  • D类地址
    网络地址用十进制表示为:224.0.0.0 - 239.255.255.255 ,D类地址没有主机地址,常用于广播。

子网掩码分类方式

如果直接使用分类地址进行分配的话,例如1家公司给分配个A类地址,那么它可以容纳 16777214 个主机进行相连于同一个链路,但是实际上一般并不会有这么大的计算机需要进行相连。这就间接造成了ip的浪费。随着互联网的覆盖范围扩大,网络地址会越来越不足以应用需求。为此出现了一种新的组合方式减少这种浪费。

使用子网掩码进行划分网络地址和主机地址。实际上就是用于将一个A、B、C类IP地址划分成多个子网。

扩展,看下网段、局域网、子网的区别:

  • 网段
    是物理层的定义,使用相同的物理设备相连(如中继器、集线器等),能够直接进行通讯。(如果是网桥、路由器相连的设备便不是同一个网段)
  • 局域网
    是数据链路层的概念,是二层可达的网络(即不需要三层网络设备如路由器的网络),可以理解成小范围网络。网桥、二层交换机是二层设备。
  • 子网
    是网络层的概念,三层可达的网络,和局域网没有直接的关系,一般是把一个IP分成多个小范围网络,形成子网,子网之间需要三层设备,如路由器、三层交换机、IP网关。

我们可以通过ip地址与子网掩码相与,来确定多个ip是否同一个子网

子网掩码用1表示一个ip的网络标识部分。也是用32位进行表示。即一个IP的子网掩码对应于:网络地址部分全是1 + 主机地址部分全是0。例如:
IP地址:172.20.100.52 这个ip地址,前26位表示网络地址,那么其子网掩码为:255.255.255.192

192 对应的二进制:1100 0000
172.20.100.52 对应的二进制:1010 1100, 0001 0100, 0110 0100, 0011 0100。
255.255.255.192 对应的二进制:1111 1111, 1111 1111, 1111 1111, 1100 0000。

子网掩码的另一种表示方式是在IP地址后面加 “/数字”,数字表示IP网络地址的长度。如上面的ip地址:172.20.100.52 /26


举例:使用子网掩码划分子网
有一家公司有4个部门,每个部门40台电脑,如果将每个部分划分子网,那么假设网段为 192.168.1.0,该如何划分。
192.168.1.0 这个网段共有256个地址,256/4 = 64,那么每个子网需要64个地址(大于40),2的6次方为64,所以子网掩码应该由6个0结尾(即有6位主机地址):255.255.255.192。每个网络地址下,主机部分去掉最大和最小值,即64-2=62个。
那么第1个子网的网络地址范围: 192.168.1.1 - 192.168.1.63
第2个子网的网络地址范围: 192.168.1.65 - 192.168.1.126
第3个子网的网络地址范围: 192.168.1.129 - 192.168.1.190
第4个子网的网络地址范围: 192.168.1.193 - 192.168.1.254


CIDR & VLSM

CIDR(Classless Inter-Domain Routing),无类型域间选址。
它可以将例如多个C类地址划分到同一个较大的网络中,这样可以降低路由器的负担。

例如将 203.183.224.1 和 203.183.225.254 两个C类地址合并到同一个网络中。
110010111, 10110111, 11100000, 00000001(203.183.224.1)
110010111, 10110111, 11100001, 11111110(203.183.225.254)

那么,设定23位网络标识,9位主机标识,对应子网掩码:255.255.255.128


VLSM(Variable Length Subnet Mask),可变长子网掩码。
例如不同部门(子网)需要不同的主机数量,那么可以通过使用不同子网掩码长度的方式来提高IP的利用率。


全局地址和私有地址

一开始,在互联网中,任何一台主机或者路由器必须有唯一的ip地址。会有两个问题:IP不能冲突,冲突就会导致收发数据问题;IP不够用。

于是出现了一种新的技术:NAT(Network Address Translation),用于本地网络中使用的私有地址,在连接互联网时转换成全局IP的技术。

私有IP,地址范围包括如下:
10.0.0.0 - 10.255.255.255 (10 /8)
127.16.0.0 - 127.31.255.255 (127.16 /12)
192.168.0.0 - 192.168.255.255 (192.168 /16)
全局IP:可以理解成公网IP(除了私有ip外的地址),可以与互联网互通的IP。

私有IP不需要保证互联网范围内唯一,只需要保证子网络内不同ip不会互相影响即可。


总结

一个IP地址包括了网络地址和主机地址。IP地址除了原先的A、B、C分类方式,还可以通过子网掩码进行灵活划分网络地址和主机地址。

子网掩码可以用来确认不同ip是否属于同一个网络,只需要将ip和子网掩码进行与操作,看网络地址是否相同,如果相同则属于同一个子网,否则不是。