文档章节

Tcp Dup ACK--又是数据库的问题

suit
 suit
发布于 2014/10/28 22:31
字数 479
阅读 612
收藏 0

最近,值班的同学反映,有个程序定时会在凌晨4点的时候挂起,重启后恢复,让开发的同事

查了一下,有可能挂起的地方只有在查询数据库,后来gdb也证明了是挂在otl的fetch函数,

这个问题让我想起了之前的问题,也是同个程序,也是在查询数据库,所以就叫同事捉了个

包,一打开,比较奇怪:

image

04:17:19 向数据库发起数据,然后回了个ACK,再发了个数据,再回个ACK。紧接着就不停地重发那个ACK了。

会发重复ACK(Dup ACK)理论上是收到数据了,再会回ACK,而回重复ACK应该是收到的是乱序的包,有些

数据丢了,或者是服务器不停地重发同一个包。由于捉包的同事只捉了dst端口,所以来的数据包看不到,今晚

再捉一次,希望能看到真相。 Dup ACK的间隔分别是: 3s, 6s, 12s, 24s, 48s, 64s, 64s,64s 64s,64s,64s

2014-10-30

发现这个超时时间竟然跟TCP/IP详解的说明完全对得上,今天才发现数据库主机是AIX,原来unix的实现还是

这样,Linux做了不少改动。

从这两天发的包已经可以确认,是应用向数据发起请求,数据库收到了,回了数据,应用回了ACK,这个回得

到,接着应用再请求数据,这时数据库发了一个大包,应用只收到第一个包,回了ACK,这个ACK丢了,数据

库不停地重发那个包,应用是收到了,但回了ACK数据库一直收不到了,重发12次后,发了RST,这个RST也

没有收到。这个现象非常奇怪,现在还不知道原因为何:

image

© 著作权归作者所有

suit
粉丝 4
博文 24
码字总数 13208
作品 0
广州
程序员
私信 提问
TCP/IP Troubleshooting

TCP/IP Troubleshooting: How to detect issues at the transport layer. Just a reminder: TCP/IP is both a protocol suite (a set of communications protocols used on the Internet and......

robin-yao
2015/11/14
182
0
Wireshark中常见的TCP Info

1. TCP out-of-order segment TCP存在问题。 Wireshark判断TCP out-of-order是基于TCP包中SEQ number并非期望收到的下一个SEQ number,则判断为out-of-order。因此,出现TCP out-of-order时,...

sailikung
2018/08/29
0
0
wireshark网络分析笔记

原址 本文是阅读《wireshark网络分析就这么简单》和《wireshark网络分析的艺术》做的一些笔记。 技巧篇 1、如只要分析ip头或tcp头,可减少每个抓包数据的大小,通过设置limit each packet t...

u010164190
2018/05/18
0
0
linux关于tcp协议ack的实现--总结和公平性问题

tcp是一个可靠连接的协议,但不要指望它是什么理论的实现,它是实践的东西,任何实践的东西背后都不是一个理论,而是一大堆理论,tcp正是单一停等,GBN(回退N)以及SR(选择重传)的结合体,单一...

晨曦之光
2012/04/10
282
0
【原创】TCP backlog 在 Linux 中如何起作用

How TCP backlog works in Linux January 1, 2014 (updated March 14, 2015) When an application puts a socket into LISTEN state using the listen syscall, it needs to specify a backl......

摩云飞
2016/04/22
260
0

没有更多内容

加载失败,请刷新页面

加载更多

MPI(JVM)

jvm安装 yum install -y java-1.8.0-openjdkyum install -y java-1.8.0-openjdk-devel mpi安装 # 编译安装openmpiwget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4......

赵-猛
12分钟前
5
0
使用递归打印乘法表

一般我们在学for循环的时候都会去打印九九乘法表,但是如果是用递归的方式打印的话,应该怎么做呢? 下面讲解一下用递归打印九九乘法表的思路: 其实我们在用for循环打印乘法表的时候,用的是...

INEVITABLE
51分钟前
13
0
sql 练习

创建需要的4张表 首先创建student、course、score、teacher这四张表。 student表 创建student表 CREATE TABLE IF NOT EXISTS student(sno TINYINT UNSIGNED NOT NULL,sname VARCHAR(20......

Garphy
52分钟前
14
0
vSphere的两种虚拟交换机

VMware vSphere 6.7中支持两种虚拟交换机: 1、标准交换机,VSS - Virtual Standard Switch 2、分布式交换机,VDS - Virtual Distributed Switch VSS与ESXi主机一一对应,即一个VSS只能部署在...

大别阿郎
54分钟前
12
0
webGL和three.js的关系

本文转载于:专业的前端网站➤webGL和three.js的关系 如今浏览器的功能越来越强大,而且这些功能可能通过JavaScript直接调用。你可以用HTML5标签轻松地添加音频和视频,而且可以在HTML5画布上...

前端老手
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部