IP/IPv4地址详解

玩机教程 > Router (8) 2025-06-17 15:05:00

本文针对IPv4地址详解

每个使用 IP 协议进行通信的实体,都需要分配一个地址,这就是我们所熟知的 IP 地址。

IP 地址由 4 个字节组成,共 32 位,理论上可以表示 232 = 4294967296 ,即超过 42 亿台主机。这个数字虽然很大,如果为地球上每个人都分配一个,也还不够。

点分十进制表示法

 

我们熟悉的 IP 地址 172.16.254.1 由多个字符构成,而不是 4 个字节,这是为什么呢?为回答这个问题,我们需要深入考察 IP 地址结构,理解 点分十进制表示法 ( dotted decimal notation )。

IP 地址由 4 个字节构成,但不是每个字节都能用 ASCII 来显示。下面这个 IP 地址如果用 ASCII 来解读,有 2 个字节是非法字符,另外 2 个是 ASCII 中的控制字符,没一个能直接显示:

IP地址详解_图示-30c4cbfabd094746bb92865db83153ca.png

我们知道,一个字节有 8 位,可以表示从 0 到 255 的整数。因此,一个 IP 地址可以用 4 个十进制数来表示,每个数字各代表一个字节:

IP地址详解_图示-27459a840ad2428994d3b422c198bac8.png

我们可以用若干个 ASCII 数字字符来表示一个十进制数,每个数之间额外插入一个英文句点,进一步增强可读性,这就是我们常用的 点分十进制表示法 :

IP地址详解_图示-e73a5d9401a0473998ee1547b4563ddd.png

注意到,原 IP 地址中的一个字节,可能需要多个 ASCII 数字字符来表示。此外,还要插入 3 个英文句点来分隔,总长度膨胀不少。因此,点分十进制存储效率和处理效率都不高,底层网络通信还是采用原本的二进制格式。

那么,如何将点分十进制法表示的 IP 地址,换算成二进制形式呢?我们只需将每个数字都换算成 8 个二进制位,再将所有的二进制位连接起来即可:

IP地址详解_图示-ffee35ba0cb34eb5a48f0e2143260706.png

 

网络号和主机号

同一个网络中的主机,IP 地址都有相同的前缀。以下面网络拓扑为例:

IP地址详解_图示-2a0709bd1b474ef3b7c4616d5570d4a4.png

左边网络的主机,IP 地址前缀都是 192.168.1 ;右边网络的主机,IP 地址前缀都是 192.168.2 。根据这个特性,一个 IP 地址可以分为两部分:

IP地址详解_图示-2afe5157f8884f19883aba1c133b1b04.png
  • 网络号 :即公共前缀部分,用于表示一个网络;
  • 主机号 :即剩余部分,用于表示该网络内的一台主机;

这个例子中,IP 地址前 3 个字节( 24 位 )为网络号,最后一个字节( 8 位 )为主机号。主机号长度为 8 比特的网络,理论上可以接入 28=256 台主机。实际上,每个网络都有两个特殊的地址,不能分配:

IP地址详解_图示-0e6497e5a36541029e4baeeb451323d3.png
  • 主机号比特全为 0 ,是网络的起始地址,用于表示网络本身,一般称为 网络地址
  • 主机号比特全为 1 ,是网络的结束地址,用于向网络内的所有主机进行广播,一般称为 广播地址

因此,一个主机号长度为 n 比特的网络,最多可以接入 2n−2 台主机。

 

IP地址分类

那么,是不是所有的 IP 地址,网络号都是 3 字节,主机号都是 1 字节呢?

答案肯定是否定的。不同的网络,规模有大有小。因此,网络号和主机号的长度,需要根据网络规模来确定。试想,如果主机号总是 1 字节,当一个网络内的主机超过 254 台时,该怎么办呢?

在网络技术兴起的早期,科学家们将 IP 地址划分为若干类:

IP地址详解_图示-313ba4354e5c48af846a915077401218.png

A类地址

A 类地址第一位总是为 0 ,网络号总是 1 字节,主机号总是 3 字节,一般分配给 大型网络

  • 前缀:0
  • 网络号可变位数:7
  • 网络个数:27=128
  • 每个网络支持的主机数:224−2=16777214 ,超过一千六百万;
  • 地址范围:0.0.0.0 ~ 127.255.255.255

