一图看懂IP地址划分原理(IP的A,B,C,D,E类地址),绝对准确无误!

article/2025/10/5 5:39:41

首先简单说明,IP是什么?有什么作用?

       IP(Internet Protocol),即网际互联协议,是TCP/IP体系中的网络层协议。设计IP的目的是为了提高网络的可扩展性:
一是解决互联网问题,实现大规模、异构网络的互联互通;
二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。
根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

       通俗地说,IP地址就像一个家庭的住址,每家每户都有一个地址一个门牌号,IP就是这个门牌号。IP的无连接类似于上世纪八九十年代的邮递服务。当邮递员投递信件时只管投递到目标门牌号,至于对方最终到底拿没拿到信件、是否拿到了完整的信件、读没读信件,寄信人是不知道的。

       既然提到了IP,就不得不简单提一嘴IPTCP(Transmission Control Protocol,传输控制协议)与UDP(User Datagram Protocol,用户数据报协议)的关系。举一个不是完全恰当的例子:IP地址送信就像邮递员只把信件放到楼下信箱中,而UDP会用最快的速度将信件送到收信人家门口,但不会保证信件是完整的TCP速度没有多快,但TCP会将信件送到收信人手中并确认收信人收到了信件,且会通知寄信人,如果在运输途中,信件弄丢了一页,TCP还会把丢失的信件重新送到收信人手中

       接下来详细解释IP地址是如何划分的。
      最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址都由网络号+主机号两部分组成。同一个物理网络上的所有主机都使用同一个网络号,每个子网络上的主机都有一个主机号与其对应。
      IP地址根据网络号的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。E类地址作为保留地址,为将来使用保留,此处便不再赘述。下面详细描述IPv4的构成及分类

      IPv4地址由32位二进制数构成,每8位为1组,为了简洁明了,一般都写做10进制形式,例如:

表1 IPv4的二进制与十进制转换


       根据可分配的IP数量的不同,IP地址可以被划分为A、B、C、D、E五类地址。划分方式如下图所示:

表2 IPv4地址划分详解


       在对上表做出解析前,首先要明确以下几点:
1)主机号全为1时,表示该网络广播地址;当主机号全为0时,表示该网络本身。这两个地址都是不分配的。
2)网络号为127时,表示环回测试地址,也不分配。也就是说,网络号为127的,根本不是一个网络地址。
3)网络号二进制位全0表示本网络,故A类地址中的0(00000000)网络号不分配,A类地址会从网络号1(00000001)开始分配。而B,C类地址因为开头的二进制位已经固定含1,不可能出现二进制位全0的情况,所以不需要考虑上述问题。但作为保留地址,B类地址中的128.0和192.0.0网络号也不分配
4)A、B、C类地址中可指派的全部为单播地址,D类地址为多播(广播)地址,E类地址作为保留地址使用。

在上述约束的前提下,我们来看表2。

1. A类地址
a)网络号共8位,第1位固定为0,剩余7位可选,故可指派的网络号有2^7-2个(减2是因为减去了二进制位全0网络号和127换回测试地址网络号)
b)主机号24位,可分配主机数为2^24-2=16777214(主机号全0和全1的不分配,故减2);
c)第一个可分配的网络号为1,最后一个为126(127不分配);
d)综上,A类地址共(2^7-2)*(2^24-2)≈2^31个,总地址空间为2^32个,故A类地址占总地址空间的50%

2. B类地址
a)网络号共16位,第1,2位固定为10,剩余14位可选,故可指派的网络号有2^14-1个(减1是因为减去了128.0这个保留地址)
b)主机号16位,可分配主机数为2^16-2=65534(主机号全0和全1的不分配,故减2);
c)第一个可分配的网络号为128.1,最后一个为191.255;
d)综上,B类地址共(2^14-1)*(2^16-2)≈230个,总地址空间为2^32个,故B类地址占总地址空间的25%

