session-replay-tools / tcpcopy

An online request replication and TCP stream replay tool, ideal for real testing, performance testing, stability testing, stress testing, load testing, smoke testing, and more.
http://session-replay-tools.github.io/tcpcopy/
Other
4.48k stars 1.03k forks source link

流量可以复制开始的一部分,但短时间后就只能复制少量,绝大部分无法成功复制 #382

Closed Grade-Two closed 3 years ago

Grade-Two commented 3 years ago

每次开始复制时可以成功复制开始的部分请求,但往后绝大部分请求都无法复制成功,但也会有零星几个请求被复制过去。 启动指令: 10.160.158.12(线上节点): ./tcpcopy -x 1111-9.181.212.142:1111 -s 9.181.212.172 -c 10.0.4.172 -p 36524 -l ${log_path}/port_36524_1111 -d 9.181.212.142(镜像节点): route add -net 10.0.4.0 netmask 255.255.255.0 gw 9.181.212.172 9.181.212.172(辅助节点): ./intercept -i bond1 -F 'tcp and src port 1111' -p 36524 -l ${log_path}/port_36524 -d

tcpcopy_log:

截屏2020-12-22 下午4 07 21

intercept_log:

截屏2020-12-22 下午4 11 42

线上节点抓包(前面正常,然后):

截屏2020-12-22 下午4 14 26

镜像节点抓包(前面正常,然后):

截屏2020-12-22 下午4 13 03

检查了线上节点的iptables,没有限制output:

截屏2020-12-22 下午4 15 54

请问大佬们,这是因为什么原因造成的?

wangbin579 commented 3 years ago

应用是什么协议,可能不支持回放。

btw,需要看镜像节点单个session会话过程,才能准确分析

Grade-Two commented 3 years ago

我们用的thrift,全是短链接,每次请求都会建立tcp链接,然后释放。 镜像节点的session过程如下: 一开始的正常session:

截屏2020-12-23 上午10 08 32

然后情况逐渐变化:

截屏2020-12-23 上午10 09 35

最后完全gg:

截屏2020-12-23 上午10 10 32

跪求大佬指导。。。

wangbin579 commented 3 years ago

从抓包来推测,应该是被干扰了。

可以同时在线上节点和镜像节点抓包,对同一个session(在抓包文件通过客户端端口号来过滤)进行对比,看看reset数据包是不是中途设备干的。

最可疑的地方: 同时发送fin和reset数据包(相差7us),不正常,tcpcopy没有发送这么快

Grade-Two commented 3 years ago

线上节点:

截屏2020-12-23 下午2 14 02

镜像节点:

截屏2020-12-23 下午2 12 50

两边都抓到了,可以对应上。 后续那些整个stream只包含一条reset包的session也是两边各有一条,可以对应上,跪。。。 这可能是什么原因造成的ORZ。。。

Grade-Two commented 3 years ago

@wangbin579 在CSDN联系您了,万望大佬回复T_T

wangbin579 commented 3 years ago

不好意思,才回复。

csdn已经丢失账号,无法回复。

tcpcopy编译的时候,加上--with-debug选项,详细输出debug日志看看吧。 也只能从debug日志来查看,为什么连续发送要reset(其实是不相信tcpcopy有这么快的发送速度,需要debug日志来确认)。

qq群联系也行(521824702)

wangbin579 commented 3 years ago

这个问题是集中发送大量路由消息,导致用户定制的os报fd错误,导致后续无法发送

Grade-Two commented 3 years ago

感谢大佬 @wangbin579 ~就是这个原因,此问题已解决~

bi-xiaohu commented 3 days ago

@Grade-Two 您好,我在使用TcpCOPY复制流量的时候遇到了类似的问题,方便请教下解决方法吗?谢谢

zyuegege commented 3 days ago

这是来自张越的自动回复邮件。您好,你的邮件已经收到,我会尽快给您回复。