文档章节

二、linux网络内核调优:数据重传

for。
 for。
发布于 2016/07/23 12:30
字数 430
阅读 131
收藏 3

在 TCP 完成三次握手后,进入数据传输阶段。

与该阶段数据重传的系统参数有(系统默认值):

net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15

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

tcp_retries1

数据重传超过阈值tcp_retries1,主要的动作就是更新路由缓存。

查看系统设置

cat /proc/sys/net/ipv4/tcp_retries1
3

测试

略,还不知道怎么测

tcp_retries2

数据重传次数超过 tcp_retries2 会直接放弃重传,关闭 TCP 流。

查看系统设置

cat /proc/sys/net/ipv4/tcp_retries2 
15

测试

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

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

  1. 启动服务端程序
  2. 启动客户端程序
  3. 客户端写入数据
  4. 服务端断开网络
  5. 客户端再次写入数据
./client 192.168.1.24
hello world
hello world
hello?
read: Connection timed out
close sockfd

wireshark 抓包

wireshark 截图

重传时间拟合

  No. timestamp  time diff  fitting
  -1    13.2195
   0    13.4253     0.0000   0.0000
   1    13.6333     0.2080   0.2000
   2    14.0493     0.4160   0.4000
   3    14.8813     0.8320   0.8000
   4    16.5493     1.6680   1.6000
   5    19.8813     3.3320   3.2000
   6    26.5532     6.6719   6.4000
   7    39.9152    13.3620  12.8000
   8    66.6013    26.6861  25.6000
   9   119.9133    53.3120  51.2000
  10   226.6674   106.7541 102.4000
  11   346.9852   120.3178 120.0000
  12   467.3078   120.3226 120.0000
  13   587.6253   120.3175 120.0000
  14   707.9521   120.3268 120.0000
  15   828.2653   120.3132 120.0000

如果 RTT 比较小,那么 RTO 初始值就约等于下限 200ms。

No.-1 为数据的正常发送。

No.0 为第一次重传。重传计数器从 0 开始?? 这个地方还有点疑惑

1 < No. <= 10 时间按指数增长。 RTT * 2^No.

No. >10 每次增加 120秒。

优化方案

可以通过减小该数值,减少重试次数,缩短重试时间。

参考文档

聊一聊重传次数

TCP/IP重传超时--RTO

© 著作权归作者所有

共有 人打赏支持
for。

for。

粉丝 84
博文 47
码字总数 18257
作品 0
深圳
程序员
linux+Oracle集群课程全面升级

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

张琦
06/26
0
0
从传统运维到云运维演进历程之软件定义存储(三)下

上回书讲到了运维小哥的调优方法论(上),对于Ceph运维人员来说最头痛的莫过于两件事:一、Ceph调优;二、Ceph运维。调优是件非常头疼的事情,下面来看看运维小哥是如何调优的。 关卡二:部...

Devin
2016/10/11
0
0
客户端之间使用透明通道传输文件数据

AnyChat具有缓冲区及文件传输功能,可以实现客户端与客户端之间的缓冲区和文件传输,也可以实现客户端与服务器之间的缓冲区和文件传输功能(V4.1版本新增功能)。 AnyChat客户端之间的缓冲区...

AnyChat
2014/12/02
80
0
linux系统调优-存储(内存、硬盘)

首先一个基本概念: 存储系统存储速度的快->慢: 内存->闪存->磁盘 因为内存的价格限制以及操作系统支持的限制,我们只能从磁盘这块来看,可见磁盘正是存储系统的最大瓶颈所在。 **下面具体提...

月黑风高杀人夜
2015/08/21
0
0
Linux未来监控tracing框架——eBPF

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

binarydady
05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
1
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
2
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
12
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
0
0
Coding and Paper Letter(四十)

资源整理。 1 Coding: 1.Tomislav Hengl撰写的非官方作者指南:Michael Gould•Wouter Gerritsma。 UnofficialGuide4Authors 2.R语言包rwrfhydro,社区贡献的工具箱,用于管理,分析和可视化...

胖胖雕
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部