gpt4 book ai didi

testing - tcp流重放工具

转载 作者:可可西里 更新时间:2023-11-01 02:30:24 24 4
gpt4 key购买 nike

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

最佳答案

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

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

  1. 如果这是一个交互性很强的客户端/服务器协议(protocol),您可以使用 scapy 去除流的 TCP 内容,解析时间和交互性。接下来使用此信息,为您的服务器打开一个新的 TCP 套接字,并将该数据反序列化到新的 TCP 套接字中。使用 scapy 解析原始流如果您遇到 TCP 重新传输和窗口动态,可能会很棘手。将字节写入新的 TCP 套接字不需要您自己处理序列号……操作系统会处理这个问题。

  2. 如果这是一个简单的流并且您可以不用计时(或者想手动插入计时信息),您可以使用 wireshark 从 TCP 流中获取原始字节而不用担心关于使用 scapy 进行解析.获得原始字节后,将这些字节写入新的 TCP 套接字(根据需要考虑交互性)。将字节写入新的 TCP 套接字不需要您自己处理序列号……操作系统会处理这个问题。

  3. 如果您的流是严格的文本(但不是 html 或 xml)命令,例如 telnet session ,Expect -like 解决方案可能比上述解析更容易。在此解决方案中,您不会使用 expect to spawn 直接从您的代码打开 TCP 套接字。 telnet(或其他) session 并使用 send 重播文本命令/expect .您期望的库/底层操作系统会处理序列编号。

  4. 如果您正在测试网络服务,我怀疑模拟一个真实的网络客户端点击带有 Selenium 的链接会容易得多。或 Splinter .您的 http 库/底层操作系统会处理新流中的 seq 编号。

关于testing - tcp流重放工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com