首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tcp流重放工具

tcp流重放工具
EN

Stack Overflow用户
提问于 2012-05-31 21:28:04
回答 5查看 10.2K关注 0票数 13

我正在寻找一种工具,用于录制和回放一侧的TCP流测试。我看到了记录整个TCP流(服务器和客户端)的工具,用于测试防火墙等,但我正在寻找的是一种工具,它只记录客户端提交的流量(带有计时信息),然后将其重新提交给服务器进行测试。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-01 00:51:11

由于TCP处理重传、序列号、SACK和窗口的方式,这可能是一项比您想象的更困难的任务。

通常,人们使用tcpreplay来重放数据包;然而,它是doesn't support synchronizing TCP sequence numbers。由于您需要具有双向TCP流(这需要同步序列编号),因此请使用以下选项之一:

TCP

  • 如果这是一个非常交互的客户端/服务器协议,你可以使用scapy来剥离你的流的内容,解析时间和交互性。接下来,使用此信息打开到服务器的新TCP套接字,并将该数据反序列化为新的TCP套接字。如果遇到TCP重传和窗口动态,使用scapy解析原始流可能会很棘手。将字节写入新的TCP套接字将不需要自己处理序列号...
  1. 如果这是一个简单流,你可以不计时(或者想手动插入计时信息),你可以使用wireshark从TCP流中获取原始字节,而不用担心用scapy进行解析。获得原始字节后,将这些字节写入新的TCP套接字(根据需要考虑交互性)。将字节写入新的TCP套接字将不需要自己处理序列号...
  2. 如果您数据流是严格的文本(但不是html或xml)命令,例如telnet会话,则Expect-like解决方案可能比前面提到的解析更容易。在这个解决方案中,您不会直接从代码中打开TCP套接字,而是使用expect来spawn远程登录(或其他任何)会话,并使用send / expect重播文本命令。你所期望的库/底层操作系统将会处理你正在测试的web服务的序列numbering.
  3. If,我怀疑用SeleniumSplinter来模拟一个真实的web客户端点击链接会容易得多。您的http库/底层操作系统将负责新流中的序列号。
票数 14
EN

Stack Overflow用户

发布于 2013-04-11 08:29:09

看看SYN code.google.com/p/wireplaygithub.com/abhisek/wireplay,它承诺根据需要修改所有SYN/ACK序列号,重放捕获的WirePlay会话的客户端或服务器端。

我不知道是否有可用的二进制构建,您需要自己编译它。

请注意,我自己还没有尝试过这一点,但正在研究。

票数 3
EN

Stack Overflow用户

发布于 2013-06-27 09:21:04

是的,实现这样一个工具是一项艰巨的任务。我在两年前开始实现这种工具,现在这个工具已经成熟了。尝试一下,也许你会发现它就是你要找的工具。

https://github.com/wangbin579/tcpcopy

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10834615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档