B类地址

B 类地址前两位总是 10 ,网络号总是 2 字节,主机号总是 2 字节,一般分配给 中型网络

  • 前缀:10
  • 网络号可变位数:14
  • 网络个数:214=16384
  • 每个网络支持的主机数:216−2=65534 ,超过六万五千;
  • 地址范围:128.0.0.0 ~ 191.255.255.255

C类地址

C 类地址前三位总是 110 ,网络号总是 3 字节,主机号总是 1 字节,一般分配给 小型网络

  • 前缀:110
  • 网络号可变位数:21
  • 网络个数:221=2097152
  • 每个网络支持的主机数:28−2=254
  • 地址范围:192.0.0.0 ~ 223.255.255.255

D类地址

D 类地址前四位总是 1110 ,用于 多播通信 

  • 前缀:1110
  • 地址范围:224.0.0.0 ~ 239.255.255.255

E类地址

E 类地址前四位总是 1111 ,保留未用 。

  • 前缀:1111
  • 地址范围:240.0.0.0 ~ 255.255.255.255
分类 前缀码 网络号位数 主机号位数 网络个数 每个网络的主机数 开始地址 结束地址
A类地址 0 8 24 128 16777214 0.0.0.0 127.255.255.255
B类地址 10 16 16 16384 65534 128.0.0.0 191.255.255.255
C类地址 110 24 8 2097152 254 192.0.0.0 223.255.255.255
D类地址 1110 - - - - 224.0.0.0 239.255.255.255
E类地址 1111 - - - - 240.0.0.0 255.255.255.255

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
本文针对IPv4地址详解每个使用 IP 协议进行通信的实体,都需要分配一个地址,这就是我们所熟知的 IP 地址。IP 地址由 4 个字节组成,共 32 位,理论
概述Windows ipv6如何查看,Windows ipv6的几种类型解析,包括:IPv6 地址 临时IPv6地址 本地链接IPv6地址 对比区别总结,默认网
概述IP地址(IPv4)子掩码及斜杠/24/16/8是什么网络地址管理是网络配置和设计的关键组成部分。其中,IP地址和子网掩码起着至关重要的作用。本文将详细解析
一、IPv6编址概述1.1 地址基础IPv6地址由被划分为8个16位块的128位组成。 然后将每个块转换为由冒号符号分隔的4位十六进制数字。
linux 配置静态ip地址,Centos6.5配置静态IP地址,Linux系统配置静态IP地址
在上一篇提到 IP 地址分门别类后,除去特殊的 D 、 E 两类,只有 3 种规格,灵活性仍然非常有限:A 类地址,用于大型网络,网络主机数可达 1600 万以
概述OpenWRT 二级路由实现IPv6中继(IPv6中继模式又称之为:IPv6穿透、IPv6 Passthrough),IPv6由于底层设计原因,NAT6模式
概述Stateless、SLAAC、Stateful IA-NA等配置项目常见于路由器配置IPv6。其中Stateless RA 与 SLAAC 一般是只一个东
[JAVA]_图文详解CKeditor4.4.X版本添加程序代码高亮插件codesnippet1.去CKeditor官网下载4.4.X及以上版本官网直通车:点击
docker 镜像制作报错 [Warning] IPv4 forwarding is disabled. Networking will not work.问题解决办法
WAN6配置此处示例图以WiFi无线中继,取名WWAN6 和 WAN6 相同首先新建WAN6,协议dhcpv6 client,firewall zone改成wa
Apache HttpClient 4.x 使用详解
DHCPv6前缀代理DHCPv6 PD(Prefix Delegation)是一种前缀分配机制,并在RFC3633中得以标准化。在一个层次化的网络拓扑结构中,不
DHCPv6自动分配分为DHCPv6有状态自动分配和DHCPv6无状态自动分配。DHCPv6有状态自动分配。DHCPv6服务器自动配置IPv6地址/前缀,同时分
Java编程中spring mvc 获取请求ip,springmvc 获取访问ip