咱们使用最简单的语言来攻克HCIP里的核心基础------传输层协议。这一层是整个网络的"物流调度中心",负责数据从"你家门口"到"对方家门口"的可靠传递。传输层就是网络世界的"物流调度中心",它有两个王牌快递员:TCP(可靠快递)和UDP(极速闪送)。一个保证"包裹必达且顺序不乱",一个追求"越快越好,丢件不管"。本博客将先用比喻引入,然后分别介绍TCP和UDP的特点,再对比总结,最后点出HCIP考试的重点。
文章目录
-
- 一、传输层是干啥的?------快递调度中心
- [二、两大主角------TCP 与 UDP](#二、两大主角——TCP 与 UDP)
-
- [1、TCP 的核心特性](#1、TCP 的核心特性)
- [2、 TCP 的"三次握手"------建立连接的三通电话](#2、 TCP 的“三次握手”——建立连接的三通电话)
- [3、 TCP 的"三次握手"------建立连接的三通电话](#3、 TCP 的“三次握手”——建立连接的三通电话)
- [3、UDP 的核心特性](#3、UDP 的核心特性)
- [4、UDP 的应用场景------什么时候用"闪送"?](#4、UDP 的应用场景——什么时候用“闪送”?)
- 三、端口号------包裹上的"收货人姓名"
-
- 1、端口号的作用
- [2、 端口号范围](#2、 端口号范围)
- 3、端口号的配合使用
- [四、TCP vs UDP------终极对决](#四、TCP vs UDP——终极对决)
- [五、HCIP 核心考点](#五、HCIP 核心考点)
-
- [1、TCP 考点](#1、TCP 考点)
-
- (1)三次握手、四次挥手
- (2)滑动窗口机制
- (3)拥塞控制算法
- [(4)TCP 头部字段](#(4)TCP 头部字段)
- [2、UDP 考点](#2、UDP 考点)
-
- [(1)UDP 头部结构](#(1)UDP 头部结构)
- [(2)UDP 校验和](#(2)UDP 校验和)
- [(3)UDP 的应用层协议](#(3)UDP 的应用层协议)
- 3、端口号考点
- 六、总结
一、传输层是干啥的?------快递调度中心
1、传输层作用
想象一下,你是一个大公司的发货主管:
- 应用层:各部门把要寄的包裹(数据)交给你。
- 传输层:就是你的调度中心,负责把包裹分拣、编号、打包,然后交给下面的"运输队"(网络层)去送。
- 网络层:运输队只负责把包裹从"城市A"送到"城市B",不关心包裹里面是什么,也不关心是不是完整到达。
2、传输层的核心职责
(1)分段与重组
大包裹太大,运输队不让发?切成小段,到对方再拼回去。
(2)端口寻址
包裹送到对方家,是该给"客厅的电视"(某应用)还是"书房的书架"(另一应用)?用端口号来区分。
(3)可靠传输
有些包裹不能丢(比如银行转账),必须确认收到;有些可以丢(比如视频直播),丢了就丢了。
二、两大主角------TCP 与 UDP
主角一:TCP------靠谱的"顺丰特快"
一句话比喻:TCP 就像顺丰快递,提供"保价、签收、顺序送达"服务,但速度慢一点,成本高一点。
1、TCP 的核心特性
| 特性 | 大白话解释 |
|---|---|
| 面向连接 | 发货前先打电话确认:"你在吗?我要给你发货了!"(三次握手) |
| 可靠传输 | 每件包裹都要对方签收(确认应答),没签收就重发。 |
| 顺序保证 | 包裹按编号发送,即使路上顺序乱了,到目的地也会按顺序拼好。 |
| 流量控制 | "你收件箱满了?那我慢点发!"(滑动窗口机制) |
| 拥塞控制 | "高速堵车了?我主动减速,别把路堵死!" |

2、 TCP 的"三次握手"------建立连接的三通电话
bash
你(客户端) 对方(服务器)
| |
|---- SYN(我在吗?) --------> |
| |
|<--- SYN+ACK(我在,你在吗?) --|
| |
|---- ACK(好,开始吧!) ----> |
| |
|======= 开始传数据 ======== |


为什么不是两次握手?
如果是两次,对方发"我在"之后就直接开始传数据,但对方可能只是"刚好路过"接了个电话,实际上没准备好收件。三次握手确保双方都"在线且准备好"。

3、 TCP 的"三次握手"------建立连接的三通电话
bash
你(客户端) 对方(服务器)
| |
|---- FIN(我要挂了) -------> |
| |
|<--- ACK(好的,我知道了) ---- |
| |
|<--- FIN(我也要挂了) -------- |
| |
|---- ACK(好,拜拜) --------> |
| |
|======= 连接关闭 ========== |
为什么是四次?
因为双方可能还有没传完的数据。一方说"我要挂了",另一方说"等一下,我还有最后几句话没说完"。等双方都确认"没话说了",才真正挂断。

主角二:UDP------极速的"闪送跑腿"
一句话比喻:UDP 就像同城闪送,不管签收、不保顺序、不重发,只追求一个字------"快"!
3、UDP 的核心特性
| 特性 | 大白话解释 |
|---|---|
| 无连接 | 不打电话确认,直接发包裹:"我扔门口了,你自己看着办!" |
| 不可靠 | 不签收、不重发,丢件了也不管。 |
| 无序 | 包裹顺序乱了,到目的地也不给你排好。 |
| 无流控/拥塞控制 | 不管对方收件箱满不满,一股脑全发,堵车也不减速。 |
| 轻量级 | 头部只有8字节(TCP要20字节),效率极高。 |

4、UDP 的应用场景------什么时候用"闪送"?
视频直播/在线会议:画面丢几帧没关系,卡顿才要命!宁可丢包也要实时。
DNS 查询:问"百度IP是多少?"没回应就再问一次,简单粗暴。
游戏实时数据:CS里丢一个"我开枪了"的包,不可能等重发,直接补一发。
广播/组播:一个包发所有人,UDP天然支持,TCP不行。


三、端口号------包裹上的"收货人姓名"
一句话比喻:IP地址是"小区门牌号",端口号就是"家里谁收快递"。
1、端口号的作用
当数据包送到目标服务器(IP地址)后,操作系统需要知道:这个数据是给 Web 服务(80端口)的,还是给邮件服务(25端口)的,还是给某个游戏程序的?
端口号就是用来区分不同应用的身份标识。
2、 端口号范围
| 范围 | 名称 | 说明 |
|---|---|---|
| 0-1023 | 知名端口 | 系统预留,给常见服务。如 HTTP=80,HTTPS=443,FTP=21,SSH=22,DNS=53 |
| 1024-49151 | 注册端口 | 给企业或软件厂商注册使用。如 MySQL=3306,远程桌面=3389 |
| 49152-65535 | 动态/私有端口 | 客户端临时使用,用完就释放。比如你浏览器访问网页,电脑随机分配一个高位端口 |
3、端口号的配合使用
服务器端:监听固定端口(如 Web 服务器监听 80 端口),等着别人来连。
客户端:发起连接时,操作系统随机分配一个临时端口(比如 54321),用于这次通信,结束后释放。
四、TCP vs UDP------终极对决
| 对比项 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接(先握手) | 无连接(直接发) |
| 可靠性 | 确认+重传,可靠 | 不确认不重传,丢包不管 |
| 顺序保证 | 按序到达 | 可能乱序 |
| 流量控制 | 有(滑动窗口) | 无 |
| 拥塞控制 | 有(慢启动、拥塞避免) | 无 |
| 头部开销 | 20字节 | 8字节 |
| 速度 | 较慢 | 极快 |
| 适用场景 | HTTP、FTP、SSH、邮件、数据库 | 视频直播、VoIP、DNS、游戏、广播 |
五、HCIP 核心考点
1、TCP 考点
(1)三次握手、四次挥手
状态变迁图(SYN_SENT、ESTABLISHED、TIME_WAIT 等)必考!
(2)滑动窗口机制
如何实现流量控制?
(3)拥塞控制算法
慢启动、拥塞避免、快重传、快恢复。
(4)TCP 头部字段
序列号、确认号、标志位(SYN、ACK、FIN、RST)的作用。
2、UDP 考点
(1)UDP 头部结构
源端口、目标端口、长度、校验和。
(2)UDP 校验和
虽然是"不可靠",但校验和还是要算的,只是不重传。
(3)UDP 的应用层协议
DNS、TFTP、SNMP、RTP 等。
3、端口号考点
(1)常见知名端口
20/21(FTP)、22(SSH)、23(Telnet)、25(SMTP)、53(DNS)、80(HTTP)、443(HTTPS)、3389(RDP)。
(2)端口号与协议的关系
TCP 80 和 UDP 80 是两回事,可以同时存在
六、总结
传输层,两兄弟,TCP 和 UDP:
TCP 像顺丰,可靠慢速要签收;
UDP 像闪送,飞快丢件不管收。
端口号,分应用,知名注册动态三档走。
三次握手建连接,四次挥手好分手。

备考心法:
- 把 TCP 的"三次握手"画三遍,状态图背下来。
- 记住常见端口号,考试时能快速反应。
- 理解"什么时候用 TCP,什么时候用 UDP",这是面试必问题。