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

TCP fast open

TCP Fast Open 复用 Cookie 快速恢复会话,减少 1 个 RTT 的延迟

传统 TCP 三次握手需 1.5 RTT才能传输应用数据,导致 HTTP 请求延迟较高

TCP Fast Open:为了解决传统 TCP 握手中的延迟问题,通过允许在首次 SYN 握手阶段携带应用数据,从而减少 1 个 RTT 的延迟

内核参数:/proc/sys/net/ipv4/tcp_fastopen

  • 快速恢复TCP会话,需要双方都开启这个功能
  • 0 关闭(默认),1 客户端使用 Fast Open ,2 服务端使用 Fast Open ,3 客户端&服务器都可以使用 Fast Open

第一次进行数据通讯:获取并缓存 Cookie

  1. 客户端发送 SYN 报文,该报文包含 Fast Open 选项
  2. 服务器生成 Cookie,通过 SYN-ACK 返回
  3. 客户端缓存 Cookie

后续连接:利用 Cookie 快速恢复会话

  1. 客户端发送 SYN + 应用数据 + 缓存的 Cookie
  2.  服务端验证 Cookie:
    • Cookie 有效:直接确认 SYN 和应用数据,并将应用数据递交给上层应用(节省 1 RTT)
    • Cookie 无效:服务器丢弃应用数据,仅确认 SYN,并回复一个不包含 Cookie 的 SYN-ACK(正常的三次握手)

http://www.kler.cn/a/562327.html

相关文章:

  • 存储产品和数据库产品之间有没有竞争关系
  • 了解大模型LLM:部署、优化与框架
  • 原生php实现redis缓存配置和使用方法
  • Android构建系统 - 01 环境准备
  • 深度学习-130-RAG技术之基于Anything LLM搭建本地私人知识库的应用策略问题总结(一)
  • 电脑不能正常启动了怎么办?查看解决方法
  • SQLite 删除表
  • 金和OA-C6 IncentivePlanFulfillAppprove sql注入漏洞复现(CNVD-2023-1)(附脚本)
  • UE5销毁Actor,移动Actor,简单的空气墙的制作
  • Redis面试题----MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?
  • Unity游戏制作中的C#基础(5)条件语句和循环语句知识点全解析
  • 【音视频】音视频录制、播放原理
  • 计算机网络:应用层 —— 电子邮件
  • 【ISP】畸变校正 LDC
  • 面试之《react近几个版本的更新要点》
  • [特殊字符]《封印adb的黑暗通道:让系统文件成为魔法禁书区的终极指南》[特殊字符]
  • char和varchar的不同
  • PHP403问题
  • Spring MVC框架二:创建第一个MVC程序
  • Unity git 获取当前修改或者新增的文件列表