Appearance
第06章 TCP/IP 与互联网通信原理
前面几章,我们知道了"名字"(域名)、"指路"(DNS)和"房子"(服务器)。 但还有一个最根本的问题没解决:两个设备之间,数据到底是怎么"走"过去的? 这一章,我们走进互联网的交通系统。
一、本章目标
学完本章,你应该能够理解:
- 什么是网络协议
- 为什么互联网需要统一的规则
- TCP/IP 模型(四层)
- 数据如何从一个设备到达另一个设备
- TCP 与 UDP 的区别
- 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 对比
| 项目 | TCP | UDP |
|---|---|---|
| 速度 | 较慢(要握手、确认、重传) | 很快(发了就走) |
| 可靠性 | 高(丢包重传、保证顺序) | 低(不保证到达和顺序) |
| 连接 | 面向连接(先三次握手) | 无连接(直接发) |
| 应用场景 | 网页、邮件、文件下载 | 直播、游戏、语音通话 |
一句话:要可靠选 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 证书
- 数字签名
- 网络安全基础