百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

基本功:彻底理解IP地址分类与CIDR

haoteby 2024-12-28 13:11 3 浏览

引言

在沟通生产网络部署的时候,应用开发人员在与网络管理员沟通中经常会遇到很多术语,如何不能很好理解相应的概念沟通起来就会非常费劲,经常遇到的问题如:

  1. A、B、C类地址是什么?
  2. 什么是子网掩码?
  3. 什么是CIDR?

往下看,本文将对这些术语的来龙去脉进行详细解释。

一、网络地址分类

在internet中,无论想要访问一个终端或者被一个终端访问,都需要一个唯一的标志,也就是IP地址(Internet Protocol Address)。终端之间的互联使用路由器进行转发,路由器维护着一张路由表,路由表记录着IP地址的路由关系,收到请求后根据目的地址IP和路由表决策进行分发。

由于全世界的终端数量是非常恐怖的,如果每个终端都分配一个不规则的IP地址,那么路由表就记录全世界的IP地址,这是一个庞大的数字,路由表将会非常的大,造价和性能都是挑战,对于路由器来说是难以承受的。

于是为了方便寻址,就出现了网络号和主机号,也就是将IP地址分为网络地址+主机地址,网络地址用于标志一个网络,主机地址用于标志网络内部的终端,这样子一来路由器只需要维护一个网络地址的方向就可以找到拥有同个网络地址的所有IP对应的终端了。

当区分网络地址和主机地址以后,为了适应不同的网络需要,例如有些大型企业或者政府机构需要大型网络,有些小企业只需要一个小网络,如果固定了网络地址位数和主机地址位数,那么势必有些使用场景会有地址不够的情况,有些则会有浪费的情况,于是网络地址和主机地址的位数就变成了动态可变化的,这就人为进行了分类,于是就出现了ABCDE五类网络地址,分别适用于不同的使用场景。

如何来区分A、B、C类IP地址呢?我们知道IP是32位的二进制,常用点分十进制的写法,例如192.168.56.11,那么可以简单的通过这四段号码来进行区分:

  • A类地址:在IP地址的四段号码中,第一段号码表示网络地址,剩下的三段号码表示主机地址,即用二进制表示时由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络地址的标识长度为7位,主机标识的长度为24位。由于只有7位的网络地址标识,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。 A 类占整个地址空间的 50%。 然而,只有 126 个组织可以分配 A 类网络地址。 有趣的是,每个组织都可以为 16,000,000 台主机提供地址。 超大型组织会分配整个 A 类地址块。 时至今日,仍有公司和政府组织拥有 A 类地址。 例如,通用电气公司拥有 3.0.0.0/8,苹果电脑公司拥有 17.0.0.0/8,美国 邮政总局拥有 56.0.0.0/8。
  • B类地址:在IP地址的四段号码中,前两段号码为网络地址,剩下的两段号码表示主机地址。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模规模的网络,每个网络所能容纳的计算机数为6万多台。 B 类占整个地址空间的 25%。 最多 16,384 个组织可以分配 B 类网络地址,每个网络可以支持 65,534 台主机。 只有那些特大型的公司/组织或政府部门有可能会使用到所有 65,000 个地址。 与 A 类网络类似,B 类地址空间浪费许多 IP 地址。
  • 一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。 C 类占整个地址空间的 12.5%。 许多组织可以获得 C 类网络,但是限于它们能够连接的主机总数。 事实上,在许多情况下,C 类地址对于大多数中型企业来说通常太小。

类别

最大网络数

IP地址范围

有效IP地址范围

单个网段最大主机数

预留IP

私有IP

A

126(2^7-2)

1.0.0.0-127.255.255.255

1.0.0.1-127.255.255.254

16777214

1.0.0.0、127.255.255.255

10.0.0.0-10.255.255.255

B

16384(2^14)

128.0.0.0-191.255.255.255

128.0.0.1-191.255.255.254

65534

128.0.0.0、191.255.255.255

172.16.0.0-172.31.255.255

C

