Skip to content

第06章 TCP/IP 与互联网通信原理

前面几章,我们知道了"名字"(域名)、"指路"(DNS)和"房子"(服务器)。 但还有一个最根本的问题没解决:两个设备之间,数据到底是怎么"走"过去的? 这一章,我们走进互联网的交通系统。

一、本章目标

学完本章,你应该能够理解:

  1. 什么是网络协议
  2. 为什么互联网需要统一的规则
  3. TCP/IP 模型(四层)
  4. 数据如何从一个设备到达另一个设备
  5. TCP 与 UDP 的区别
  6. HTTP 与 HTTPS 的基础

二、为什么互联网需要协议

你可能会想:"两台电脑都连着网,为什么不发个消息过去就行了?"

问题在于:不同厂家、不同系统的设备,说话方式天差地别。 如果 A 电脑发过去的是一串它自己懂的格式,B 电脑完全可能"听不懂"。

网络协议(Protocol)就是一套通信规则。 大家都按同一套规则打包、发送、接收、解读,才能互相听懂。

用三个生活场景体会"规则"的必要性:

  • 两个人交流:你说中文、他说英文,不约定语言就鸡同鸭讲。
  • 邮局寄信:信要写收件人、地址、邮编,格式不对邮局拒收。这就是"寄信协议"。
  • 快递配送:包裹要贴单号、填地址、称重分拣,有一套标准流程才能送到。这就是"配送协议"。

互联网也是一样:全世界几十亿台设备,靠的就是共同遵守同一套"通信语言"——也就是下面要讲的 TCP/IP。

三、什么是 TCP/IP

TCP/IP 是互联网的共同语言。 几乎今天所有上网设备,都在用这套规则通信。

它把复杂的通信拆成四层,每层各管一摊事:

  • 应用层:直接面对用户程序(比如浏览器用 HTTP、邮件用 SMTP)。
  • 传输层:负责"数据怎么可靠/快速地送"(TCP 和 UDP 在这里)。
  • 网络层:负责"数据发给谁、走哪条路"(IP 地址在这里)。
  • 网络接口层:负责在具体的物理线路上(网线、Wi-Fi)把信号传出去。

我们用"寄快递全过程"对应这四层:

你准备好要寄的东西(用户数据)

应用层:你写好包裹内容、填好收件人(对应浏览器生成请求)

传输层:快递公司决定用"签收快递"还是"普通直送"(TCP / UDP)

网络层:贴上目的地门牌号,规划路由(IP 地址)

网络接口层:装车、上路的物理运输(网线 / Wi-Fi 信号)

        到达互联网另一端的收件人

ASCII 简化图:

    用户数据

    应用层

    传输层

    网络层

  网络接口层

     互联网

四、数据在网络中如何传输

当用户打开一个网站,背后发生的是这样一条链:

   浏览器(你想看网页)

   DNS 查询(问出服务器 IP)

   建立连接(和服务器握手)

   发送请求("请把首页给我")

   服务器处理(找文件、拼页面)

   返回数据(把网页内容发回来)

   浏览器显示(你看到页面)

这里有个关键事实,很多人不知道:

你看到的"一个完整网页",在网络上并不是"整块"发过来的,而是被拆成很多个小小的数据包,分批次送达,到目的地再拼起来。

就像一本书不是用一个大箱子一次寄到,而是被拆成一摞小包裹,分别发走,收件人收到后再按页码装订成册。

五、什么是数据包

数据包(Packet) 是网络传输的最小单位。每一个数据包大致由三部分组成:

  • 包头:写明"从哪来、到哪去、这是第几个包裹、总共几个"(相当于快递单)。
  • 数据内容:真正要传的信息(网页片段、一段语音等)。
  • 校验信息:用于检查数据在路上有没有损坏(到了拆包时核对一下有没有破损)。

生活比喻

  • 数据包 = 快递包裹
  • 包头 = 物流单号 + 收件地址
  • 校验信息 = 包裹封条 / 防拆标识

为什么大文件要拆分?

一条网络线路同时可能跑着成千上万人的数据。如果谁都把一整个几 GB 的文件"霸占"整条路一次发完,别人就全堵死了。拆成小包,大家轮流上路,谁都不用等太久——这叫"分组交换",是互联网能同时服务几十亿人的秘密。

六、IP 地址负责什么

IP 地址解决一个问题:"数据发送给谁。"

每个上网设备在网络里都有一个 IP 地址,就像每家每户的门牌号

一次通信里有两方:

  • 源 IP:发件人地址(你的电脑)。
  • 目标 IP:收件人地址(服务器)。

每个数据包的"包头"里都写着这两个地址,路由器才能像邮差一样,一跳一跳把包裹送到正确的门牌号前。

回忆一下第 02、03、04 章:DNS 把"域名"翻译成的,正是这里说的目标 IP。所以 IP 就是互联网世界的门牌号码。

七、TCP 协议

TCP 解决一个问题:"数据可靠到达。"

如果说 UDP 是"扔过去就算",那 TCP 是"必须签收"的可靠快递。它靠四样机制保证可靠:

1. 三次握手(建立连接)

在正式传数据前,双方要先"确认彼此在线、能听懂":

A:你好,我在,能听清吗?(第一次)
B:听清了,我也在,你能听清我吗?(第二次)
A:也能听清,那我们开始传吧。(第三次)

