tcp工具怎么用 安卓tcp客户端工具使用方法( 二 )


3、TCPCopyTCPCopy 是一种请求复制(复制基于 TCP 的 packets)工具  , 通过复制在线数据包 , 修改 TCP/IP 头部信息 , 发送给测试服务器 , 达到欺骗测试服务器的TCP 程序的目的 , 从而为欺骗上层应用打下坚实基础 。TCPCopy 由网易技术部的王斌在王波的工作基础上中 2010 年开发 , 并于 2011 年 9 月开源 。TTCPCopy 一般会与 TCPDump 共同使用 。基于 C 语言地址:https://github.com/session-replay-tools/tcpcopystars:3.9k
TCPCopy 由两部分组成:TCPCopy 和 intercept 。TCPCopy 在线上服务器上运行并捕获在线请求 , intercept 运行在辅助服务器上并执行一些辅助工作 , 例如将响应信息传递给 TCPCopy 。测试应用程序则在目标服务器上运行 。也就是使用上其实还需要一个辅助服务器 。
TCPCopy 的主要优势:
协议无感知 , 可以透明转发 , 能够支持基于 TCP 的任意应用层协议 , 如 MySQL , Kafka , Redis 等实时转发 , 延时较低可以保留原始请求 IP 端口信息 , 测试服务器可用于统计
同时 , 也具有以下不足:
无法动态添加多个下游服务器由于透明转发 , 不做协议解析 , 无法发现数据异常 , 如部分 TCP 包丢失 , 测试服务器将收到不完整的数据;此外 , 也无法对应用层数据进行筛选和修改进行修改核心组件设计时未进行多线程设计 , 处理能力存在瓶颈需要修改 iptables 来丢弃下游服务的回包 , 用在生产或公共的测试环境存在较大风险4、GOReplayGoreplay 是用 Golang 写的一个 HTTP 实时流量复制工具 。功能更强大 , 支持流量的放大、缩小 , 频率限制 , 还支持把请求记录到文件 , 方便回放和分析 , 也支持和 ElasticSearch 集成 , 将流量存入 ES 进行实时分析 。GoReplay 不是代理 , 而是监听网络接口上的流量 , 不需要更改生产基础架构 , 而是在与服务相同的计算机上运行 GoReplay 守护程序 。特点:简单易用地址:https://github.com/buger/goreplaystars:14.1k
与 TCPCopy 相比它的架构更简单 , 只有一个 gor 组件 , 如下:
只需要在生产服务器上启动一个 gor 进程 , 它负责所有的工作包括监听、过滤和转发 。它的设计遵循 Unix 设计哲学:一切都是由管道组成的 , 各种输入将数据复用为输出 。
敲下命令 , 即可进行流量复制 。无需理解复杂的概念 。同样支持在线直接转发 。存储到文件进行重放 , N 倍重放 。
sudo ./gor –input-raw :8000 –output-http=\\”http://localhost:8001\\”sudo ./gor –input-raw :8000 –output-file=requests.gor
相比 tcpcopy 只能复制 HTTP 和 HTTPS 的流量 。使用时编译很麻烦 , 一般直接使用编译好的版本 。
一般配合 diffy 一起使用 , diffy 提供 diff 能力 , 可以智能降噪音 。
diffy 地址:https://github.com/twitter-archive/diffy5、TCPReplayTCPReplay 是一种 pcap 包的重放工具 , 它可以将用 ethreal、wireshark工具抓下来的包原样或经过任意修改后重放回去 。它允许你对报文做任意的修改(主要是指对2层、3层、4层报文头) , 指定重放报文的速度等 , 这样tcpreplay 就可以用来复现抓包的情景以定位 bug , 以极快的速度重放从而实现压力测试 。地址:https://github.com/appneta/tcpreplaystars:7656、JVM-SandboxJVM 沙箱容器 , 一种 JVM 的非侵入式运行期 AOP 解决方案需要代码的编写 , 可适用于一些比较定制化的场景阿里巴巴开源地址:https://github.com/alibaba/jvm-sandboxstars:4.3k