news 2026/5/1 7:18:45

TCP连接如何确保其可靠性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TCP连接如何确保其可靠性

TCP通过序列号,数据校验,ACK确认,超时重传,流量控制,拥塞控制等确保传输的可靠性与效率。

1.序列号

在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机,每发送一次就累加一次,用来解决网络包乱序的问题。

2.数据校验

目的:确保数据在传输过程中不被篡改或损坏

TCP使用16位校验和来检测数据在传输过程中的错误。校验和覆盖整个TCP段(包括头部和数据),以及一个"伪头部"。

校验和算法原理

1. 将数据按16位(2字节)分组

2. 所有16位字相加(二进制反码加法)

3. 结果取反码,得到校验和

接收方与发送方校验和确认

3.ACK确认

指下一次「期望」收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。用来解决丢包的问题。

4.超时重传

重传机制的其中一个方式就是在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的ACK报文,就会重发该数据,也就是超时重传

TCP超时重传情况:

  • 数据包丢失
  • ACK确认应答丢失

5.流量控制

TCP滑动窗口机制是一种用于流量控制的技术,旨在确保数据的发送方不会超过接收方的处理能力。滑动窗口通过动态调整数据发送量,使数据传输更加高效,同时避免网络拥堵。

滑动窗口原理:随着接收方已收到数据的确认,发送方的窗口范围会向前滑动,允许发送新的数据,通过接收方动态调整数据发送量,是数据传输更加高效。

TCP的流量控制主要使用TCP的滑动窗口机制。

接收方维护一个接收窗口

这个接收窗口的大小不超过接收缓冲区大小,并且每次返回的ACK确认告知发送方

发送方维护一个发送窗口

发送窗口的大小不超过接收窗口的大小,也不超过发送缓存区的大小

里面既有发送了还没确认的消息,也有还没发送的消息

6.拥塞控制

网络拥塞是指在网络中传输的数据量超过了可用带宽或中间设备(如路由器、交换机)的处理能力时,导致网络性能下降的现象。

TCP 拥塞控制机制通过慢启动、拥塞避免、快重传和快恢复四个阶段,动态调整发送速率,保证网络的稳定性和高效性。

慢启动:初始阶段,TCP发送方以较小的发送窗口传输数据,随着每次成功收到确认数据,指数级增大发送窗口大小。确保在网络发送初期谨慎地逐步增加发送窗口大小,以免引起网络拥塞。

拥塞避免:达到阈值(一般指慢启动阈值),进入拥塞避免阶段。发送窗口大小不再是指数级增长,而是线性增长。避免引起网络拥塞。

快重传:发送方连续收到相同的确认,会认为出现了数据包丢失,会迅速重新传输未确认的数据包,不用等待超时。这有助于更快地恢复拥塞引起的数据包丢失。

快恢复:快重传之后,进入快恢复阶段。发送方不会回到慢启动阶段,而是将慢启动阈值设置为当前窗口大小的一半,同时将拥塞窗口大小设置为慢启动阈值加上已确认但未被快速重传的数据块的数量。这有助于更快从拥塞中恢复。

7.头部开销

TCP头部

TCP头部固定20字节+可变选项(0-40)字节

UDP头部

UDP头部固定为8字节,总长度由Length字段和IP层报文长度共同决定,所以无需额外的首部字段长度。

头部长度是固定的——永远 8 Byte

1.UDP 头部只有 4 个字段,各占 2 字节:

1

2

3

┌───────┬───────┬────────┬────────┐

│SrcPort│DstPort│ Length │Checksum│ ← 共8Byte

└───────┴───────┴────────┴────────┘

既然长度恒定,就无需额外再告诉一次“我有多长”。

2.没有可变选项

IP:因为支持可变的 Options,所以有 IHL。

TCP:因为支持 Options(MSS、SACK、Timestamp…),所以有 Data Offset。
UDP 不支持任何可选字段,自然不必保留这一项。

3.Length字段已隐含头部8Byte

UDP 的Length= 头部 8 Byte + 负载长度;解析方只要减去 8 就知道数据区长度,也能验证报文完

整性,再次证明单独的“头部长度”没意义。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 9:28:43

0.Uniswap协议概述

文章目录1. Uniswap协议概述1.1 什么是Uniswap1.2 核心架构图1.3 技术栈总览2. Uniswap版本演进:V2 vs V3 vs V4 深度对比2.1 版本演进时间线2.2 核心差异对比表1. Uniswap协议概述 1.1 什么是Uniswap Uniswap是全球最⼤的去中⼼化交易所(DEX&#xff…

作者头像 李华
网站建设 2026/5/1 6:10:07

基于SpringBoot+Vue的协同过滤算法黔醉酒业白酒销售系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 随着电子商务的快速发展,白酒行业也逐渐向线上销售转型,传统的销售模式已无法满足消费者个性化需求。黔醉酒业作为一家专注于白酒生产与销售的企业,亟需一套智能化的销售管理系统来提升用户体验和销售效率。协同过滤算法作为一种经典的推…

作者头像 李华
网站建设 2026/4/23 1:25:19

GPT-SoVITS语音训练硬件配置推荐清单

GPT-SoVITS语音训练硬件配置推荐清单 在个性化语音合成技术迅速普及的今天,越来越多的内容创作者、独立开发者甚至小型团队开始尝试构建属于自己的“数字声音”。无论是为虚拟主播定制专属音色,还是为有声书项目打造拟真旁白,一个关键问题浮现…

作者头像 李华
网站建设 2026/4/30 16:54:58

工作汇报 PPT 工具测评:哪款最适合中国职场?

在职场中,工作汇报是每个打工人都绕不开的重要环节。每到汇报季,大家常常面临着诸多难题:熬夜改报告,却始终觉得内容框架混乱,逻辑不清晰;好不容易有了内容,设计上又缺乏灵感,做出来…

作者头像 李华
网站建设 2026/5/1 6:12:52

低功耗产品中PCB原理图的硬件优化方案

低功耗设计从源头开始:一张原理图如何决定你的电池能撑多久?你有没有遇到过这样的情况?代码里已经加了深度睡眠,时钟也降到了最低频率,MCU的休眠电流标称只有1.2μA——可实测整机待机电流却高达8μA,电池寿…

作者头像 李华