TCP/IP(二十二)TCP 实战抓包分析(六)TCP 快速建立连接
一 TCP Fast Open 快速建立连接
说明: 之前讲解'TCP 相关知识点'遗漏了这个'知识点',补充上
① TFO简介
![]()
![]()
② 请求 Fast Open Cookie过程

++++++++++++ "原理图" ++++++++++++

③ 真正开始 TCP Fast Open

重点: 'TFO' 使 'SYN包' 可以包含'payload 数据'

④ 抓包分析
1、Linux 上快速打开是'默认关闭'的,需要'先开启 TFO' --> '客户端'和'服务端'都开启echo 3 > /proc/sys/net/ipv4/tcp_fastopen思考: 如何让'快速连接' Cookie的'进快'过期 --> '设置为0',再'请求一次'即可2、nginx 来'充当'服务器,修改 nginx 配置'listen 80 fastopen=256;',使之支持 TFO知识点: 在nginx '1.5.8' 版本以及之后,'listen 指令'开始支持 'fastopen' 参数
![]()
![]()


3、服务端'抓包'tcpdump -nni br0 tcp and host 172.25.2.157 -w tcp_fast_open.pcap4、客户端'测试' curl --tcp-fastopen -kv nginx.wzj.com/ok知识点: curl '7.42.0+'后才'支持' TFO 选项 '--tcp-fastopen'


实验1: 第一次:'请求 Fast Open Cookie' 抓包分析

说明: 实验'1' 的第'1'个 SYN 包:wireshark 有标记 'TFO=R',看下这个包的 'TCP 首部'特点: 这个首部包含了 TCP Fast Open 选项,但是 Cookie 为'空',表示向服务器请求新的Cookie

说明: 实验 '1' 的第 '2' 个包是 'SYN + ACK' 包,wireshark 标记为TFO=C备注: 这个包的'首部'如下图'所示':补充: 服务器已经生产了一个值为 "df8f286592b0187c" 的 Cookie

说明: 实验 '1' 的第'3'个包是'客户端' 对服务器的 'SYN 包'的'确认'包小结: 到此三次握手完成,这个过程跟'无 TFO 三次握手'唯一的'不同点'--> 就在于 Cookie 的请求和返回后面的几个包就是'正常'的'数据传输'和'四次挥手'断开连接了
实验2: '第二次':'真正的快速打开' 抓包分析

第 1 个包就很'亮瞎眼',wireshark 把这个包识别为了 'HTTP 包','展开头部'看一下


需求: '显示'当TFO密钥cat /proc/sys/net/ipv4/tcp_fastopen_key遗留: 系统为什么'默认'没有开启'TFO'快速连接?备注: 'mac' 默认情况下已经'支持TFO'在TFO的'问题': 1、如伪造TFO SYN攻击 '通过DHCP及NAT、Moles获取有效的Cookies'2、这种场景下,Server资源会'被攻击耗尽'
TFO 系统知识点汇总 TFO的安全性
二 TCP 快速建立连接
① 常规的TCP三次握手过程

1、RTT '往返'时间 Round-trip Time 含义说明: 一个'TCP数据包'从源端'发送'到接收端,源端收到接收端'确认'的时间'间隔'2、怎么'简单'的看一下RTT是多少:说明: ping一下'对端'机器,最后的'time值'其实就是这两台机器的'RTT时间'啦3、 2.5 RTT 是'如何'计算的1.5 RTT(握手) + 1 RTT(数据往返) = 2.5 RTT4、 2 RTT 是'如何'计算的一般来说,比较'积极'的TCP在第三次握手的时候,已经顺便携带了'数据'请求,需要的时间将减小为:1 RTT(握手) + 1 RTT(数据往返) = 2 RTT
高RTT值的网络中,如何提高短连接的传输速度
补充: 客户端发送完'第三次'握手包后,'不再需要'服务端的确认,立即可以'发送'数据

思考: 如何证明'第三次'握手携带了'payload 数据报文'?
验证TCP第三次握手刻意携带数据

