认识 IP 协议与网络层定位
IP 协议是什么
想象你寄一封平信给远方的朋友。你把信投进邮筒,邮局会尽力帮你送达,但不保证一定能送到——可能丢件,可能延迟,也可能按错地址送到别人家。IP(Internet Protocol,网际协议)干的就是这件事:尽力而为地把数据包从源主机送到目的主机。
IP 协议工作在 TCP/IP 模型的网络层(OSI 第三层),是整个互联网的"邮递系统"。它不关心信里写了什么(那是应用层的事),也不保证信件按顺序到达(那是传输层 TCP 的事),它只负责寻址和路由——把每个数据包(称为 IP 数据报)贴上"收件地址"和"寄件地址",然后交给下一跳路由器转发。
网络层的核心角色:承上启下
用一家餐厅来比喻整个协议栈:
| 层级 | 餐厅角色 | 网络对应 |
|---|---|---|
| 应用层 | 顾客点菜 | HTTP、FTP、DNS |
| 传输层 | 服务员打包 | TCP(保证送达)、UDP(快速上菜) |
| 网络层 | 外卖调度中心 | IP(决定走哪条路) |
| 链路层 | 骑手骑车送餐 | 以太网、Wi-Fi、PPP |
网络层"承上":接收来自 TCP 或 UDP 的数据段,封装成 IP 数据报;"启下":把数据报交给以太网或 Wi-Fi 驱动,变成电信号或无线电波发出去。
上图展示了 TCP/IP 五层模型(部分教材将链路层和物理层合并为网络接口层)。网络层处于承上启下的核心位置,上接传输层的数据段,下交给链路层封装成帧。
IP 协议的三大设计哲学
1. 无连接(Connectionless)
你寄了 3 封信给同一个人,邮局不会把它们绑在一起,每封信独立处理。IP 也一样:每个数据报独立路由,路由器不维护"这条连接走到哪了"的状态。这意味着同一个视频流的 100 个数据包,可能走 100 条不同的路径到达。
2. 不可靠(Unreliable)
IP 不保证送达、不保证顺序、不保证不重复。就像平信没有回执,丢了就是丢了。如果应用需要可靠性,请找 TCP;如果不需要,用 UDP 更快。
3. 尽力而为(Best-Effort)
路由器会"尽力"转发每个包,但如果队列满了(拥塞)、TTL 耗尽了、校验和错了,路由器会直接丢弃,不会通知发送方(除非配合 ICMP)。
数据报方式:每个包都是"独行侠"
IP 采用**数据报(Datagram)**方式工作。你可以把每个 IP 数据报想象成一个独立的快递包裹:
- 每个包裹有自己的收件地址(目的 IP)和寄件地址(源 IP)
- 包裹之间没有编号关联,先到先拆
- 中间站点(路由器)只看地址标签,不看历史记录
生活例子:你在淘宝上买了 3 件衣服,商家分了 3 个快递发出。它们可能:
- 走不同的快递公司(不同路由路径)
- 到达顺序颠倒(后发的先到)
- 其中一个丢件(IP 不保证可靠)
这就是 IP 数据报的真实写照。
广播域与冲突域:IP 层的视角
冲突域(Collision Domain)
想象一条单车道马路,两辆车同时开就会撞。早期的集线器(Hub)把所有设备连在同一条"马路"上,任何时刻只能有一台设备发数据。交换机(Switch)出现后,每个端口都是独立车道,冲突域被缩小到单个端口。
广播域(Broadcast Domain)
想象一个大喇叭在小区里广播:"谁是 192.168.1.100?"整个小区都能听见。ARP 请求就是这样广播的。路由器是广播域的边界——广播包不会穿过路由器到达另一个小区(子网)。
| 设备 | 分割冲突域 | 分割广播域 |
|---|---|---|
| 集线器 Hub | ❌ | ❌ |
| 交换机 Switch | ✅ | ❌ |
| 路由器 Router | ✅ | ✅ |
关键结论:IP 地址的设计天然与广播域绑定。同一个子网内的主机可以直接 ARP 解析通信;跨子网就必须找网关(路由器)转发。
上图展示了路由器分割广播域的核心概念。左侧广播域 A 内的 ARP 广播不会穿过路由器到达右侧广播域 B,跨网段通信必须经过路由器转发。
本篇小结
- IP 是网络层核心协议,负责寻址和路由
- 三大特点:无连接、不可靠、尽力而为
- 每个数据报独立处理,路由器不维护连接状态
- 路由器分割广播域,交换机分割冲突域
动手实践
- 打开命令提示符,输入
ipconfig /all(Windows)或ip addr(Linux),观察你的 IPv4 地址、子网掩码、默认网关 - 思考:如果你的 IP 是
192.168.1.50,网关是192.168.1.1,当你访问8.8.8.8时,数据包会先发给谁?