前言

tcp 三次握手性能优化。

正文

服务器三次握手流程示例:

下面就是3次握手的过程:

知道这个有什么用呢?

我举一个我使用到的例子哈。

比如有很多 tcp 连接到一台机器上机器上,那么tcp_max_syn_backlog就需要调大。

服务器设置

net.ipv4.tcp_max_syn_backlog 调大。

net.ipv4.tcp_synack_retries: 被动建立连接时,发syn/ack 重试的次数。

第一个很好理解哈,backlog越大,那么承载越多。

第二个是网络不好的时候syn/ack 重试次数越多,那么连接失败率越低。

客户端syn_sent 状态:

net.ipv4.tcp_syn_retries = 6 主动建立连接时,发syn重试的次数

net.ipv4.ip_local_port_range = 32000 60000 设置端口范围

客户端也好理解哈,就是网络拥堵设置多一些重试,端口范围大一些,这样连接的越多。

然后如果是不断的发送数据然后断开,然后重连的话,那么可以使用tcp fast open来实现。

这个图其实很好理解哈。

左边的是普通情况。就是在最后ack确认的情况下把请求发出去。但是第二次请求的时候还是要建立3次握手。

第二种就是第一次发送syn+ack确认的时候给一个cookie。

这个cookie 有什么作用呢?那就是第二次连接的时候直接发送syn+cookie,那么对方会syn+ack 就连接完成了。

为什么可以这么做呢? 实际上这个cookie 里面存在滑动窗口大小,那么就不用最后的ack确认了。

如何打开这个tcp fast open 呢?

linux 参数:net.ipv4.tcp_fastopen

0 是关闭

1 是作为客户端时可以使用tfo

2 是作为服务器时可以使用tfo

3 无论作为客户端还是服务器,都可以使用tfo

上一节中介绍了syn攻击,那么如何应对呢?

net.core.netdev_max_backlog 接收自网卡、但未被内核协议栈处理的保温队列长度

net.ipv4.tcp_max_syn_backlog syn_rcvd 状态连接的最大个数

net.ipv4.tcp_abor_on_overflow 超出处理能力时,对新来的syn直接回rst,丢弃链接

另外一种 防御sync 攻击的方式是,tcp_syncookies方式。

就是当syn队列满的时候,新的syn不进入队列中,计算出cookie再以syn + ack 中的序列号返回客户端。

正常客户端发报文时,服务器根据报文中携带的cookie 重新恢复连接。

由于 cookie 占用序列号空间,导致此时所有tcp可选功能失效,例如扩充窗口等。

然后还有一个概念,那就是tcp_defer_accept,这种就是只有对方发送数据的时候,那么服务器才会去激活客户端获取连接。

下一节看下如何传输数据。

抓包整理————tcp 三次握手性能优化[十]的更多相关文章

  1. 使用 tcpdump 抓包分析 TCP 三次握手、四次挥手与 TCP 状态转移

    目录 文章目录 目录 前文列表 TCP 协议 图示三次握手与四次挥手 抓包结果 抓包分析 TCP 三次握手 数据传输 四次挥手 TCP 端口状态转移 状态转移 前文列表 <常用 tcpdump ...

  2. Java网络编程学习A轮_02_抓包分析TCP三次握手过程

    参考资料: https://huoding.com/2013/11/21/299 https://hpbn.co/building-blocks-of-tcp/#three-way-handshake ...

  3. 用wireshark抓包分析TCP三次握手、四次挥手以及TCP实现可靠传输的机制

    关于TCP三次握手和四次挥手大家都在<计算机网络>课程里学过,还记得当时高超老师耐心地讲解.大学里我遇到的最好的老师大概就是这位了,虽然他只给我讲过<java程序设计>和< ...

  4. Wireshark抓包分析TCP“三次握手,四次挥手”

    1.目的 客户端与服务器之间建立TCP/IP连接,我们知道是通过三次握手,四次挥手实现的,但是很多地方对这个知识的描述仅限于理论层面,这次我们通过网络抓包的方式来看一下实际的TCP/IP传输过程. 2 ...

  5. wireshark抓包图解 TCP三次握手/四次挥手详解[转]

    原文链接:http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6% ...

  6. wireshark抓包图解 TCP三次握手/四次挥手详解

    http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1 ...

  7. Wireshark抓包分析TCP 3次握手、4次挥手过程

    Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是 ...

  8. MySQL抓包工具:MySQL Sniffer 和性能优化

    简介 MySQL Sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQLServer 端的请求,并格式化输出.输出内容包访问括时间.访问用户.来源 IP.访问 Database. ...

  9. 抓包工具-Wireshark(详细介绍与TCP三次握手数据分析)

    功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP ...

  10. Wireshark抓包TCP三次握手数据

    抓包工具 - Wireshark(详细介绍与TCP三次握手数据分析) 功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封 ...

