网络层核心: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?因为网络地址和广播地址不能用。我见过新手把广播地址配给服务器,结果整个网络广播风暴,所有设备都在吼。嗯,那场面,挺壮观的。
路由选择原理:数据包怎么找到路?
路由选择,就是数据包从源到目的地的“导航系统”。核心就三个字:查表。
每台路由器都维护一张路由表。表里记录着:目标网络、下一跳、出接口。数据包来了,路由器查表,找到匹配条目,然后转发。
路由表怎么来的?两种方式:
- 直连路由:路由器自己接口上的网段,自动知道。
- 静态/动态路由:管理员手动配,或者通过路由协议学习。
避坑指南:我曾经遇到一个故障,某条链路断了,但路由表没更新,数据包还在往那条链路上发。查了半天,发现是静态路由配了,但没有做链路检测。从那以后,我养成了一个习惯:静态路由一定要配合track或BFD使用,否则就是“盲人骑瞎马”。
动态路由协议里,最常用的是OSPF和BGP。OSPF适合内部网络,BGP适合互联网。它们的核心算法都是最短路径优先,但衡量“最短”的指标不同——OSPF看带宽,BGP看策略。
你想想看,互联网上有几十万条路由,路由器怎么选?其实就一条原则:最长前缀匹配。谁的掩码越长,谁就更精确,就选谁。比如目标IP是192.168.1.5,路由表里有两条:192.168.1.0/24和192.168.1.0/25。后者掩码更长,优先匹配。
知识体系总览
下面这张图,是我自己梳理的网络层核心逻辑。你看一遍,心里就有谱了。
这张图把网络层拆成了五个模块。你从上往下看:IP协议是基础,地址分类是历史遗留,CIDR是优化方案,路由选择和最长前缀匹配是运行机制。五块连起来,就是网络层的全貌。
好了,这一章的内容就到这里。记住一句话:网络层不复杂,复杂的是你脑子里没建立起“分层”的概念。把IP地址、子网掩码、路由表这三样东西吃透,你就能搞定90%的网络问题。
可可精品资料库