3. C类地址
a)网络号共24位,第1,2,3位固定为110,剩余21位可选,故可指派的网络号有2^21-1个(减1是因为减去了192.0.0这个保留地址)
b)主机号8位,可分配主机数为2^8-2=254(主机号全0和全1的不分配,故减2);
c)第一个可分配的网络号为192.0.1,最后一个为223.255.255;
d)综上,C类地址共(2^21-1)*(2^8-2)≈2^29个,总地址空间为2^32个,故C类地址占总地址空间的12.5%

4. D类地址
D类地址不分网络地址和主机地址,该类IP地址的前面4位为“1110”,所以网络号取值于224~239之间;后面28位为组播地址ID。这是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicasting)中。多点广播地址用来一次寻址一组计算机,它表示共享同一协议的一组计算机。

5. E类地址
是保留地址,为将来使用保留。该类IP地址的最前面为“1111”,所以网络号取值于240~255之间。


http://chatgpt.dhexx.cn/article/n0QAbUUr.shtml

相关文章

ip类「ABCDE五类」区分和私有ip地址的知识

今天计算机网络基础老师真的是有很努力的讲授ip地址的知识,但是我觉得没有很细致, 我之前有读到过戴老师的书籍,遂记录一下有关IP地址的知识,帮助我加强记忆与理解 网络ID:每一个网络都有一个唯一的网络ID&#xff0…

bios和boot menu的关系?

bios(基本输入输出系统)和boot menu(启动菜单)是计算机启动过程中两个关键的组件,它们之间存在一定的关系。 bios是一种固化在计算机主板芯片中的程序 它是计算机启动时第一个被执行的程序。bios负责对计算机硬件进行…

debootstrap,febootstrap,busybox

最近学习在Ubuntu虚拟机中利用QEMU搭建ARM64环境,其中一个重要的部分就是“制作根文件系统”,网络上有使用debootstrap和busybox制作根文件系统的方法,本篇博文记录这三者的区别 目录 1、debootstrap 2、febootstrap 3、busybox 4、deboo…

ibox (bootstrap)

效果图如下&#xff1a; <div class"ibox float-e-margins"><div class"ibox-title"><h5>圆形图标按钮</h5><div class"ibox-tools"><a class"collapse-link"><i class"fa fa-chevron-up…

bootbox.js弹出框时设置为中文

1 经验之谈&#xff1a;我在ace(一个基于bootstrap)的后台模板框架中&#xff0c;需要使用弹出确认框&#xff0c;看了一下ace中&#xff0c;自己带有弹框功能&#xff0c;所以就拿来就用。 2 问题&#xff1a;就是在我使用过程中&#xff0c;我发现一个不好的现象&#xff0c;…

python测试开发django-155.bootbox使用(alert/confirm/prompt/dialog)

前言 Bootbox.js是一个小型的JavaScript库&#xff0c;基于 Twitter 的 Bootstrap 开发&#xff0c;旨在使使用Bootstrap modals更容易&#xff01; 可以自定义alert/confirm/prompt/dialog弹出框 下载与使用 bootbox的所有版本都是在Bootstrap和jQuery的基础之上的&#xf…

如何使用bootbox

1.背景介绍 在JS任务6-10做萝卜多后台中我们会使用到模态框&#xff0c;当时我在做这个任务的时候是使用了AngularJS的ui-bootstrap中的模态框&#xff0c;但是使用起来真的真的很繁琐&#xff01;直到后来接触到bootbox&#xff0c;发现原来写模态框可以如此的简单。 Bootbo…

漂亮的弹出框,javascript库bootbox介绍

传统的javascript的警告框、确认框、提示框&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>弹出框</title> </head> <body> <button onclick"f1()">…

BootBox使用

最近公司的系统前端页面全面优化&#xff0c;代号UI/UX。我在优化过程中经常需要使用确认框&#xff0c;但是确认框使用window的话&#xff0c;太难看。于是想做一个非常美观的确认框。 由于系统引用了bootstrap&#xff0c;首先想到的是查看bootstrap中有没有好看的确认框&…

如何使用Bootbox?