随机推荐

  1. C++ //类模板对象做函数参数 //三种方式 //1.指定传入的类型 --直接显示对象的数据类型 //2.参数模板化 --将对象中的参数变为模板进行传递 //3.整个类模板化 --将这个对象类型 模板化进行传递

    1 //类模板对象做函数参数 2 //三种方式 3 //1.指定传入的类型 --直接显示对象的数据类型 4 //2.参数模板化 --将对象中的参数变为模板进行传递 5 //3.整个类模板化 --将这个 ...

  2. 用几张图实战讲解MySQL主从复制

    本文分享自华为云社区<结合实战,我为MySQL主从复制总结了几张图!>,作者: 冰 河. MySQL官方文档 MySQL 主从复制官方文档链接地址如下所示: http://dev.mysq ...

  3. 一些Clion使用记录

    一些Clion使用记录 编译链设置 在设置"工具链"中可以按需增加不同的编译链 访问越界溢出debug AddressSanitizer介绍:AddressSanitizer 交的 ...

  4. Selenium IDE 自动化测试 bug 会在console里面出 DevTools failed to load SourceMap 很不好,用完记得关掉这个程序

    Selenium IDE 自动化测试 bug 会在console里面出 DevTools failed to load SourceMap 很不好,用完记得关掉这个程序

  5. ubuntu下安装numpy和scipy正确方法

    1.numpy NumPy(Numeric Python)是用Python进行科学计算的基本软件包. NumPy是Python编程语言的扩展,增加了对大型多维数组和矩阵的支持,以及一个大型的高级数学函 ...

  6. 掌握 Kubernetes 故障排除技巧:kubectl命令的基本指南

    Kubernetes 彻底改变了容器编排,简化了应用程序的管理和扩展.然而,与任何复杂系统一样,Kubernetes 集群也会遇到问题,需要及时解决才能保持最佳性能和可靠性.在本文中,我们将深入探讨必 ...

  7. vscode自动生成头文件

    Ctrl Shift P 输入:snipp,选配置用户代码片段,新建全局代码片段文件,修改下列模板: { // Place your 全局 snippets here. Each snippet is ...

  8. GDB简洁指南

    启动gdb:gdb program 设置运行参数:set args 10 20 30 启动程序: run(r),start 显示源代码:list(l) 显示当前栈帧和运行行:frame(f) 设置显示 ...

  9. Spring Boot自动运行之 CommandLineRunner、ApplicationRunner和@PostConstruct

    在使用Spring Boot开发的工作中,我们经常会需要遇到一种功能需求,比如在服务启动时候,去加载一些配置,去请求一下其他服务的接口.Spring Boot给我们提供了三种常用的实现方法: 第一种是 ...

  10. 直播预告:面对技术带来的新机遇,CG人如何腾飞?

    "新锐先锋,玩转未来"--首届实时染3D动画创作大赛由瑞云科技主办,英伟达.青椒云.3DCAT实时渲染云协办,戴尔科技集团.Reallusion.英迈.万生华态.D5渲染器.中视典 ...