抓包整理————tcp 三次握手性能优化[十]
前言
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,这种就是只有对方发送数据的时候,那么服务器才会去激活客户端获取连接。
结
下一节看下如何传输数据。
相关文章
- 苹果A16安兔兔跑分曝光:GPU性能相比A15提升了28%!
- tcp网络模型_TCP/IP协议模型
- 网站性能常用指标与优化方法有哪些_常见的web性能优化方法
- tcp心跳包 - python TCP服务器v1.3 - 服务器抗压测试及关闭套接字处理
- Redis性能测试实践:体验强大的工具(redis的性能测试工具)
- Linux环境下建立TCP连接的指南(linux建立tcp链接)
- Linux下建立TCP连接的步骤(linux建立tcp连接)
- Oracle 数据库:超强性能与安全性(oracle数据库简介)
- 端口揭示Linux系统监听TCP端口的真相(linux监听tcp)
- Linux内核学习实践:开发更佳系统性能(linux内核的学习)
- Linux下的TCP聊天之旅(linux聊天tcp)
- 性能优势Linux TCP例程: 性能优势让你看到不一样的结果。(linuxtcp例程)
- Linux TCP配置:管理网络性能的最佳方式。(linuxtcp配置)
- 超时Linux下设置TCP超时时间的方法(linux设置tcp)
- APMCon 2016中国应用性能管理大会圆满落幕
- 「Oracle 数据库优化报告」——提高性能,提升效率(oracle优化报告)
- Linux下TCP窗口优化的技巧(linux tcp 窗口)
- Linux TCP缓冲区:提升网络性能的关键(linux tcp缓冲区)
- Linux TCP 流量超时排查(linux tcp 超时)
- MSSQL远程访问:TCP端口号码确定(mssql端口 tcp)
- 优化SQL Server 左连接查询性能(sqlserver左连接)
- 优化Oracle数据库性能优化参数策略(oracle中的参数)
- 使用TCP连接Redis体验快速便捷(redis连接是tcp)
- Oracle组合索引多提高select性能(oracle zuhe)
- 高通最新旗舰SoC骁龙888 AI性能高达26TOPS,小米11将首发