Skip to content
难度基础(★)
建议时长45分钟

5.2 TCP/IP协议簇 (4课时)

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

协议簇不是一个协议

TCP/IP 协议簇指的是互联网中一组相互配合的协议,而不是 TCP 和 IP 两个协议的简单相加。它解决的问题是:应用数据怎样被拆分、寻址、路由、传输、到达目标主机,并最终交给目标应用进程。

OSI 七层更像教学和标准化参考模型,层次划分细;TCP/IP 更像工程世界真正落地的协议体系。课堂里提到,实践中常把七层压缩成四层使用,原因不是表示层、会话层“不存在”,而是这些能力通常被合并进应用层或由具体应用库处理。

从 OSI 到 TCP/IP

OSI 七层TCP/IP 四层为什么这样合并
应用层、表示层、会话层应用层应用协议通常同时处理业务、格式、会话控制
传输层传输层仍需独立解决进程到进程通信
网络层网际层仍需独立解决跨网络寻址与路由
数据链路层、物理层网络接口层具体接入技术差异大,统一抽象为链路接入

这就是为什么考试里一方面会问 OSI 七层的设备和职责,另一方面又大量考 TCP/IP 协议的功能归属。前者帮你定位层次,后者帮你处理真实协议。

四层各自解决什么问题

TCP/IP 层次核心问题高频协议或技术记忆方式
应用层用户到底要做什么网络业务HTTP、FTP、SMTP、POP3、DNS、DHCP网页、文件、邮件、域名、自动配置
传输层数据交给目标主机上的哪个进程,是否可靠TCP、UDP端口、连接、可靠性、效率
网际层数据怎样跨网络到达目标主机IP、ICMP、ARPIP 寻址、路由、差错报告、地址解析
网络接口层数据怎样进入具体链路Ethernet、PPP、MAC帧、网卡、链路介质

学习协议时不要只背英文缩写。更稳的记忆方式是“三连问”:它在哪一层?解决什么问题?题干会怎样描述它?

封装视角下的协议协作

一次访问网页大致可以这样理解:

text
HTTP 说明“我要请求哪个页面”
TCP 说明“可靠地把数据交给对方 80/443 等端口”
IP 说明“目标主机的 IP 地址和路由方向”
以太网/MAC 说明“下一跳网卡怎么收这个帧”

接收方反过来解析:网卡收到帧,交给 IP;IP 确认目标主机,交给 TCP;TCP 按端口交给 Web 服务;Web 服务再按 HTTP 解释请求。

应用层HTTP/DNS 等传输层TCP/UDP + 端口网际层IP/ICMP/ARP接口层帧/MAC发送端向下封装;接收端向上解封装

按功能记协议

功能场景常见协议层次
访问网页、传输超文本HTTP/HTTPS应用层
上传下载文件FTP应用层
发送邮件SMTP应用层
接收邮件POP3/IMAP应用层
域名转换为 IP 地址DNS应用层
自动分配 IP 地址等网络参数DHCP应用层
可靠传输TCP传输层
低开销、实时性优先传输UDP传输层
主机寻址和路由IP网际层
差错报告、pingICMP网际层
IP 地址到 MAC 地址ARP网际层/链路协作

ARP 经常让人困惑:它解决的是 IP 地址到 MAC 地址的映射,服务于网际层到链路层的衔接。考试中通常把它放在 TCP/IP 网际层相关协议里记。

例题

单选
下列属于 TCP/IP 应用层协议的是:
单选
TCP/IP 常用四层模型而不是完全照搬 OSI 七层,主要原因是:

自查要点

  1. 为什么说 TCP/IP 是协议簇,而不是单个协议?
  2. OSI 七层和 TCP/IP 四层如何对应?
  3. DNS、DHCP、TCP、UDP、IP、ICMP、ARP 分别解决什么问题?
  4. 封装时 HTTP、TCP、IP、MAC 信息大致按什么顺序加入?