核心结论是 TCP 主要功能是在传输层实现面向连接的可靠端到端字节流通信,依靠三次握手建立连接,通过序号确认应答 超时重传 滑动窗口流量控制 拥塞控制 校验和 四次挥手释放连接,解决底层 IP 网络存在丢包 乱序 重复报文 网络拥塞 接收方缓存溢出这些问题,HTTP HTTPS FTP SMTP 这类对数据完整性要求高的业务都使用 TCP,TCP 把不可靠的 IP 网络封装成稳定有序的数据通道,和 UDP 无连接快速传输的定位完全不同,是计算机网络考试和网络运维抓包排查的核心知识点。
各项主要功能深度说明
面向连接建立与释放
正式传输数据之前执行三次握手,双方交换 SYN ACK 报文,确认收发能力正常,建立逻辑虚拟连接,数据传输完毕之后执行四次挥手,有序关闭连接,避免半开连接残留。
序号与确认应答机制
所有字节都分配连续序号,接收端返回 ACK 确认号,标记已经成功接收的数据,出现乱序报文可以依靠序号重新排序,同时识别重复报文,丢弃重复数据。
超时重传机制
发送报文段之后启动重传定时器,在规定时间内没有收到 ACK 确认,判定报文丢失,自动重新发送该报文,是 TCP 实现可靠传输最核心的补救手段。
流量控制
采用滑动窗口,接收方把自身剩余接收缓存大小写入 ACK 报文中的窗口字段,发送方根据窗口值限制发送数据量,防止发送速度太快,接收缓存塞满造成丢包。
拥塞控制
在网络整体出现拥塞的时候自动降低发送速率,包含慢启动 拥塞避免 快重传 快恢复四种算法,避免大量报文同时涌入路由器,造成网络持续丢包瘫痪。
差错校验
TCP 首部内置校验和,同时校验头部和应用数据,接收端校验失败直接丢弃报文,等待重传,识别传输途中数据损坏。
字节流分段传输
TCP 将上层应用交付的数据作为连续字节流,按照 MSS 最大报文段长度拆分成多个报文段,不保留应用层原始消息边界,由接收端重组还原。
功能对照表
| 功能名称 | 核心作用 | 解决问题 |
|---|---|---|
| 三次握手 | 建立逻辑连接 | 确认双方收发能力 |
| 序号 ACK | 有序确认 | 乱序 重复报文 |
| 超时重传 | 补发丢失报文 | 网络丢包 |
| 滑动窗口 | 流量控制 | 接收缓存溢出 |
| 拥塞控制 | 动态调速 | 全网拥塞 |
| 校验和 | 数据校验 | 报文损坏 |
| 四次挥手 | 释放连接 | 正常断开会话 |
TCP 和 UDP 核心差异
TCP 主要功能偏向可靠有序,代价是报文头部开销更大,握手和重传会增加通信延迟,UDP 没有连接管理,没有重传和拥塞控制,传输速度快,但是不保证数据一定送达,音视频直播 实时游戏一般选择 UDP。
掌握 TCP 主要功能之后,抓包分析时可以识别 SYN ACK FIN 标志位,观察重传次数 窗口大小变化,运维排障可以快速判断卡顿是重传过多,窗口太小还是网络拥塞引起。
【常见问题】
问题 1 TCP 主要功能,流量控制是不是就是拥塞控制
回答 1 TCP 主要功能里面,流量控制针对接收方缓存,拥塞控制针对整个网络,TCP 主要功能两项机制目标不一样,不能混为一谈。
问题 2 TCP 主要功能,TCP 是保留报文边界吗
回答 2 TCP 主要功能是字节流传输,不会保留应用层报文边界,TCP 主要功能会把数据拆成报文段,接收端重新拼接成连续字节流。
问题 3 TCP 主要功能,三次握手属于 TCP 吗
回答 3 TCP 主要功能包含连接管理,三次握手就是建立连接的过程,TCP 主要功能还包含传输结束之后的四次挥手释放连接。
【免责申明】
本文内容仅作为 TCP 主要功能知识学习参考,协议标准以 RFC 官方文档为准,不同教材表述略有差别,备考请以指定课程教材为准。


