为什么需要 TCP 和 IP?
-
问题背景
网络通信的目标是:两台计算机之间的应用能够可靠收发数据。
但这个目标被分解成两部分:- 数据如何从一台机器送到另一台机器? → 这是“寻址 + 路由”的问题。
- 数据如何保证可靠、完整、按顺序交付给应用? → 这是“传输保障”的问题。
-
解决思路
- 第一类问题由 IP 协议 负责(找到对方,送到对方机器)。
- 第二类问题由 TCP 协议 负责(保证传得稳、收得好)。
- 两者一结合,应用层就能“安心地”用。
IP 协议的作用(网络层核心)
IP = Internet Protocol,它是“寄信”的人:
-
负责寻址(找到目的地)
- 每个设备都有唯一 IP 地址,IP 就像“门牌号”。
- 通过路由器层层转发,数据能从北京的电脑跑到东京的服务器。
-
负责分片(把大包拆小包)
- 底层网络(以太网帧)能承载的数据有限,比如 1500 字节。
- 如果要发一个 5MB 的文件,IP 会帮忙拆成一片片小包。
-
不保证可靠
- IP 协议是“尽力而为”的,包可能丢、乱序、重复。
- 所以你不能只靠 IP,必须要更高层来兜底。
👉 形象理解:IP 就像 快递公司负责把快递从城市A送到城市B,但不保证中途不丢件。
三、TCP 协议的作用(传输层核心)
TCP = Transmission Control Protocol,它是“管家”:
-
建立连接(三次握手)
- 确认双方都准备好通信,才正式开始。
- 相当于打电话前先“喂喂喂,你能听见吗?”
-
可靠传输
- 丢包重传:如果包没收到,会重发。
- 顺序保证:收到的包会按顺序拼好。
- 数据校验:坏掉的包会丢弃并重传。
-
流量控制
- 防止发送方太快,接收方缓冲区爆掉。
- 就像老师讲课要看学生能不能跟上。
-
拥塞控制
- 如果网络太堵,TCP 会自动“减速”,避免雪崩式拥塞。
- 就像开车上高速,车多时要限速。
👉 形象理解:TCP 就像 快递管家负责保证快递安全送达、按顺序摆好、丢了就补发。
TCP 和 IP 的关系(强绑定组合)
-
IP 负责“去哪” (定位目标设备)。
-
TCP 负责“怎么传” (可靠交付应用)。
-
两者结合,就是 TCP/IP 协议族的核心骨架:
- IP 就像“把信送到对方的门口”;
- TCP 就像“确保信件完整交到屋里的人手上”。
一个实际场景
比如你访问 www.baidu.com:
-
你的浏览器发出 HTTP 请求 → 应用层。
-
HTTP 数据交给 TCP:
- TCP 拆成多个段(segment),打上序号。
-
TCP 段交给 IP:
- IP 加上源地址、目标地址,打包成数据包(packet)。
-
数据包交给链路层 → 网卡发出帧(frame)。
-
网络中转发 → 对方 IP 收到 → TCP 负责重组。
-
TCP 把完整的数据交给应用层的 HTTP。
👉 结果:你能在浏览器里看到完整网页。
总结
- IP:定位、寻址、传送,像“快递员送货上门”。
- TCP:保证可靠、顺序、完整,像“快递管家负责对账收货”。
- 两者配合:应用层不用操心底层细节,专心“做应用”。