TCPcopy-TCP流重播工具

7 篇文章 1 订阅

1.什么是tcpcopy

TCPCopy是一种TCP流重放工具,用于支持Internet服务器应用程序的真实测试。

tcp实时流对于Internet服务器应用程序的测试很重要,但是由于线上环境过于复杂,因此很难对其进行模拟。为了支持对Internet服务器应用程序进行更符合生产环境的测试,有了实时流复制工具TCPCopy,该工具可以生成与生产工作负荷类似的测试流。目前,TCPCopy在中国公司被广泛使用。除了占用额外的CPU,内存和带宽外,TCPCopy对生产系统几乎没有影响。在请求多样性,网络延迟和资源占用方面,复现的工作负载与生产环境的工作负载相似。

2.应用场景

  • 分布式压力测试
    • 使用tcpcopy复制实际数据来对服务器软件进行压力测试,可以发现只能在高压力情况下产生的错误。
  • 现场测试
    • 证明新系统是稳定的,可以发现仅在真实线上生产环境中出现的错误
  • 回归测试
  • 性能比较

3.实现原理

tcpcopy

如上图,搭建并运行一套tcpcopy需要三台机器

  • Online Server:用来运行tcpcopy捕获线上真实流量的服务器,从数据链路层(pcap 接口)抓请求数据包,发包是从IP层发出去;
  • Target Server:运行测试程序,比如nginx、ats、whale。设置适当的路由命令,以将响应数据包(图中绿色箭头所示)路由到辅助服务器。
  • Assistant Server:运行intercept,原则上一定要用TS同网段的一台闲置服务器来充当辅助服务器。AS 在数据链路层截获到响应包,从中抽取出有用的信息,再返回给相应的 OS 上的 tcpcopy 进程。,以及充当黑洞。

理想状态:OS通过tcpcopy发送数据包时,它在到达TS之前可能会遇到很多挑战。由于数据包中的源IP地址仍然是最终用户的IP地址(默认情况下),而不是在线服务器的IP地址,因此某些安全设备可能会将其用于无效或伪造的数据包,并将其丢弃。在这种情况下,当在TS使用tcpdump捕获目标服务器上的数据包时,将不会捕获来自预期最终用户的数据包。如果上述有上述场景需求,就需要选择同一网段中的目标服务器进行测试。

所以最完美的情况是找同一网段的三台服务器来充当TS、OS、AS,还有另一种解决方案。tcpcopy可以将数据包发送到代理,然后代理将相应的请求发送到另一个网段中的目标服务器。

4.部署流程

由于公司的yum源已经集成tcpcopy的组件,这里放出github地址:https://github.com/session-replay-tools/tcpcopy

1) OS

yum install -y tcpcopy
tcpcopy  -x 80-42.236.8.169:80 -s 42.236.8.170 -c 211.91.146.251 -n 1 -d -r 20 -M 1460

-x 本机80端口的流量copy到42.236.8.169的80端口
-s 指定intercept机器(AS)的地址,tcpcopy要和intercept建立连接
-c 伪装地址,在把流量复制到测试服务器的时候,修改数据包的源地址为 211.91.146.251,这样方便指定路由。也可以写成211.91.146.x,这样源地址就是指定网段中的地址了。
-n 流量放大倍数,如果不是压测目的就不用指定这个参数。
-r 流量使用的百分数,表示只copy当前流量的百分之多少,后面接20,表示20%
-d 以守护模式运行。
-M mtu值

2)TS

route -n
route add -host 211.91.146.251 gw 42.236.8.170
route -n                              ##确认下路由是都设置成功

3)AS

intercept -i eth1 -F tcp and src port 80 -d

-i 指定监听在哪个端口。tcpcopy启动的时候会来连这个端口,如果连不上,就会启动失败,默认为公网ip的网卡
-F 过滤规则,语法和pcap一样。
-d 以守护进程方式运行

此时,如果设置正常的话,已经可以在TS上看到响应的流量,并且可以在相应的日志,可以加入相应的白盒黑盒监控等,进行查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP232-410模块烧录工具是一种用于编程和烧录TCP232-410模块的工具。TCP232-410模块是一种串口转以太网的模块,能够将串口通信转换为网络通信。 使用烧录工具可以方便地将程序代码和配置信息烧录到TCP232-410模块上。通过连接计算机和TCP232-410模块,可以使用烧录工具进行编程和配置。首先,需要将烧录工具连接到计算机的USB接口,然后将TCP232-410模块连接到烧录工具上,一般通过串口进行连接。 在使用烧录工具进行编程时,需要先准备好要烧录的程序代码和配置信息。可以通过烧录工具提供的界面进行文件选择和打开,然后将所选的文件加载到烧录工具中。接下来,设置好烧录的参数,如波特率、校验位等,并选择合适的烧录方式,一般有全烧录和增量烧录两种方式。全烧录会将整个程序代码和配置信息烧录到模块中,而增量烧录只会烧录新添加或修改的部分。 完成设置后,点击烧录按钮,烧录工具会将程序代码和配置信息通过串口传输到TCP232-410模块中,并进行烧录。整个烧录过程一般需要一定的时间,烧录完成后,可以通过烧录工具显示的进度条和提示信息来确认烧录结果。 总的来说,TCP232-410模块烧录工具是一种能够方便地进行TCP232-410模块编程和烧录的工具,通过连接计算机和烧录工具,可以将程序代码和配置信息烧录到TCP232-410模块中,实现串口转以太网的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值