2097152(2^21)

192.0.0.0-223.255.255.255

192.0.0.1-223.255.255.254

254

192.0.0.0、223.255.255.255

192.168.0.0-192.168.255.255

可以发现1.0.0.0、128.0.0.0和192.0.0.0都不在有效可使用的地址范围内,这是因为这几个地址都是各网络分类的网络地址,指代了这个网络。

127.255.255.255、191.255.255.255和223.255.255.255同样不在有效IP地址范围内,因为他们属于该对应网络的广播地址。

按照规定主机位全为0的时候为其网络地址,全为1为该网络的广播地址,这个两地址是保留的不能分配给设备使用。

A类地址的网络数为2^7-2,减掉的2个一个是全0的情况,一般情况下从1开始,所以全0不计算在内,另外一个是127的网络,127一般用于本机回环,也不计算在可用范围内。

  • D类地址:D类地址比较特殊,主要用于多点广播(Multicast,也称为多播)之中作为多播组IP地址,所以也被称为广播地址,它的第1个字节的前四位固定为1110,IP地址范围为:224.0.0.0-239.255.255.255。
  • E类地址:主要保留用于实验或者将来使用,它的第1个字节的前四位固定为1111,IP地址范围为:240.0.0.0-255.255.255.254。

每一类地址都有一段私有IP,一般不用于公网而是被用于私有局域网,例如C类地址的192.168.0.0-192.168.255.255就是比较常见的局域网地址。

B类地址中169.254.0.0-169.255.255.255属于保留地址,如果终端配置了通过DHCP自动获取IP地址,但是又找不到DHCP服务器,那么就会从169.254.0.0-169.255.255.255临时获取一个地址。

二、子网掩码

上面说到路由器通常要建立一个转发表来确定如何将请求转发到不同的主机,主机数越多,转发表也就越大,路由器的性能压力越大,所以针对每个IP进行映射的方案存在缺陷。另外,不管一个网络内部的主机数量多少,至少都需要分配一个C类的网络地址,网络内的地址浪费严重。那有没有什么解决方案呢?答案就是子网掩码。

通过设定子网掩码,指定一个IP地址哪些位标识的是网络地址,哪些位标识的是主机地址,网络地址相同的IP地址被认为是同一个网络,可以在无路由的情况下相互通信,通过这种方式认为地将一个比较大的网路划分了子网,减少了网络上的通信量,一些较大的企业内部也经常采用这种方式进行子网的划分,更加方便管理,子网掩码也叫做地址掩码。

子网掩码也是一个32位的2进制数,可以写成点分十进制的方式,其对应网络地址的所有位都位1,对应主机地址的所有地位都为0,将32位的子网掩码与IP地址进行二进制形式的按位逻辑与运算得到的就是网络地址,将子网掩码二进制按位取反然后与IP地址进行二进制的逻辑与(AND)运算得出的就是主机地址。按照这种方法,可以知道A类地址的子网掩码是255.0.0.0,B类地址的子网掩码是255.255.0.0,C类地址的子网掩码是255.255.255.0。

三、CIDR的出现

子网掩码虽然解决了路由表的问题,但是网络内还是存在大量的IP浪费,并且在实际的应用中,很多的管理员已经讲子将掩码配置成了不定长的形式,实际上A、B、C、D、E的分类名存实亡了。

CIDR的出现非常好地解决了IP浪费和管理上的问题,其全称是Classless Inter-Domain Routing,即无类别域间路由,是基于可变长子网掩码VLSM来进行任意长度的前缀的分配的,它使得我们可以将一些不同类别的IP地址合并为一个“超网”地址,打破不同类别网络地址间的界限,这样子的话原网络分类在不同网络内的未被利用的IP就可以组成一个“超网”对外提供。

CIDR采用的是IP/x,x指的是前x位为网络前缀,例如192.168.0.1/24,前24位为网络地址,后8位为主机地址。令主机地址分别为全0和全1就可以得到一个CIDR地址块的最小地址和最大地址,令网络前缀全1,主机地址全0,就可以得到子网掩码。

