TCP可靠传输怎么实现的

TCP可靠传输怎么实现的 我们都知道 TCP 是可靠的UDP 是不可靠的。但 TCP 到底凭什么可靠它在底层到底做了哪些努力这篇文章带你一次性吃透TCP 保证可靠传输的 6 大核心机制原理 流程 专业描述全部到位。引言什么是 “可靠传输”可靠传输 数据不丢、不乱、不重、不坏。TCP 就是通过一整套严密机制在不可靠的 IP 网络之上实现了可靠的数据通信。下面是 TCP 可靠性的6 大核心机制。1. 序列号与确认应答ACK这是 TCP 可靠传输的基础。序列号seq发送的每个字节数据都会有一个唯一编号按顺序递增。作用保证按序到达、去重。确认应答ACK接收方收到数据后必须回复一个确认号ack 期望收到的下一个字节序号告诉发送方之前的数据我已经收到了。例子发送方发送seq100的 100 字节数据接收方回复ack200表示100~199 字节已收到等待 200 开始。作用确认数据一定收到。2. 超时重传这是 TCP 应对丢包的机制。发送方发完数据后启动定时器如果超时没有收到 ACK就认为报文丢失自动重传超时时间会动态计算RTT 平滑值不会乱重传、不会频繁重传。作用丢了就重发保证数据不丢失。3. 流量控制滑动窗口作用防止接收方被 “撑爆”。接收方在 ACK 里告诉发送方Window Size窗口大小意思是我还能收多少数据。发送方根据窗口大小控制发送速度接收方处理变慢 → 窗口变小接收方处理变快 → 窗口变大作用按需发送不溢出、不丢失。4. 拥塞控制作用防止网络拥堵崩溃。如果网络本身堵了发送方还疯狂发数据会导致大规模丢包。TCP 拥塞控制通过 4 个算法保证网络平稳慢启动刚开始慢探测网络拥塞避免线性提速防止过载快重传收到 3 个重复 ACK立刻重传不等超时快恢复快速恢复速率不 “断流”作用保护网络让传输更稳定。5. 连接管理三次握手 四次挥手TCP 是面向连接的协议连接必须可靠建立、可靠关闭。三次握手建立连接同步双方序列号ISN确保双方发送、接收能力都正常四次挥手优雅断开保证双方数据都传输完不丢数据、不截断TIME-WAIT2MSL确保最后一个 ACK 到达对方防止旧报文干扰新连接作用连接本身必须可靠。6. 校验和作用保证数据不损坏。每个 TCP 报文都会计算校验和接收方收到后校验数据是否完整校验失败 → 直接丢弃 → 不回复 ACK → 触发发送方重传作用数据传输出错了就丢掉重传保证正确性。