计算机网络1——IP地址的分配原理

本文详细介绍了IP地址的分类,包括A、B、C三类地址的表示方法、指派范围,以及D、E类地址的特殊用途。同时,讨论了网络号和主机号的指派,解释了IP地址与硬件地址的区别,并阐述了子网掩码在子网划分中的作用。最后,简述了无分类编址CIDR和超网的概念,强调了它们在提高IP地址资源利用率方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 1. ISO七层网络模型

2. 网络模型介绍

3. 分类的IP地址

3.1 IP地址的表示方法

3.2 常用IP地址的指派范围

3.2.1 网络号指派范围

3.2.2 主机号指派范围

3.2.3 总结IP指派范围

3.2.4 IP地址和硬件地址

3.2.5 子网和超网

3.2.6 子网

3.2.7 超网


 1. ISO七层网络模型

2. 网络模型介绍

在计算机网络中有著名的OSI七层协议体系结构,概念清楚,理论完整,但是它既复杂又不实用。TCP/IP体系结构则不同,得到的广泛的应用。最终结合OSI和TCP/IP的优点,采用了一种只有五层协议的体系结构,本文的讲述的IP都是基于五层协议模型中的网络层

OSI体系结构TCP/IP体系结构五层体系结构
7 应用层应用层5 应用层
6 表示层
5 会话层
4 传输层传输层4 传输层
3 网络层网络层3 网络层
2 数据链路层网络接口层2 数据链路层
1 物理层1 物理层

3. 分类的IP地址

3.1 IP地址的表示方法

IP地址就是给英特网上的每个主机(路由器)的每个接口分配一个在全世界范围内是唯一的32位的标识符。其组成第一个字段是网络号,第二个字段是主机号。一个主机号在前面的网络号所指明的网络范围内必须是唯一的,所以一个IP地址在整个网络中都是唯一的。目前分为A、B、C、D、E 五类IP地址。

IP

 
● 在A、B、C 三类地址中灰色的部分即为网络号,网络号的前三位是类别位,分别是0,10,110。也就是说我们可以凭借这个类别位置来判断网络类别。

● 32位的总长度,由于A、B、C 三类网络号的长度的不同,导致A、B、C 类地址的主机号字段的字节数分别为3、2、1(一个字节8位)。

●D 类地址的网络号为1110,用于多播(一对多通讯)。E 类地址的网络号为1111,保留以后使用。

因此我们一般使用的就是ABC三类网络地址,IP地址是32位的二进制代码,为了提高可读性,把32位的IP地址中的每8位用等效的十进制表示出来(点分十进制),于是我们日常生活中常见的IP地址就出现了。

例如:IP地址,128.11.3.31,转化为二进制为 100000000 00001011 00000011 00011111 ,可以看出类别位为 10,可以判断为一个B类地址。

3.2 常用IP地址的指派范围

3.2.1 网络号指派范围

● A类地址网络号占用一个字节,但是由于有一位是类别位,只有7位可供使用,但是由于规定,网络字段全0是个保留字段表示本网络,而127(01111111)是另外一个保留字段,作为本地软件的环回测试。我们常见的127.0.0.1表示本机,原因也是出自这里。所以A类地址可以指派的网络号个数为(27-2).
● B类网络地址网络号有两个字节,前两位为10已经固定,只剩下14位可用,由于这14位无论怎么取值都不会使得网络号为全0或者全1,单实际上规定,规定B类最小网络地址为128.1.0.0。因此B类地址可指派的网络号个数为(214-1).
● C类地址有3个字节的网络字段号,前三位固定110,只有剩下21位可用,同样C类地址可指派的最小网络地址也是192.0.1.0。因此C类地址可指派的网络号个数为(221-1).


3.2.2 主机号指派范围

● 由于主机号有规定,全0的主机号代表IP地址是“本主机”所连接到的单个网络地址(例,一主机地址为5.6.7.8,则该主机所在的网络地址为5.0.0.0),而全1则表示“所有的”,即表示该网络上的所有主机。
● A类地址的主机号是由三个字节,24位组成,所以每一个A类网络中可分配的主机个数为(224-2).
● B类地址的主机号是由两个字节,16位组成,所以每一个B类网络中可分配的主机个数为(216-2).
● C类地址的主机号是由一个字节,8位组成,所以每一个C类网络中可分配的主机个数为(28-2)


3.2.3 总结IP指派范围

综上网络号和主机号的指派描述可知,IP地址空间共有232个地址。
所有A类地址共有(27-2)∗∗(224-2)个,大约231,占50%;
所有B类地址共有(214-1)∗∗(216-2)个,大约230,占25%;
所有C类地址共有(221-1)∗∗(28-2)个,大约229,占12.5%;



 

3.2.4 IP地址和硬件地址

从层次角度来看,硬件地址是数据链路层和物理层使用的地址(常称作MAC地址),而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。在网络层我们进行数据报文从IP1传输到IP2,无论我们中间经过多少次转发,从网络层来看,源地址始终是IP1,目的地址始终是IP2。但是从数据链路层来看,显然就不是这样了,这些是物理地址,很有可能从源节点经过多次中间节点的物理地址的转变才能到达目的节点。

