IP地址基础知识

IP地址的定义

IP地址(IPV4)由32位二进制数来表示。为了便于理解,将32位的IP地址以每8位为一组,分成4组,一个字节为一组,再将每组数转换为十进制数。因此,IPV4一共可以最多允许2的32次方台计算机连接到网络,大概有43亿台设备可以连接到网络。

TCP/IP与OSI参考模型

IP地址属于网络层地址

IP地址由 “网络标识” 和 “主机标识” 两部分组成。

IP地址的主机标识
IP地址的主机标识

IP地址的网络标识
IP地址的网络标识

注意:”192.168.128.10/24” 中的 “/24” 表示从二进制IP地址的第1位开始到多少位属于网络标识。在这个例子中,”192.168.128” 之前的都是该IP的网络地址。

IP地址的分类

IP地址分为四个级别,分别为A类、B类、C类、D类。它根据IP地址中从第1位到第4位的比特列对其网络标识和主机标识进行区分。

A类地址

A类IP地址是首位以 “0” 开头的地址。从第1位到第8位是它的网络标识。用十进制表示的话,0.0.0.0 ~ 127.255.255.255 是A类的网络地址。A类地址的后24位相当于主机标识。

A类

B类地址

B类IP地址是前两位为 “10” 的地址。从第1位到第16位是它的网络标识。用十进制表示的话,128.0.0.0 ~ 191.255.255.255 是B类的网络地址。B类的后16位相当于主机号。

B类

C类地址

C类IP地址是前三位为 “110” 的地址。从第1位到第24位是它的网络标识。用十进制表示的话,192.0.0.0 ~ 223.255.255.255 是C类的网络地址。C类地址的后8位相当于主机标识。

C类

D类地址

D类IP地址是前四位为”1110”的地址。从第1位到第32位是它的网络标识。用十进制表示的话,224.0.0.0 ~ 239.255.255.255 是D类的网络地址。D类地址没有主机标识,常被用于多播。

IP地址的分类

关于分配IP主机地址的注意事项
要用比特位表示主机地址时,不可以全部为 0 或全部为 1。因为只有 0 在表示对应的网络地址或IP地址不可获知的情况下才使用。而全部为1的主机地址通常作为广播地址。因此,在分配过程中,应该去掉这两种情况。

广播地址

广播地址用于在同一个链路中相互连接的主机之间发送数据,把IP地址中的主机地址部分全部设置为 1,就成了广播地址。例如把 172.20.0.0/16 用二进制表示,10101100.00010100.00000000.00000000,将这个地址的主机部分全部改为 1 ,则形成广播地址,10101100.00010100.11111111.11111111

两种广播地址

广播地址分为 本地广播直接广播

在本网络内的广播叫做 本地广播。例如网络地址为 192.168.0.0/24 的情况下,广播地址是 192.168.0.255。因为这个广播地址的IP包会被路由器屏蔽,所以不会到达 192.168.0.0/24 以外的其他链路上。

在不同网络之间的广播叫做 直接广播。例如网络地址为 192.168.0.0/24 的主机向 192.168.1.255/24 的目标地址发送IP包。收到这个包的路由器,将数据转发给 192.168.1.0/24,从而使得所有 192.168.1.1 ~ 192.168.1.254 的主机都能收到这个包。

IP多播

多播用于将包发送给特定组内的所有主机。由于其直接使用IP协议,所以也不存在可靠传输。

在人们使用多播功能之前,一直采用广播的方式。那时广播将数据发送给所有终端主机,再由这些主机IP之上的一层去判断是否有必要接收数据,是则接收,否则丢弃。然而这种方式会给那些毫无关系的网络或主机带来影响,造成网络上很多不必要的流量。况且由于广播无法穿透路由,若想给其他网段发送同样的包,就不得不采取另一种机制。因此,多播这种既可以穿透路由器,又可以实现只给那些必要的组发送数据包的技术就称为必选。

IP多播与地址

多播使用D类地址。因此,看到从首位开始到第4位是 “1110”,就可以认为是多播地址,而剩下的28位可以称为多播的组编号。

从 224.0.0.0 到 239.255.255.255 都是多播地址的可用范围,其中从 224.0.0.0 到 224.0.0.255 的范围不需要路由控制,在同一个链路内也能实现多播。而在这个范围之外设置多播第地址会给全网所有组内成员发送多播的包。

此外,对于多播,所有的主机(路由器以外的主机和终端机)必须属于 224.0.0.1 的组,所有的路由必须属于 224.0.0.2 的组。类似地,多播地址中有众多已知的地址:

利用IP多播实现通信,除了地址外还需要 IGMP 等协议的支持。

子网掩码(重点)

一个IP地址只要确定了其分类,也就确定了它的网络标识和主机标识。

网络标识相同的计算机必须同属于同一个链路。例如,架构B类IP网络时,理论上一个链路内允许 2^16^-2 台计算机连接。然而,在实际网络架构中,一般不会有在同一个链路上连接 2^16^-2 台计算机的情况。因此这中网络不存在于实际中。

直接使用A类、B类、C类地址会非常浪费。因此,如今一个IP地址的网络标识和主机标识已经不再受限于该地址的类别,而是由一种叫做 “子网掩码” 的识别码通过子网网络地址细分出比A类、B类、C类更小粒度的网络。这种方式实际上就是将原来A类、B类、C类等分类中的主机地址部分用作于子网地址,可以将原网络分为多个物理网络的一种机制

自从引入了子网以后,一个IP地址就有了两种识别码。一个是IP地址本身,另一个是表示网络部的子网掩码。子网掩码用二进制表示的话,也是一个32位的数字。它对应IP地址网络标识部分的位全部为 “1”,对应IP地址主机标识部分则全部为 “0”。由此,一个IP地址可以不再受限于自己的类别,而是可以用这样的子网掩码自由定位自己的网络标识长度。

子网掩码有两种表示方式,以 172.20.100.52 的前26位是网络地址的情况为例,

  • 表示方式一:分别用两行表示IP地址和子网掩码

    IP地址:172.20.100.52(前26位是网络地址) = 10101100.00010100.01100100.00110100

    子网掩码:255.255.255.192 = 11111111.11111111.11111111.11000000

    网络地址:172.20.100.0

    子网掩码:255.255.255.192

    广播地址:172.20.100.63

    子网掩码:255.255.255.192

  • 表示方式二:在每个IP地址后面追加网络地址的位数,用 “/“ 隔开

    IP地址:172.20.100.52 /26

    网络地址:172.20.100.0 /26

    广播地址:172.20.100.63 /26

第二种表示方式记录网络地址时可以省略后面的 “0”,172.20.0.0/16 和 172.20/16 是一个意思。

CIDR 和 VLSM (待补充)

CIDR,意思为“无类型域间选路”,其放弃了IP地址的分类,采用任意长度分割IP地址的网络标识和主机标识。

根据 CIDR,连续多个C类地址就可以划分到一个较大的网络内。例如,应用 CIDR 技术把 203.183.224.1 和 203.183.225.254 的地址合为同一个网络(它们本来是两个C类地址)。