5.2.1 TCP-IP协议簇概述
本课核心知识点整理
先建立一张协议地图
TCP/IP 协议簇的学习难点不是概念深,而是名字多。HTTP、FTP、SMTP、DNS、DHCP、TCP、UDP、IP、ICMP、ARP 都可能出现在选择题里。最稳的方法是把每个协议固定到“层次 + 功能 + 触发场景”上。
| 层次 | 这层的职责 | 常见协议 |
|---|---|---|
| 应用层 | 直接支撑具体网络服务 | HTTP、FTP、SMTP、POP3/IMAP、DNS、DHCP、Telnet |
| 传输层 | 在两个主机的进程之间传输数据 | TCP、UDP |
| 网际层 | 跨网络寻址、路由、差错报告、地址解析 | IP、ICMP、ARP |
| 网络接口层 | 把数据帧送入具体物理/链路网络 | Ethernet、PPP、MAC |
每层应该怎么理解
应用层:业务语义
应用层协议回答“用户在做什么事”。访问网页用 HTTP/HTTPS;传文件用 FTP;发邮件用 SMTP;收邮件用 POP3 或 IMAP;输入域名找 IP 用 DNS;自动拿 IP 地址用 DHCP。
题干常不会直接说协议名,而是说功能。看到“域名解析”选 DNS;看到“自动分配 IP 地址”选 DHCP;看到“超文本传输”选 HTTP。
传输层:进程到进程
传输层解决的是“目标主机上哪个进程来接收数据”,所以端口号是传输层关键词。TCP 和 UDP 的核心差异不是谁更高级,而是服务取舍不同:
| 协议 | 优势 | 劣势 | 适合场景 |
|---|---|---|---|
| TCP | 面向连接、可靠传输、顺序控制、重传机制 | 开销较大,实时性较弱 | 网页、文件、邮件等要求可靠的业务 |
| UDP | 无连接、开销小、速度快、实时性好 | 不保证可靠到达和顺序 | 音视频、直播、DNS 查询等可容忍少量丢包的业务 |
这种对比也体现了技术取舍:UDP 没有“替代”TCP,TCP 也没有“淘汰”UDP。它们服务于不同约束。可靠性越强,控制开销通常越大;实时性越强,往往要接受一定不可靠。
网际层:主机到主机、网络到网络
网际层解决“数据怎样跨网络找到目标主机”。IP 是核心;ICMP 用于差错报告和控制消息,ping 就依赖 ICMP;ARP 用于把 IP 地址解析为 MAC 地址,让分组能在下一跳链路上封装成帧。
| 协议 | 一句话功能 | 高频题干 |
|---|---|---|
| IP | 提供无连接、不可靠的数据报传送和路由寻址 | IP 地址、路由、分组转发 |
| ICMP | 传递差错报告和控制信息 | ping、目标不可达、超时 |
| ARP | 根据 IP 地址获取 MAC 地址 | IP 到 MAC 的地址解析 |
网络接口层:落到具体链路
这一层关注帧、MAC 地址、网卡、以太网、PPP 等。它不关心用户访问的是网页还是邮件,只关心在当前链路上怎样把帧交给下一跳。
协议识别表
| 题干关键词 | 选什么 | 不要混淆 |
|---|---|---|
| 超文本、网页、Web | HTTP/HTTPS | 不是 HTML;HTML 是文档标记语言 |
| 域名到 IP 地址 | DNS | 不是 ARP;ARP 是 IP 到 MAC |
| 自动分配 IP、网关、DNS 服务器 | DHCP | 不是 DNS |
| 发送电子邮件 | SMTP | 接收邮件常是 POP3/IMAP |
| 文件上传下载 | FTP | 不是 HTTP,除非题干说 Web 下载 |
| 可靠传输、三次握手 | TCP | 不是 UDP |
| 低开销、实时传输 | UDP | 不保证可靠性 |
| ping、回显请求 | ICMP | 不是 TCP 或 UDP |
| IP 地址解析为 MAC 地址 | ARP | 不是 DNS |
封装时协议怎样配合
以“浏览器访问 example.com”为例:
- 浏览器需要先把域名解析为 IP,使用 DNS。
- 得到 IP 后,浏览器按 HTTP/HTTPS 组织请求。
- 若使用可靠连接,传输层使用 TCP,并通过端口定位 Web 服务。
- 网际层使用 IP 决定目标主机和路由路径。
- 到下一跳链路前,需要通过 ARP 找到下一跳 MAC,再封装成帧。
这条链路解释了为什么同一道题里可能出现多个协议:它们不是互斥关系,而是在不同层次协同完成一次通信。
例题
负责把 IP 地址解析为 MAC 地址的协议是:
ping 命令主要依赖的协议是:
将域名解析为 IP 地址的协议是:
自查要点
- TCP/IP 四层各自负责什么?
- DNS 和 ARP 都叫“解析”,它们解析的对象有什么不同?
- TCP 与 UDP 的优劣势分别是什么,为什么两者会长期并存?
- 一次访问网页时,DNS、HTTP、TCP、IP、ARP 大致如何协同?