而IP地址和物理地址的之间的转化则需要依靠两个重要的协议ARP(地址解析协议),RARP(逆地址解析协议)。IP地址通过ARP转化成物理地址,物理地址可以通过RARP转化成相应的IP地址。

3.2.5 子网和超网

简单的来说就是如何来管理一个IP地址下的多台主机

3.2.6 子网

现在假设这样一个场景,一个数据报起目的地址是145.13.3.10(在子网 145.13.3.0中),已经到达路由器R1(145.13.0.0),那么这个路由器怎么将它转发到145.13.3.0呢?
我们并不知道目的地址是否进行了子网的划分。
这就引出了子网掩码的概念了,子网掩码也是32位,由一串1和0组成,子网掩码中的1对应于IP地址中的网络号位置+子网网络号位置,子网掩码中的0对应与IP地址中现在的主机号位置。
我们只要将IP地址和子网掩码进行“与”运算,如果进行子网的划分,就立刻得出要找的子网的网络地址,如果没有进行子网划分(有默认的子网掩码),则直接能够得出该IP地址的网络地址出来。

● A类地址的默认子网掩码是255.0.0.0
● B类地址的默认子网掩码是255.255.0.0
● C类地址的默认子网掩码是255.255.255.0

3.2.7 超网

无分类编址CIDR,使用变长的子网掩码,可以进一步提高IP地址的资源利用率。有两个特点:

第一,消除了传统的ABC类地址及划分子网的概念,CIRD把32位的IP地址划分成为两个部分,网络前缀和剩下的部分,表示方法为,在IP地址后面加上“/”,然后写上网络前缀所占位数。

第二,把网络前缀相同的IP地址组成一个CIDR地址块,例如,IP地址 128.14.35.7/20 用二进制表示 100000000 00001110 00100011 00000111,所以我们很容易可以得出这块地址中最小地址为128.14.32.0,即 100000000 00001110 00100000 00000000,最大地址为128.14.47.255,即 100000000 00001110 00101111 11111111.

为了更加方便进行路由选择,CIDR使用32位的地址掩码,1的个数就是网络前缀的长度,如上面所举例中的/20的地址块的地址掩码是 11111111 11111111 11110000 00000000

因此可以看出,网络前缀越短,其地址块所包含的地址就越多,这样可以根据实际情况更加有效的分配IPv4的地址空间。而由很多个CIDR地址快构成的庞大的网络就就被称为“超网”。
 

参考链接:IP地址的分配原理_小书go的博客-CSDN博客_ip地址分配原则

### 什么是 /30 子网掩码 /30 是一种 CIDR 表示法,表示 IP 地址中的前 30 位被用作网络地址,剩下的 2 位作为主机地址。这意味着在一个 /30 的子网中,总共可以有 \(2^{(32-30)} = 4\) 个 IP 地址[^3]。 在这四个 IP 地址中: - **两个不可用**:一个是网络地址(第一个地址),另一个是广播地址(最后一个地址)。 - **剩余两个可用**:通常用于连接两端设备之间的通信。 因此,在一个 /30 子网中只有两个实际可分配给设备使用的 IP 地址。 ### 如何用于 ISP 链路分配 在互联网服务提供商 (ISP) 中,链路通常是点到点的连接方式。这种情况下,只需要为每条链路上的两个端点分别分配一个唯一的 IP 地址即可完成配置。由于 /30 提供了恰好足够的地址来满足这一需求——即两个有效地址加上必要的网络和广播地址——所以它非常适合于这样的场景。 具体来说: - 当一条链路建立起来之后,每一侧都需要有一个独立但连续范围内的 IPv4 地址来进行互相识别与通讯; - 使用 /30 掩码能够最小化整体消耗掉公网IPv4资源的数量同时又足够支持简单形式下的二方互联架构模型; 例如,如果某条链路的一端获得的是 `192.168.1.1` ,那么另一端则会得到紧随其后的下一个合法数值比如说是 `192.168.1.2` 。而整个区间就限定在这个小型集合之内 `{192.168.1.0, 192.168.1.1, 192.168.1.2, 192.168.1.3}` 上面提到过其中首尾两项保留不用做特殊用途处理之外其余正好匹配上述描述情形下所需条件。 ```python network_address = '192.168.1.0' broadcast_address = '192.168.1.3' usable_ip_1 = '192.168.1.1' # 可用IP之一 usable_ip_2 = '192.168.1.2' # 可用IP之二 ``` 通过这种方式,不仅实现了高效利用有限的公共 IPv4 资源的目的,同时也简化了对于大规模复杂拓扑结构内部众多不同层次间相互关联关系管理上的难度水平。 #### 总结 /30 子网掩码主要用于减少不必要的浪费并优化特定环境下的地址规划策略特别是在涉及到大量短距离直连线路部署场合当中显得尤为重要实用价值极高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值