🌐 第三章 网络间的通用语言TCP/IP
📄 一句话概括

同一块数据,在不同层有不同的小名:应用层叫信息,传输层叫数据段,网际层叫数据包,网络接口层叫数据帧。名字不同,不是东西换了,而是每往下走一层就多套一层信封。记住这条公式:称谓 = 在哪一层 + 已经穿到哪一步。

一、为什么会有四个名字

3.4 讲了"逐层加信封"——每加一层,这个东西的形态确实变了(身上多了个头)。既然形态变了,就得有个新名字,否则说不清"现在说的是哪一层的东西"。

打个比方:同一个人,在家叫"爸爸"、在单位叫"王工"、在球队叫"老王"——人没变,场合变了。

再打个比方(快递版):你写的信 → 装袋贴上单子的包裹 → 分拣中心的一件 → 卡车上的货。四样称呼,一趟东西。

二、四层的正式称谓

层 这一层新套上的信封 这一层管它叫什么
应用层 —(业务内容本身) 信息 / 报文(Message)
传输层 TCP 头:端口、序号、窗口 数据段(Segment)
网际层 IP 头:源 / 目标 IP 地址 数据包(Packet)
网络接口层 帧头 + 帧尾 数据帧(Frame)

三个容易漏掉的细节:

  1. 只有数据帧带"尾"——帧尾里装着校验值(收 3.4 的"校验和"),链路层收完先核对一遍,看看信号有没有在路上被噪声改坏。上面三层都只有头。
  2. UDP 的产物不叫"段",叫数据报(Datagram);只有 TCP 才叫数据段。日常口语里不管三七二十一都叫"数据包"——那是俗称,不是学名。
  3. "数据包"是通稿词:抓包软件、报错提示里的"丢包",说的多是 IP 层的包,或者干脆泛称整个东西。

三、名字怎么变来变去

发送方向(往下走,一层层穿):

信息 → 加 TCP 头 → 数据段 → 加 IP 头 → 数据包 → 加帧头帧尾 → 数据帧 → 上路

接收方向(往上走,一层层脱):

数据帧 → 脱帧头帧尾 → 数据包 → 脱 IP 头 → 数据段 → 脱 TCP 头 → 信息

所以:你最终读到的那段文字,是被脱掉三层信封之后剩下的东西。

顺带把设备的分工也对上(收 2.2、1.6):

谁在动手 它处理的是 名字
交换机、无线 AP 这一段链路 数据帧
路由器 跨网转发 数据包
你电脑上的程序 业务内容 信息

四、为什么要记住这些名字(实用价值)

  1. 看抓包软件:Wireshark 里展开任意一行,从下往上正好是 Frame → Ethernet II → IP → TCP → HTTP,用的就是这几个名字
  2. 看限制和报错:
  3. MTU 是帧的体重上限(3.4 的 Demo18 摸的就是它)
  4. "丢包"发生在包这一级,"丢帧"是链路层的事
  5. 跟人对齐:说"网络丢包"和说"交换机丢帧",排查方向完全不是一回事——用对名字,才能问对问题
💡 一句话区分的土办法

听到名字里带"帧",就往链路层(交换机)想;带"包",就往网际层(路由器)想;带"段",就往传输层(TCP)想;只说是"信息/报文",那就是应用层在说话的当事人。

五、动手 Demo20:在真实工具里把这几个名字认出来

  1. 打开命令行(Win+R → cmd)

  2. 亲眼看"数据段"这个词在用: netstat -s -p tcp

  3. 输出里有「接收的分段」「发送的分段」——这个"分段"就是 数据段(Segment) 的中文译法
  4. 也就是说:本节讲的学名,在你电脑自带的工具里天天出现

  5. 亲眼看"数据包"这个词在用: netstat -e

  6. 里面有「单播数据包」「非单播数据包」——这就是数据包(Packet)

  7. 30 秒实验:先跑一遍 netstat -s -p tcp,记下"发送的分段"的数字;刷新几个网页;再跑一遍

  8. 数字明显往上走 = 你刚才那些网页请求,就是一段一段(数据段)发出去的
  9. 顺带观察一个规律:分段数和数据包数通常差不多——因为一个 TCP 段一般正好装进一个 IP 包;一旦某个大包被分片(3.4 的 Demo18),两个数字就开始拉开

  10. 想一次看齐四个名字(可选,但值得):装一个 Wireshark(免费开源)

  11. 随便抓一次包,展开列表里任意一行,从下往上依次是:Frame(数据帧)→ Ethernet II → IP(数据包)→ TCP(数据段)→ HTTP(信息)
  12. 教材上那四个名字,就是这五行。 眼见为实,以后再看任何网络资料都不会糊涂
❓ 自测一下
  1. 同一块数据,四层分别叫什么?
  2. 为什么会有四个名字?它们是四样不同的东西吗?
  3. 四层里哪一个带着"尾"?尾巴里装的是什么?
  4. 为什么说"丢包"和"丢帧"是两回事?

答案: ① 应用层 = 信息(报文)、传输层 = 数据段、网际层 = 数据包、网络接口层 = 数据帧。 ② 是同一个东西在不同封装阶段的名字,不是四样东西;名字跟着"穿到第几层"变。 ③ 数据帧。帧尾里是校验值(FCS),用来发现数据在链路上传输时有没有被改坏。 ④ 名字不同就意味着层不同:丢"包"是网际层(IP)层面的事,丢"帧"是链路层的事——排查的设备和方向完全不同,用对名字才问得对问题。

常见误区:

  1. ❌ "信息、数据段、数据包、数据帧是四种不同的东西" → 是同一个东西在四个阶段的名字
  2. ❌ "数据包和数据帧只是叫法不同" → 层不同。数据帧多了帧头 + 帧尾,是链路层的产物
  3. ❌ "TCP 和 UDP 的产物都叫数据段" → TCP 的叫数据段(Segment),UDP 的叫数据报(Datagram)
  4. ❌ "每一层都只加头" → 数据帧还多一个尾(校验),是唯一的例外
  5. ❌ "抓包工具抓到的是数据包" → Wireshark 抓到的是帧,再逐层解开给你看

六、下一步学什么

相关笔记