思考: 如果第'三次握手包'服务器'没有'收到,就'直接'发送数据,会发生什么?结论:1、如果第三次握手包服务器'没有'收到,就直接'发送'数据2、服务器将这个'携带应用数据'的包当做'第三次'握手原因:直接发送的那个GET请求包中,ACK标记是置位了的,所以服务端就把这个GET包当成了第三次握手了3、前提:这一个包中携带有'ACK'标记
② 快速建立连接
说明: 注意'演进'的过程TCP Fast Open 的'优势': 一个最显著的优点是可以利用'握手'去除一个'往返 RTT'特点: 在开启 TCP Fast Open以后,从'第二次请'求开始,就可以在'一个RTT'时间拿到'响应'的数据

++++++++++++ "原理描述" ++++++++++++使用TCP 快速打开 'TCP Fast Open, TFO',尽可能'降低'握手对'网络延迟'的影响

③ 在 Linux 上如何打开 Fast Open 功能?
注意: Fast Open 功能是'3.7+'内核引入的内核参数: 'tcp_fastopen'

④ TFO 抓包分析

DDOS: 耗光'内存'从而'拒绝'服务相关文章:
TCP/IP(二十二)TCP 实战抓包分析(六)TCP 快速建立连接
一 TCP Fast Open 快速建立连接 说明: 之前讲解TCP 相关知识点遗漏了这个知识点,补充上 ① TFO简介 ② 请求 Fast Open Cookie过程 "原理图" ③ 真正开始 TCP Fast Open 重点: TFO 使 SYN包 可以包含payload 数据 ④ 抓包分析 1、…...
IDEA如何拉取gitee项目?
1.登录gitee 说明:打开idea,在设置上面搜索框输入gitee,然后登录gitee注册的账号。 2. 创建gitee仓库 说明:创建idea中的gitee仓库。 3.寻找项目文件 说明:为需要添加gitee仓库的项目进行添加。 4.项目右键 说明&a…...
视频编辑不求人,教你一招制胜批量添加封面
视频添加封面是一个相当简单的任务,您只需要一款专门的软件,就能轻松搞定!下面就是详细教程啦! 首先,您需要在浏览器中搜索“固乔智剪软件”,进入官网并下载这款软件。固乔智剪软件是一款非常专业的视频剪辑…...
产品的竞争力是什么
产品的竞争力归根到底是3点:功能,性能,容量。 功能 我这个产品完成了别人没有实现的功能,而且是用户需要的。解决了客户的痛点 性能 我这个产品的功能虽然别人有,但是我性能好,性能好意味着干同样的活给…...
vue3 拖拽插件 Vue3DraggableResizable
Vue3DraggableResizable 拖拽插件的官方文档 一、Vue3DraggableResizable 的属性和事件 1、Vue3DraggableResizable 的属性配置 属性类型默认值功能描述示例initWNumbernull设置初始宽度(px)<Vue3DraggableResizable :initW“100” />initHNumb…...
VUE父组件向子组件传递数据和方法
文章目录 1 父组件写法2 子组件写法 1 父组件写法 父组件参数和方法 data() {return {// 遮罩层loading: true,// 表格数据yfeList: []}}导入组件 import yfTable from "/views/yf/yfTable.vue";组件 components: {yfTabTable},传值使用 <yfTabTable :loadin…...
NPI加速器在烽火科技SMT车间的应用:贴片机程序制作效率的革新
烽火科技,一个在国内颇具知名度的高科技企业,坐落于武汉光谷的SMT车间中,机器嗡嗡作响,作业员们忙碌地进行着生产。工厂使用的是ASM的贴片机,使用Sipalce Pro作为其编程软件。然而,在高效的生产线背后&…...
如何给照片添加水印?请看下面3个简单教程
如何给照片添加水印?随着智能手机的普及和不断提升的拍摄技术,如今人们可以轻松使用手机进行高质量的照片拍摄。从老人到小孩,每个人都可以在日常生活中捕捉到美好瞬间,并将其记录下来。作为一种表达自己的方式,现在手…...
仿写知乎日报第一周
效果图 主要的逻辑 Manager封装网络请求 首先,对于获取网络请求,我是将这些方法封装成了一个类Manager,后续在获取以往的内容时又封装了一个beforeManager类用于网络请求。这里不多赘述,Manager封装网络请求的知识参考我的以往博…...
32二叉树——DFS深度优先遍历
目录 深度优先算法(Depth-First Search,DFS) LeetCode之路——102. 二叉树的层序遍历 分析 深度优先算法(Depth-First Search,DFS) DFS是一种用于遍历或搜索树状数据结构的算法,其中它首先探…...
华为昇腾NPU卡 ChatGLM2模型使用
参考:https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/glm2.md#chatglm2-6b 1、安装环境: 昇腾NPU卡对应英伟达GPU卡,CANN对应CUDA底层; mindspore对应pytorch;mindformers对应transformers 本…...
【机器学习】集成模型/集成学习:多个模型相结合实现更好的预测
1. 概述 1.1 什么是集成模型/集成学习 "模型集成"和"集成学习"是相同的概念。它们都指的是将多个机器学习模型组合在一起,以提高预测的准确性和稳定性的技术。通过结合多个模型的预测结果,集成学习可以减少单个模型的偏差和方差&am…...
如何提高广告投放转化率?Share Creators 资产库与Appsflyer营销数据的全面结合
如何提高广告投放转化率?Share Creators 资产库与Appsflyer营销数据的全面结合 全球经济进入了低迷期。 营销成本越来越高, 营销需要更务实,注重投入产出比。众所周知,除了渠道、客群画像以外, 优秀的广告设计图&#…...
《软件方法》2023版第1章(11)1.4.3 具体工作步骤
DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 1.4 应用UML的建模工作流 1.4.3 使用UML建模的工作流步骤 图1-17中“工件形式”一列所列出的图就是本书推荐的在建模工作流ABCD中的UML用法,我用活动图进一步表示建模的步…...
git将当前分支A强制推送远程分支pro上
前言 开发中基于线上分支pro创建了A分支,开发完成之后。又基于线上分支pro创建了B分支,都以此合并到测试分支,两个分支更改中都动用部分共同的文件,这就导致后续开发合并代码越来越乱,这时你想把本地开发的分支强推到…...
【计算机基础】存储器
目录 一.概念二.分类1.按存储介质分类2.按存储方式分类3.按存储器的读写功能分类4.按信息的可保存性分类5.按在计算机系统中的作用分类 三.主存区分SRAM、DRAM、Flash、DDR1.SRAM(静态随机存储器࿰…...
【LCR 159. 库存管理 III】
目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:int getrandom(int left,int right,vector<int>& stock){return stock[rand()%(right-left1)left];}void qsort(int l,int r,vector<int>& s…...
Android ADB 常见问题和注意事项
Android ADB 常见问题和注意事项 在使用 ADB 过程中,可能会遇到一些常见问题和需要注意的事项: 1. USB 调试 要使用 ADB,你需要在设备上启用 USB 调试模式。这通常在设备的开发者选项中设置。如果你不能看到开发者选项,可以在设…...
TCP/IP五元组
什么是五元组规则? 五元组是通信术语,英文名称为five-tuple,或5-tuple,五元组包括源IP地址(source IP)、源端口(source port)、目的IP地址(destination IP)、目的端口(destination port) 和 传输层协议(the layer 4 protocol)的五个量集合。…...
aiohttp ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 错误处理
这个问题原因吧其实就是3.10 开始官网更新了TLS 堆栈默认安全设置 感兴趣的可以看下链接 python官网叙述: Python 3.10 增加了 TLS 堆栈的默认安全设置 解决也很简单,将ssl安全等级降下来就行,例如: import ssl import aiohttp ctx ssl.cr…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
