网络层核心:IP协议与IP地址分类、子网掩码与CIDR、路由选择原理

各位同学,今天我们来啃网络层这块硬骨头。说实话,很多搞网络的人干了三五年,对IP地址的理解还停留在“配个IP就能上网”的阶段。这不行。网络层是整个互联网的骨架,IP协议就是骨架里的钢筋。今天我把这块掰开了揉碎了讲给你听。

IP协议:互联网的“身份证”系统

IP协议,全称Internet Protocol,中文叫网际协议。它的核心任务就两件事:寻址和分片。

寻址好理解,就是给每台设备一个唯一标识。分片呢?我记得早年调一个视频监控项目,摄像头发的数据包太大,路由器直接给丢了。排查了半天,才发现是MTU没对上。IP协议会把大包切成小片,到了目的地再拼回去。这个机制,说白了就是“大块头过窄门,拆了过,过了再装”。

IP协议的两个版本:

  • IPv4:32位地址,约43亿个。你以为很多?我2008年做IDC时,公网IP就已经开始论“块”卖了,一块也就几个IP。
  • IPv6:128位地址,号称能给地球上每粒沙子分配一个IP。嗯,这个比喻有点夸张,但确实够用。

你可能会问:为什么不用IPv6全面替代IPv4?原因很现实——兼容性。我见过太多老旧设备,连IPv6的协议栈都没编译进去。所以现在还是双栈共存,慢慢过渡。

IP地址分类:老古董但必须懂

IP地址分五类:A、B、C、D、E。D和E是组播和保留,咱们重点看A、B、C。

类别 首字节范围 默认子网掩码 可用主机数 典型用途
A类 1 - 126 255.0.0.0 约1677万 大型网络
B类 128 - 191 255.255.0.0 约6.5万 中型网络
C类 192 - 223 255.255.255.0 254 小型网络

一个小技巧:看第一个字节就能判断类别。127开头的地址是环回地址,用来测试本机网络栈。我调试时经常ping 127.0.0.1,如果通,说明协议栈没问题;不通,那就是驱动或硬件挂了。

但是,这种分类方式有个致命问题——浪费。你想想看,一个C类网只有254个主机,一个B类网却有6万多个。公司规模稍微大点,C类不够用,B类又太多。怎么办?

子网掩码与CIDR:打破“一刀切”

子网掩码,说白了就是一把“尺子”。它告诉路由器:IP地址里,哪部分是网络号,哪部分是主机号。

举个例子:IP 192.168.1.100,子网掩码255.255.255.0。把IP和掩码做“与”运算,得到网络号192.168.1.0。主机号就是100。就这么简单。

但真正让网络设计变得灵活的是CIDR(无类别域间路由)。CIDR抛弃了A、B、C的固定分类,改用“前缀长度”来表示网络范围。

CIDR表示法:

192.168.1.0/24 等价于 子网掩码255.255.255.0

10.0.0.0/8 等价于 子网掩码255.0.0.0

172.16.0.0/12 等价于 子网掩码255.240.0.0

我曾经帮一个客户做网络规划,他们申请了一个/24的网段,但实际只需要30个IP。按老办法,只能用/24,浪费200多个地址。用CIDR,直接划一个/27(32个地址),刚刚好。这就是CIDR的魅力——按需分配,不浪费。

子网划分的公式也很简单:

  • 子网数 = 2^(借位数)
  • 每个子网主机数 = 2^(剩余主机位数) - 2

为什么要减2?因为网络地址和广播地址不能用。我见过新手把广播地址配给服务器,结果整个网络广播风暴,所有设备都在吼。嗯,那场面,挺壮观的。

路由选择原理:数据包怎么找到路?

路由选择,就是数据包从源到目的地的“导航系统”。核心就三个字:查表。

每台路由器都维护一张路由表。表里记录着:目标网络、下一跳、出接口。数据包来了,路由器查表,找到匹配条目,然后转发。

路由表怎么来的?两种方式:

  1. 直连路由:路由器自己接口上的网段,自动知道。
  2. 静态/动态路由:管理员手动配,或者通过路由协议学习。

避坑指南:我曾经遇到一个故障,某条链路断了,但路由表没更新,数据包还在往那条链路上发。查了半天,发现是静态路由配了,但没有做链路检测。从那以后,我养成了一个习惯:静态路由一定要配合track或BFD使用,否则就是“盲人骑瞎马”。

动态路由协议里,最常用的是OSPF和BGP。OSPF适合内部网络,BGP适合互联网。它们的核心算法都是最短路径优先,但衡量“最短”的指标不同——OSPF看带宽,BGP看策略。

你想想看,互联网上有几十万条路由,路由器怎么选?其实就一条原则:最长前缀匹配。谁的掩码越长,谁就更精确,就选谁。比如目标IP是192.168.1.5,路由表里有两条:192.168.1.0/24和192.168.1.0/25。后者掩码更长,优先匹配。

知识体系总览

下面这张图,是我自己梳理的网络层核心逻辑。你看一遍,心里就有谱了。

网络层核心 IP协议 • 寻址:唯一标识设备 • 分片:大包拆小包 • IPv4 vs IPv6 地址分类 • A/B/C/D/E五类 • 默认子网掩码 • 浪费问题突出 CIDR • 前缀长度表示法 • 按需分配子网 • 减少路由表条目 路由选择 • 查表转发 • 静态 vs 动态路由 最长前缀匹配 • 掩码越长越优先 • 精确匹配原则

这张图把网络层拆成了五个模块。你从上往下看:IP协议是基础,地址分类是历史遗留,CIDR是优化方案,路由选择和最长前缀匹配是运行机制。五块连起来,就是网络层的全貌。

好了,这一章的内容就到这里。记住一句话:网络层不复杂,复杂的是你脑子里没建立起“分层”的概念。把IP地址、子网掩码、路由表这三样东西吃透,你就能搞定90%的网络问题。


可可精品资料库