为什么需要三次确认? 两次不够稳(可能有一方其实听不清却误以为连上了),三次刚好能确认"双方收发都正常",又不至于啰嗦。

2. 数据确认

每收到一个数据包,收方会回一个"收到了"的确认。发方没收到确认,就知道这个包可能丢了。

3. 数据重传

如果某个包丢了或坏了,发方会重新发一次,直到对方确认收到。

4. 数据排序

包裹可能"先发后到"(有的走得快、有的绕了远路)。TCP 会按包头里的序号,把它们重新排好顺序再交给上层。

生活比喻——可靠快递签收流程:

快递员每送一个包裹,都让你签字确认;少了一个,他回去补送;包裹到了你按编号整理成完整订单。这就是 TCP。

八、UDP 协议

UDP 特点

  • :不用握手、不用确认,发了就走。
  • 简单:包头小,开销低。
  • 不保证可靠:丢了不重传,到了不排序。

典型应用

  • 视频直播:偶尔丢几帧画面,观众几乎无感,但绝不能卡——要快。
  • 游戏:操作指令要实时同步,晚到 0.1 秒都比丢失更糟糕。
  • 语音聊天:实时通话,掉一句"喂?"比等重传更自然。

生活比喻

  • UDP = 现场直播喊话。主播对着广场大喊,听到的人自然听到,没听清的也不会让主播倒回去重喊——但信息瞬间就传出去了。
  • TCP = 普通签收快递。慢一点没关系,但必须完整、正确地到你手上。

九、TCP 与 UDP 对比

项目TCPUDP
速度较慢(要握手、确认、重传)很快(发了就走)
可靠性高(丢包重传、保证顺序)低(不保证到达和顺序)
连接面向连接(先三次握手)无连接(直接发)
应用场景网页、邮件、文件下载直播、游戏、语音通话

一句话:要可靠选 TCP,要速度选 UDP。

十、HTTP 协议

HTTP 是浏览器和服务器之间的"交流语言"。 你每次打开网页,浏览器都在用 HTTP 和服务器对话。

HTTP 请求(浏览器发问)

  • GET:"请把这个页面的内容给我"(最常见的"看页面"请求)。
  • POST:"这是我要提交的数据"(比如你填表单、登录时发送的信息)。

HTTP 响应(服务器回答) 带一个状态码,告诉你结果:

  • 200:成功,东西给你了。
  • 404:找不到,你要的页面不存在("这户人家搬走了")。
  • 500:服务器内部出错("物业系统崩了,查不了")。

生活比喻——点餐系统:

你(浏览器)对餐厅(服务器)说 GET:"来份红烧肉"(请求)。 餐厅回 200:"给您,趁热吃"(成功); 回 404:"本店没这道菜"(页面不存在); 回 500:"厨房着火了做不了"(服务器出错)。

十一、HTTPS 为什么更安全

HTTPS = HTTP + TLS 加密。

普通 HTTP 像是在大街上大声念你的银行账号,谁都能听。HTTPS 在 HTTP 外面套了一层加密,解决三大风险:

  • 偷看:中间人截获数据也看不懂(内容是密文)。
  • 篡改:数据被改了,接收方能发现(校验失败)。
  • 冒充:对方拿不出合法身份证书,你就知道是假网站。

生活比喻

  • HTTP = 明信片。邮递员和路上任何人都能直接读到上面写什么。
  • HTTPS = 密封的加密信封。只有收件人用钥匙能拆开看,途中谁拆都只是一团乱码。

(下一章我们会专门讲加密本身是怎么实现的。)

十二、为什么理解这些很重要

你可能会问:"我是普通用户,懂这些干啥?"其实它和你每天都在用的东西直接相关:

  • VPN / 代理 / 小火箭:本质都是"让我的数据包改道走另一台服务器",理解 TCP/IP 才知道流量去了哪。
  • Cloudflare:第 04 章讲过,它在你和目标服务器之间加了一层——现在你明白,它其实是在"传输层/网络层"做了中转与保护。
  • VPS:你租的那台"虚拟房间",正是接收这些数据包并回应 HTTP 请求的终点。
  • 网站访问速度:卡,可能是因为 TCP 握手慢、丢包重传多,或路由绕远路。
  • 网络安全:知道了"数据会被拆分、会被中间节点经手",你才真正明白为什么需要 HTTPS、需要可信的 DNS。

一句话:不懂协议,你看到的互联网只是一堆能用的按钮;懂了协议,你才看清背后那张精密运转的交通网。

十三、本章总结

把整条链路再串一遍,从你这个"用户"出发,一路到"服务器":

    用户

  应用协议(HTTP / HTTPS)

  传输层(TCP / UDP)

  网络层(IP,门牌号)

    网络(道路与邮局)

   服务器(房子)

你现在已经掌握了互联网的"交通法则":靠协议统一语言,靠 IP 定门牌,靠 TCP/UDP 决定送达方式,靠 HTTP/HTTPS 完成具体应用对话。

十四、下一章预告

👉 前往 第07章 网络安全基础与加密原理

下一章标题:第07章 网络安全基础与加密原理

预告内容:

  • 为什么需要加密
  • 对称加密
  • 非对称加密
  • HTTPS 证书
  • 数字签名
  • 网络安全基础