文档章节

一、linux网络内核调优:三次握手

for。
 for。
发布于 2016/07/23 09:56
字数 477
阅读 87
收藏 2
点赞 0
评论 0

TCP 三次握手过程如下:

三次握手图

与三次握手的系统参数有(系统默认值):

  • net.ipv4.tcp_syn_retries = 6
  • net.ipv4.tcp_synack_retries = 5

/etc/sysctl.conf 中添加或修改,执行sysctl -p 即可生效。

tcp_syn_retries

tcp_syn_retries 与 TCP 三次握手的第一步相关,也就是客户端向服务器发送一个 SYN 数据包。

在没有接收到服务器响应的情况下,SYN 数据包的会尝试发送 tcp_syn_retries 次。

查看系统设置

cat /proc/sys/net/ipv4/tcp_syn_retries 
6

测试

测试代码:http://my.oschina.net/lowkey2046/blog/716557

服务端(192.168.1.24),客户端(192.168.1.21)

  1. 正常情况下执行一次程序,主要是为了产生相应的路由数据
  2. 直接断开服务端网络
  3. 启动客户端
./client 192.168.1.24
connect: Connection timed out
connect_server 192.168.1.24 error

wireshark 抓包

测试截图

客户端的在 connect 函数上进行三次握手。客户端在发出 SYN 数据包后,等待服务器的响应。如果没有收到服务端响应,会尝试重发 SYN 数据包。总共尝试了6次,也就是 tcp_syn_retries 的数值。默认情况下,时间超过了60s。

优化方案

可以通过减小该数值提前结束连接,减少重试次数。

tcp_synack_retries

tcp_synack_retries 与 TCP 三次握手的第二步相关。也就是服务器向客户端发送一个 SYN-ACK 数据包。

服务器在接收到客户端发送的 SYN 数据包后,会发送 SYN-ACK 数据包进行响应。如果没有收到客户端对该 TCP 报文的响应,服务器会尝试重新发送 SYN-ACK 数据包,总共会尝试 tcp_synack_retries 次。

cat /proc/sys/net/ipv4/tcp_synack_retries 
5

测试

这个要构建数据包才可以测试,暂时省略。

优化方案

可以通过减小该数值提前结束连接,减少重试次数。

参考资料

tcp_syn_retries等参数详解

© 著作权归作者所有

共有 人打赏支持
for。

for。

粉丝 80
博文 47
码字总数 18257
作品 0
深圳
程序员
浅谈linux性能调优之十五:常见网络参数整理

1.tcp连接保持管理: net.ipv4.tcpkeepalivetime = 7200 如果在该参数指定时间内某条连接处于空闲状态,则内核向远程主机发起探测 net.ipv4.tcpkeepaliveintvl = 75 内核向远程主机发送的保活...

OscerSong
2013/07/22
0
0
tcp的复杂机制

懂socket编程的人不一定理解tcp协议,实际上很多计算机编程高手都不一定懂tcp协议,编程高手很多都是对api很理解,对于api下面的机制就不一定理解了,我是一个学网络出身的人,在我会用java或...

晨曦之光
2012/04/10
117
0
linux+Oracle集群课程全面升级

作为国内最早从事开源架构师级课程研发的公司,从2006年10月开始,荣新稳步提升,将互联网运维作为主导就业方向,并将Linux集群架构课程发展成为国内最顶级、覆盖技术最全面的Linux课程,作为...

张琦
06/26
0
0
TCP状态以及关于内核调优的几个参数

不知道大家在面试时候是否会遇到tcp方面相关的面试题,比如几个相关的内核调优,SYNFLood***的原理和防御,timewait不回收对系统有什么影响,等等还是很多的,前几天有人问到,今天刚好细细学...

小罗ge11
06/29
0
0
nginx优化篇之Linux 内核参数的优化 (1)

Nginx做web服务器linux内核参数优化 Nginx提供web服务时Linux内核参数调整是必不可少的,其中在优化方面就需要我们格外的注意。在下面就是对Linux内核参数优化的详细介绍,希望大家有所收获。...

NILYANG
2015/04/16
0
0
Linux Socket编程(不限Linux)

“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。 ——有感于实际编程和开源项目研究。 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天...

sflfqx
2013/03/12
0
0
nginx防盗链和内核参数优化

防盗链:防止别人直接从你网站引用图片等链接,消耗了你的资源和网络流量。有几种解决方法:1,水印,品牌宣传,带宽,服务器足够。2,防火墙,直接控制,前提是知道ip来源。3,防盗链策略下...

宏强
06/26
0
0
tcpdump抓取HTTP包

tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 0x4745 为"GET"前两个字母"GE" 0x4854 为"HTTP"前两个字母"HT" 说明: 通常情况下:一个正常的TCP连接,都会有三个阶段:...

不必在乎朕是谁
2014/03/26
0
0
Linux网络编程:什么是Linux下的网络编程?

想知道Linux下的网络编程培训×××?先来了解一下什么是Linux下的网络编程吧!Linux下的网络编程指的是socket套接字编程,入门比较简单。在学校里学过一些皮毛,平时就是自学玩,没有见识过...

长沙千锋
05/23
0
0
Linux未来监控tracing框架——eBPF

eBPF源于早年间的成型于 BSD 之上的传统技术 BPF(Berkeley Packet Filter)。BPF 的全称是 Berkeley Packet Filter,顾名思义,这是一个用于过滤(filter)网络报文(packet)的架构。 BPF 是在 ...

binarydady
05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
0
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部