谈谈IP
# 一、网络协议的分层
咱们在谈 IP
之前,得先弄清楚计算机网络是怎么组织的。就像盖房子一样,网络协议也是分层搭建的。
TCP/IP
模型从下到上分为五层:
物理层(Physical Layer):最底层,负责传输电信号、光信号等。比如网线、光纤传输的就是这一层的数据。
数据链路层(Data Link Layer):把物理层的信号组织成数据帧,还要检查有没有传错。你的网卡工作在这一层。
网络层(Network Layer):这就是我们今天要讲的
IP
所在的层次,负责在不同网络间找路径,把数据包送到目的地。传输层(Transport Layer):确保数据能可靠地从一端传到另一端。
TCP
和UDP
就工作在这一层。应用层(Application Layer):最顶层,我们平常用的网页浏览、邮件收发等应用都在这一层。
简单来说,IP
就是网络世界的"快递员",负责把数据包从发送方送到接收方。
# 二、什么是 IP 地址
IP地址
就像现实世界中的门牌号码,每台连接到网络的设备都需要有一个独一无二的"地址",这样其他设备才知道往哪里发送数据。
目前我们常见的是 IPv4
地址,比如 10.100.122.2
。这个地址由四个数字组成,每个数字的范围是 0 到 255。为什么是 255 呢?因为每个数字实际上是 8 个二进制位(也就是 8 个 0 或 1),8 位二进制最大能表示的数字就是 255。
所以 IPv4
地址总共是 32 位(4×8=32),理论上能提供大约 43 亿个地址。听起来很多,但随着全球设备数量暴增,这些地址已经不够用了。这就是为什么后来出现了 IPv6
的原因。
# 1、查看 IP
想知道自己设备的 IP地址
很简单:
- Windows 系统:打开命令提示符,输入
ipconfig
- Linux 系统:使用
ifconfig
或者ip addr
命令(可能需要先安装net-tools
工具包)
顺便说一下,IPv6
使用 128 位地址,能提供的地址数量是个天文数字(大约 3.4 × 10^38
个),基本上可以给地球上每粒沙子都分配一个地址了。
# 三、IP 地址是怎么来的
你可能好奇,这些 IP地址
到底是谁在管理分配的?其实有一套完整的体系。
全球的 IP地址
资源由 IANA
(互联网数字分配机构)统一管理,就像是 IP地址
的"总库房"。但 IANA
不会直接分配给个人用户,而是先分给各个地区的管理机构。
全世界被划分为五大区域,各有一个管理机构:
- ARIN:管理北美洲
- RIPE NCC:管理欧洲、中东和中亚
- APNIC:管理亚洲和太平洋地区(包括中国)
- LACNIC:管理拉丁美洲和加勒比地区
- AfriNIC:管理非洲
拿咱们中国来说,IP地址
的分配路径是这样的:
IANA
→ APNIC
→ 国内运营商(移动、联通、电信等)→ 最终用户
所以你家宽带的 IP地址
,实际上是经过了这么多层级才到你手里的。
# 四、CIDR
早期的时候,IP地址
被简单粗暴地分为了 A、B、C、D、E 五类:
但这种分类方法有个大问题:太死板了!比如一个公司需要 300 个 IP地址
,C 类网络只能提供 254 个,不够用;而 B 类网络能提供 6 万多个,又太浪费了。
于是就有了 CIDR
(无分类域间路由)。
CIDR
的核心思想很简单:不再用固定的分类,而是用"IP地址/前缀长度
"的格式来表示网络。比如 192.168.0.0/24
,这里的 /24
表示前 24 位是网络部分,后面 8 位是主机部分。
这样做有什么好处呢?
- 按需分配:需要多少
IP
就分配多少,不浪费 - 灵活划分:可以把大网络分成小网络,也可以把小网络合并成大网络
- 减少路由表:路由器不用记住那么多条路由信息
现在互联网基本上都用 CIDR
了,它让 IP地址
的管理变得更加智能化。
# 1、网络号与主机号
每个 IP地址
其实都可以分成两部分:网络号和主机号。
你可以这样理解:网络号就像小区名,主机号就像门牌号。同一个小区(网络)里的住户(设备)可以直接互相访问,不同小区的住户要通过大门(网关)才能相互访问。
以 192.168.0.0/24
为例:
- 前 24 位(
192.168.0
)是网络号,表示这是同一个网络 - 后 8 位(最后一个数字)是主机号,从 1 到 254 都可以分配给不同的设备
前缀长度越小,网络越大,能容纳的设备就越多。比如 /16
能容纳 6 万多台设备,而 /28
只能容纳 14 台设备。
# 2、子网掩码(前缀长度)
子网掩码其实就是用来区分网络号和主机号的"分界线"。
比如 /24
对应的子网掩码是 255.255.255.0
。为什么这么对应呢?
你可以这样理解:
255.255.255.0
转换成二进制就是前 24 位都是 1,后 8 位都是 0- 1 的部分表示网络号,0 的部分表示主机号
- 所以
/24
就是前 24 位是网络号的意思
常见的子网掩码对应关系:
/24
=255.255.255.0
(可分配 254 个 IP)/16
=255.255.0.0
(可分配 65534 个 IP)/8
=255.0.0.0
(可分配 1670 万个 IP)
当你的设备要判断另一台设备是否在同一网络时,就是用自己的 IP地址
和子网掩码进行"按位与"运算,得到网络号,然后和目标设备的网络号比较。
# 3、一个特殊的 CIDR 计算
前面提到 CIDR
的前缀长度可以是任意值,不一定是 8、16、24 这些整数。咱们来看一个稍微复杂点的例子。
假设有个网络 16.158.165.91/22
,我们来算算这个网络的一些关键信息。
/22
意味着前 22 位是网络号,后 10 位是主机号。重点是第三个字节(165)需要拆分:
- 165 转换为二进制是
10100101
- 按照
/22
的要求,前面 6 位(101001
)属于网络号,后面 2 位(01
)属于主机号
所以这个网络的信息是:
- 网络地址:
16.158.164.0
(主机位全为0) - 网关地址:
16.158.164.1
(通常是网络中第一个可用IP) - 子网掩码:
255.255.252.0
(前22位为1) - 广播地址:
16.158.167.255
(主机位全为1) - 可用IP范围:
16.158.164.1
到16.158.167.254
这种不按字节对齐的划分方式在实际网络规划中很常见,能够更精确地控制网络规模。
# 4、默认网关
默认网关就像小区的大门,当你要去别的小区时,必须通过这个大门出去。
在网络中也是这样:
- 如果两台设备在同一个网络(比如都是
192.168.0.x
),它们可以直接"串门"聊天 - 如果不在同一个网络(比如一个是
192.168.0.1
,另一个是192.168.1.2
),就必须通过默认网关来转发
默认网关通常就是你的路由器。当你在家里上网时:
- 你的电脑想访问百度(
180.101.49.11
) - 电脑发现这个 IP 不在自己的网络里
- 电脑把数据包发给默认网关(路由器)
- 路由器再帮你转发到互联网上
这就是为什么家里断网的时候,你连不上外网,但还能访问路由器管理页面的原因。
# 五、局域网中 IP 地址的分配
# 1、静态 IP 地址分配
静态 IP
就是手动给设备分配一个固定的 IP地址
,这个地址不会变。这种方式适合服务器或者需要固定 IP 的设备。
在 Linux 系统中配置静态 IP 的基本步骤:
查看网络接口
ip addr # 或者用 ifconfig
找到你要配置的网卡名称,比如
eth0
或ens33
编辑网络配置文件
sudo vi /etc/network/interfaces
添加静态 IP 配置
auto eth0 iface eth0 inet static address 192.168.0.100 # 你想要的静态IP netmask 255.255.255.0 # 子网掩码 gateway 192.168.0.1 # 网关地址 dns-nameservers 8.8.8.8 # DNS服务器
重启网络服务
sudo systemctl restart networking
配置时需要注意:
- 确保你选择的 IP 在正确的网段内
- 不要和其他设备的 IP 冲突
- 网关和 DNS 地址要正确
# 2、动态 IP 地址分配(DHCP)
想象一下,如果每次连接新的 WiFi 都要手动配置 IP,那得多麻烦?这时候就需要 DHCP
(动态主机配置协议)来自动分配 IP 了。
DHCP
的工作过程就像是租房子:
第一步:DHCP Discover(我要租房) 新设备刚连接到网络,就像一个新来的人在小区里喊:"有房东吗?我需要租个房子!"
- 设备发送广播包到
255.255.255.255
,表示询问整个网络 - 内容大概是:"我是新来的,MAC 地址是 XX:XX:XX:XX,谁能给我分配个 IP?"
第二步:DHCP Offer(我有房子) DHCP
服务器(通常就是你的路由器)收到请求后回应:"我这里有房子可以租给你"
- 服务器提供一个可用的 IP 地址
- 同时还会告诉你子网掩码、网关、DNS 等网络配置信息
第三步:DHCP Request(我要这套房) 设备说:"好的,我要租你提供的这个 IP"
第四步:DHCP ACK(租约生效) 服务器确认:"好的,这个 IP 租给你了,租期是 24 小时"
整个过程就几秒钟,你的设备就自动获得了上网所需的所有配置。这就是为什么你连 WiFi 时不需要手动配置 IP 的原因。
# 六、IPv6
前面提到 IPv4
地址不够用了,那 IPv6
就是来解决这个问题的。
IPv6
最直观的变化就是地址变长了:
IPv4
:192.168.0.1
(32位,4段数字)IPv6
:2001:0db8:85a3:0000:0000:8a2e:0370:7334
(128位,8段十六进制)
这个地址空间有多大呢?如果 IPv4
能分配给全球每个人一个地址的话,IPv6
能给地球上每个原子都分配几万个地址!
除了地址多,IPv6
还有这些改进:
自动配置更智能 设备接入网络后,可以自动生成全球唯一的地址,不需要 DHCP 服务器。就像每个设备都有了一个"身份证号"。
安全性更强 IPv6
内置了 IPSec
加密,数据传输更安全。以前需要额外配置的安全功能,现在成了标配。
路由更高效 IPv6
的包头设计更简洁,路由器处理起来更快,网络性能更好。
适合物联网
随着智能家居、车联网的发展,需要给大量设备分配 IP。IPv6
的巨大地址空间正好满足这个需求。
虽然 IPv6
推广得比较慢(主要是兼容性问题),但随着 IPv4
地址枯竭,越来越多的网站和服务开始支持 IPv6
。现在很多家用路由器都已经支持 IPv6
了。
# 七、总结
通过这篇文章,我们从网络分层开始,一步步了解了 IP地址
的方方面面:
- 网络分层:
IP
位于网络层,负责在不同网络间传递数据包 - IP地址本质:就像网络世界的门牌号,让设备能够找到彼此
- 地址管理:全球有一套完整的分配体系,从
IANA
到各地区管理机构再到运营商 - CIDR技术:让 IP 地址分配更加灵活高效,告别了僵化的分类方式
- 地址获取:静态配置适合服务器,DHCP 自动分配适合普通用户
- IPv6演进:解决地址不够用的问题,同时带来更多技术改进
说到底,IP 地址就是互联网的基础设施,就像现实中的地址系统一样。理解了这些基本概念,你就能更好地理解网络是如何工作的了。
随着物联网和云计算的发展,网络技术还在不断演进,但这些基础知识会是你理解新技术的基石。
祝你变得更强!