🔌 第三章 从网线到网络设备
📄 一句话概括

同一条连接的多个包,各走各的路、各排各的队——顺序可能乱,路由可能不同;拼回原样是 TCP 序号的活。

📝 本节和前面几节的关系

第二章包出了网卡;本篇从【线缆上的规矩】开始,第三章正式上路。

一、独立的意义

每个包自带完整头部(目的地、序号),不需要队伍, 谁先到线谁先走——这就是包交换的基本性格。

二、乱序谁负责

线路上乱序了不要紧——收方按 TCP 序号排序(2.3.3); 这正是【独立性】安全落地的原因:上层兜底。

三、动手 Demo:每个包独立旅行

三个包各走各的:

for i, road in [(1, '路线 A'), (2, '路线 B'), (3, '路线 C')]:
    print('包 %d [172.20.1.1] ---- %s' % (i, road))

实跑输出:

--------------------------------------------------------------------
每个包独立旅行
--------------------------------------------------------------------
  同一条连接的多个包,走法互不相干:

    包 1 [172.20.1.1] ---- 先走,路线 A
    包 2 [172.20.1.1] ---- 后走,路线 B(可能不同路!)
    包 3 [172.20.1.1] ---- 再走,路线 C

  原因:每个包各自选路、各自排队,谁快谁先到——
  顺序乱了由 TCP 的序号负责拼回去(2.3.3 的对账)。

【包交换】对比【电路交换】:电话是电路交换, 接通后独占一条道——上网是包交换,人人分时共享。

30 秒实验

  1. 说出包交换与电话(电路交换)的三个区别。
  2. 想想为什么视频直播仍能容忍乱序(有缓冲)。
  3. 用 Wireshark 看同一连接的包序号是否连续排列。

常见误区

  1. 以为同一连接走同一条路——每个包独立选路。
  2. 以为乱序是故障——是常态,上层负责恢复。
自测三问(点开对答案) 1. 包为什么能独立传输? —— 每个包自带完整头部信息。 2. 乱序由谁恢复? —— TCP 序号机制。 3. 包交换与电路交换的区别是什么? —— 分时共享 vs 独占通路。

相关笔记