飞翔飞翔
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • 学习路径
  • IP协议

    • 认识 IP 协议与网络层定位
    • IPv4 编址体系与分类地址
    • CIDR 与子网划分实战
    • IPv6 编址体系
    • ARP 协议详解
    • NDP 协议详解
    • IGMP 与 MLD 组播侦听发现
    • VRRP 与网关冗余
    • IPv4 数据报首部解析
    • IPv6 数据报与扩展首部
    • IPsec 安全扩展
    • 分片、MTU 与路径发现
    • ICMP 与 Traceroute 原理
    • 路由基础与转发流水线
    • 动态路由协议
    • NAT 网络地址转换
    • DHCP 与自动配置
    • Wireshark 与命令行工具
    • IPv6 过渡技术
    • IP 协议栈排障与攻击防御
  • TCP协议

    • 认识 TCP 协议与传输层定位
    • TCP 报文段首部解析
    • 三次握手与连接建立
    • 四次挥手与连接释放
    • TCP 有限状态机
    • 序列号与确认机制
    • 超时重传与 RTO 计算
    • 滑动窗口与流量控制
    • 拥塞控制基础
    • 现代拥塞控制算法
    • TCP 选项与扩展
    • TCP 性能调优与内核参数
    • Nagle 算法与糊涂窗口综合征
    • TCP 定时器与 Keep-Alive 机制
    • TCP 安全与攻击防御
    • TCP 与上层/下层交互
    • TCP 综合实践与排障

认识 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 是网络层核心协议,负责寻址和路由
  • 三大特点:无连接、不可靠、尽力而为
  • 每个数据报独立处理,路由器不维护连接状态
  • 路由器分割广播域,交换机分割冲突域

动手实践

  1. 打开命令提示符,输入 ipconfig /all(Windows)或 ip addr(Linux),观察你的 IPv4 地址、子网掩码、默认网关
  2. 思考:如果你的 IP 是 192.168.1.50,网关是 192.168.1.1,当你访问 8.8.8.8 时,数据包会先发给谁?
下一页
IPv4 编址体系与分类地址