相关推荐

单点登录(SSO)解决方案介绍(单点登录概念)

一、单点登录的介绍单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系...

系统登录的三种方式,哪一种更安全?

登录是一个高频的动作,笔者抓住这一个小点,分析了系统登录的几种方式和对应的场景。今天谈谈登录。登录即用户输入用户名和密码登录进系统中。B端系统,对于登录的业务场景有两种(可能不止,目前遇到过这两种):...

到底什么是单点登录(SSO)?(什么叫做单点登录)

什么是单点登录?单点登录(SingleSign-On,简称SSO)是一种集中式的身份验证和授权机制,用户只需在一处输入一次凭证(例如用户名和密码)就可以访问多个相关但独立的软件系统。在数字化时代,...

5年稳如老狗的单点登录系统,到底是怎么搞出来的?

说到单点登录(SingleSign-On,简称SSO),大家的第一反应可能是——啊不就是登录一次,能到处串门儿嘛?别说,还真差不多,就是这么个意思。但真要搭一套好用、耐造、还能扛住公司里各种奇奇怪...

这些负载均衡都解决哪些问题?服务、网关、NGINX?

在微服务项目中,有服务的负载均衡、网关的负载均衡、Nginx的负载均衡,这几个负载均衡分别用来解决什么问题呢?一、服务的负载均衡先抛出一个问题:...

Nginx负载均衡最全详解(4大算法原理机制)

Nginx在大型网站架构很重要,也是大厂重点考察方向,今天我就重点来详解Nginx负载均衡@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。Nginx负载均衡N...

负载均衡 Nginx Session 一致性(nginx 负载均衡 会话保持)

HTTPS请求跳转...

监控Oracle Cloud负载均衡器:Applications Manager释放最佳性能

设想你正在运营一个受欢迎的在线学习平台,在考试前的高峰期,平台流量激增。全球的学生同时登录,观看视频、提交作业和参加测试。如果OracleCloud负载均衡器不能高效地分配流量,或者后端服务器难...

Nginx负载均衡:nginx.conf配置文件说明!

大家好,欢迎来到程序视点!我是你们的老朋友.小二!在此记录下Nginx服务器nginx.conf负载均衡的配置文件说明,部分注释收集与网络.关于nginx.conf基本的配置,请查看上一篇文章!Ng...

Java高可用系统架构中的负载均衡策略

Java高可用系统架构中的负载均衡策略在现代的分布式系统中,负载均衡策略是构建高可用系统的基石。Java开发者需要深刻理解这些策略,以便打造稳定且高效的系统。接下来,让我们一起揭开负载均衡的神秘面纱。...

深入对比Nginx、LVS和HAProxy,选择最合适负载均衡方案!

关注...

Spring Boot3 客户端负载均衡全解析:从原理到实战

在当今互联网大厂后端技术开发的激烈竞争环境中,构建高效、稳定的微服务架构是核心诉求。其中,SpringBoot3作为热门开发框架,其客户端负载均衡功能对于提升系统性能、保障服务稳定性起着关键作用。...

MySql高可用集群MySQL Router负载均衡读写分离

名词解释MGR:MysqlGroupReplication组复制,多台MySQL服务器在同一组中会自动保持同步状态,当某台服务器故障时,整个复制组依然可以保持正常并对外提供服务。...

性能测试之tomcat+nginx负载均衡(nginx tomcat)

nginxtomcat配置准备工作:两个tomcat执行命令cp-rapache-tomcat-8.5.56apache-tomcat-8.5.56_2修改被复制的tomcat2下con...

win10/11双网卡链路聚合叠加负载均衡提升网速解决网卡网速瓶颈!

双网卡链路聚合一种网络配置技术,通过将多个物理网卡绑定在一起,形成一个逻辑上的网络接口,以提高网络的可靠性、可用性和性能。这种技术通常用于服务器和网络设备中,以实现负载均衡、冗余和高可用性。本机环境:...