当前位置: 首页 > news >正文

Linux学习-TCP网络协议(补充)

一、TCP 头部标志位

TCP 头部包含多种标志位,用于控制连接建立、数据传输、连接断开等过程,核心标志位及作用如下:

标志位英文全称作用
SYNSynchronize Sequence Numbers请求建立连接,三次握手第一步发送 SYN 包
ACKAcknowledgment响应报文标志,用于确认收到数据,确认号字段需配合 ACK 位使用
PSHPush携带数据标志,通知接收方立即从缓冲区读数据,无需等待缓冲区满
FINFinish请求断开连接标志,四次挥手过程中用于发起断开请求
RSTReset复位标志,用于异常断开连接(如连接超时、错误),强制重置连接状态
URGUrgent紧急数据标志,标记数据为紧急,紧急指针字段配合使用,指示紧急数据位置

在这里插入图片描述

从 TCP 头部结构看,这些标志位位于“数据偏移”“保留”之后的控制位区域,与源端口、目的端口、序列号、确认号等共同构成 TCP 报文首部(固定 20 字节,含选项则更长 ),TCP 报文段封装在 IP 数据报的数据部分传输 。

二、TCP 保障安全可靠的机制

(一)连接管理:三次握手 & 四次挥手

  • 三次握手:通过 SYN、SYN + ACK、ACK 交互,确保收发双方通信前就绪,同步序列号,确认双向收发能力 。
  • 四次挥手:通过 FIN、ACK、FIN、ACK 交互,确保双方数据传输完毕,有序释放连接资源,避免数据残留 。

(二)应答机制

TCP 发送数据时,用序列号标记数据包起始编号;接收方回复确认号(为收到的最后一个字节编号 + 1 ),告知发送方已接收数据范围。发送方依据确认号判断数据是否被接收,未确认则触发重传,保障数据可靠。

(三)超时重传机制

数据发送后,若在**超时时间(RTO,Retransmission Timeout )**内未收到确认,发送方认为数据包丢失,重新发送该数据。超时时间会根据网络情况动态调整(如基于往返时间 RTT 计算 ),平衡重传效率与网络开销。

(四)滑动窗口机制

  • 发送方和接收方各维护一个窗口(缓冲区 ),窗口内是已发送未确认、或准备发送的数据 。
  • 发送方无需等每个数据包确认后再发下一个,可连续发送窗口内数据,提升传输效率;接收方通过窗口大小字段告知发送方自己的接收能力,动态调整发送速率,避免拥塞 。

三、TCP 提升效率的机制

(一)延迟应答机制

接收方不立即回复 ACK,等待一段时间(如缓存更多数据、凑齐应用层读取需求 ),再批量确认。减少 ACK 报文数量,降低网络开销,提升整体传输效率。

(二)流量控制机制

结合 TCP 头部窗口大小字段,接收方根据自身缓冲区剩余空间,调整窗口大小告知发送方。发送方按窗口大小控制发送数据量,避免发送过快导致接收方缓冲区溢出,实现收发速率匹配。

(三)捎带应答机制

ACK 报文可与应用层数据合并发送(如接收方有数据要发给发送方时,将 ACK 与数据报文一起传输 ),减少单独发送 ACK 的次数,降低网络报文数量,提升传输效率。

http://www.xdnf.cn/news/1362817.html

相关文章:

  • ViT系列网络系统性分析:从架构创新到未来趋势
  • [QMT量化交易小白入门]-八十四、LSTM模型对期货市场的秒级Tick数据进行预测
  • AI背后使用的技术
  • 《信息检索与论文写作》实验报告一 EI数据库检索
  • 【文献阅读】SparseGPT: Massive Language Models Can be Accurately Pruned in One-Shot
  • ios webgl音频问题
  • 设置密钥连接服务器
  • Charles安装到使用全流程教程
  • Gemini 2.5 Flash-Lite 与 GPT-5-mini:高性能低成本模型,如何选择?
  • 第十七节:高级材质 - ShaderMaterial揭秘
  • 物联网时序数据库IoTDB架构解析
  • h5和微信小程序查看pdf文件
  • DrissionPage 能控制火狐或edge吗
  • 20.14 QLoRA微调Whisper-Large-v2终极指南:3倍速训练+显存直降68%调参秘籍
  • ADB 调试工具的学习[特殊字符]
  • 【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(2):智慧城市西安与一带一路
  • 技术速递|使用 AI 应用模板扩展创建一个 .NET AI 应用与自定义数据进行对话
  • 通过C#上位机串口写入和读取浮点数到stm32实战5(通过串口读取bmp280气压计的数值并在上位机显示)
  • .NET表格控件Spread .NET v18.0——支持富文本、增强PDF导出
  • 算法学习8.25
  • 如何生成雪碧图和 WEBVTT
  • Elasticsearch脑裂紧急处理与预防
  • [React]Antd Upload组件上传多个文件
  • 微服务商城构筑其一
  • VIVO/OPPO手机,显示5G开关
  • 【Wrangler(Cloudflare 的官方 CLI)和 npm/npx 的区别一次讲清】
  • 大模型面试题剖析:Pre-Norm与Post-Norm的对比及当代大模型选择Pre-Norm的原因
  • openharmony之DRM开发:数字知识产权保护揭秘
  • ESP8266学习
  • 迁移面试题