大家好&#xff0c;我是IT修真院深圳分院第06期学员&#xff0c;一枚正直善良的web程序员。 今天给大家分享一下&#xff0c;修真院官网 JS-06任务中可能会使用到的知识点&#xff1a; 1.背景介绍 在JS任务6-10做萝卜多后台中我们会使用到模态框&#xff0c;当时我在做这个任…

bootbox的使用

这里是修真院前端小课堂&#xff0c;每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能&#xff0c;本篇分享的是&#xff1a; 【bootbox的使用 】 1.背景介绍 Bootbox.js是一…

c语言如何用argv输入参数,C语言中参数向量argv问题

跃然一笑 楼上蓝皮鼠基本上都回答了&#xff0c;我就再啰嗦几句补充一点东西吧;-)这问题其实挺有趣的&#xff0c;对于argv来说&#xff0c;既然定义成char*argv[]那不就是说明argv是一个指向字符串的指针数组&#xff0c;怎么也能左值操作&#xff1f;我们知道数组名其实就是一…

python sys.argv

sys.argv 是获取运行python文件时的命令行参数&#xff0c;且以list形式存储参数。 这里主要介绍常见的几种用法&#xff1a; 1. sys.argv[0] 输出py文件本身的路径或名称 test.py 文件里的代码如下&#xff1a; import sysasys.argv[0] print(a)运行test.py文件的结果如…

命令行参数argv

1.命令行参数argv 。本质是个指针&#xff0c;或者说数组&#xff0c;存储需要输入的参数&#xff0c;通俗来说&#xff0c;就是input()的功能。在python中要是用的话&#xff0c;需要import sys。如果是在pycharm中使用&#xff0c;将参数在下图中的位置填入&#xff0c;以空格…

g++ 编译过程体会与命令行参数argc,argv[]详解

argc, *argv[] 参数介绍 main(int argc,char *argv[ ]) argc为整数, 代表参数的个数。 argv为指针数组&#xff0c;里面的元素个数是 argc 个&#xff0c;&#xff08;可理解为&#xff1a;char **argv or: char *argv[] or: char argv[][] &#xff09;。 注&#xff1a;mai…

C语言中函数main的参数argc和argv是什么

在 Xcode 中新建一个 macOS 平台 Command Line Tool&#xff0c;使用 C 语言&#xff0c;会发现 main 带了两个参数&#xff1a;argc和argv。如下&#xff1a; argc被程序唤起的命令行参数的数量&#xff0c;用于统计参数数量。这里会导致你有一个误区&#xff0c;在下面argv[…

李宏毅线性代数笔记6:矩阵的计算

1 矩阵的几个概念 1.1 特殊矩阵 1.1.1 数量矩阵 主对角线上元素是同一个数&#xff0c;其余元素全为0的n级矩阵 1.1.2 对角矩阵&#xff08;diagonal matrix&#xff09; 主对角线元素之外全为0的方阵 记作diag{d1,d2,……dn} 1.1.3 基本矩阵 只有一个元素是1&#xff…

二、线性代数

6 特殊类型的矩阵和向量 对角矩阵 对角矩阵&#xff08;diagonal matrix&#xff09;只在主对角线上含有非零元素&#xff0c;其他位置都是零。形式上&#xff0c;矩阵 D D D 是对角矩阵&#xff0c;当且仅当对于所有的 i ≠ j , D i , j 0 i\ne j, \ D_{i,j}0 i​j, Di…

边缘计算与雾计算的区别

雾计算是对MEC的扩展&#xff0c;扩展到了终端侧&#xff0c;包括计算、存储、存储、控制功能。区别如下&#xff1a; 1.MEC使用的资源是网络边缘的设备&#xff0c;而雾计算还要使用终端设备。 2.雾计算是使得云到物的计算无缝连续衔接。 3.雾计算为垂直行业和应用除提供电信业…

雾计算、边缘计算区别和联系

01 从计算方式上边来说的话&#xff0c;雾计算的层次性稍微强一点&#xff0c;并且架构方面比较平坦&#xff0c;这样下来的话整个计算的平稳性就比较好一点。 02 对于边缘计算来说的话&#xff0c;边缘计算在进行计算的时候是不会对网络产生依赖的&#xff0c;也就是说边缘计算…