核心结论是 TCP 协议属于 TCPIP 模型传输层协议,核心功能是提供面向连接可靠的端到端字节流传输,主要包含建立连接 可靠传输 序号确认 重传机制 流量控制 拥塞控制 连接释放这几项能力,和 UDP 无连接不可靠传输有本质区别,网页 HTTP HTTPS 文件传输 FTP 邮件 SMTP 这类对数据完整性要求高的业务,都会选用 TCP 协议,TCP 通过一系列机制弥补 IP 网络本身丢包 乱序 重复包的缺陷,把不可靠的 IP 网络改造成为可靠的数据通道,理解这些功能,是学习网络排错 抓包分析的基础。
各项核心功能详解
面向连接
通信之前必须通过三次握手建立连接,双方确认彼此收发能力正常,连接建立成功之后才开始传输数据,传输结束之后通过四次挥手释放连接,连接是逻辑层面的虚拟连接,不是物理专线。
字节流传输
TCP 把上层应用的数据当成连续无边界字节流,会根据 MSS 最大报文段长度进行分段,不保留应用层原始报文边界,这点和 UDP 保留报文边界不一样。
序号与确认应答
每一个字节都分配序号,接收方返回 ACK 确认号,告诉发送方已经收到哪些数据,依靠序号可以识别数据包乱序,把收到的数据重新按顺序拼接还原。
超时重传
发送方发出报文之后启动定时器,如果在超时时间内没有收到 ACK 确认,就判定报文丢失,自动重新发送该报文,解决网络丢包问题。
流量控制
使用滑动窗口机制,由接收方告知发送方自己剩余接收缓存大小,发送方不能发送超过接收方缓存能力的数据,防止接收方处理不过来造成数据溢出丢包。
拥塞控制
网络发生拥塞的时候,自动降低发送速率,包含慢启动 拥塞避免 快重传 快恢复四种算法,防止大量数据包同时涌入网络,造成路由器持续丢包瘫痪。
差错校验
TCP 头部带有校验和字段,对头部和数据进行校验,接收方校验失败直接丢弃报文,依靠重传机制补救,检测传输过程产生的数据损坏。
连接状态管理
完整维护连接生命周期状态,监听 同步 Established 关闭等待 时间等待等状态,异常断连之后会进入对应的超时回收流程。
功能对照表
| 功能名称 | 作用 | 解决的问题 |
|---|---|---|
| 三次握手 | 建立连接 | 确认双方收发能力 |
| 序号 ACK | 有序确认 | 乱序 丢包识别 |
| 超时重传 | 重发丢失报文 | 网络丢包 |
| 滑动窗口 | 流量控制 | 接收方缓存溢出 |
| 拥塞控制 | 调节发送速率 | 网络拥塞 |
| 校验和 | 数据校验 | 数据出错损坏 |
| 四次挥手 | 释放连接 | 正常断开通信 |
TCP 和 UDP 功能对比要点
TCP 优点是可靠有序,缺点是开销大,握手重传窗口机制带来额外延迟,UDP 没有连接,没有重传拥塞控制,开销小速度快,但是不保证可靠,适合实时音视频游戏场景。
掌握 TCP 协议的功能包括什么之后,抓包分析的时候就可以识别 SYN ACK FIN 这些标志位,理解三次握手四次挥手,还有窗口大小 重传 拥塞相关现象,在网络故障排查中可以判断是重传过多 窗口过小还是拥塞导致卡顿。
【常见问题】
问题 1 TCP 协议的功能包括什么,三次握手属于哪项功能
回答 1 TCP 协议的功能包括什么里面,三次握手属于面向连接这项核心功能,TCP 协议的功能包括什么,通信前完成连接建立,确认双方收发能力之后才传输数据。
问题 2 TCP 协议的功能包括什么,流量控制和拥塞控制有什么区别
回答 2 TCP 协议的功能包括什么,流量控制是针对接收方缓存能力,拥塞控制是针对整个网络拥塞情况,TCP 协议的功能包括什么两项机制目标不同,但是都用来调节发送速率。
问题 3 TCP 协议的功能包括什么,TCP 能不能保证实时低延迟
回答 3 TCP 协议的功能包括什么里面自带重传机制,丢包之后会等待重传,会增加延迟,TCP 协议的功能包括什么,对极致实时业务一般不会选择 TCP,改用 UDP 更合适。
【免责申明】
本文内容仅作为 TCP 协议功能知识学习参考,协议细节以 RFC 标准文档以及教材定义为准,不同教材表述略有差异,备考请以指定课程教材为准。


