![](https://csdnimg.cn/release/download_crawler_static/11468998/bg7.jpg)
TCPCopy Manual
第 2 页
会返回给客户端,这样做的好处有如下几个方面:
1 )不会增加出口带宽费用,节省测试成本
2 )不会在互联网产生 ghost 数据包
3 )不会对客户端的 TCP/IP 协议栈进行干扰
2.2
2.2
2.2
2.2 TCPCopy
TCPCopy
TCPCopy
TCPCopy vs
vs
vs
vs Tcpreplay
Tcpreplay
Tcpreplay
Tcpreplay
tcpdump
+Tcpreplay 或者
wireshark
+Tcpreplay 可以用来回放在线流量,这种方案可以解
决 TCP 层以下的问题,如防火墙问题,然而,此方案仍有如下缺陷:
1 )
tcpdump
抓在线数据包,必然或多或少影响在线 IO ,压力大的时候尤其明显
2 )
tcpdump
自身会丢包,特别是压力大的时候,丢包会很严重,远远超过 TCPCopy
3 )
tcpdump
抓的包需要保存下来,必然使其抓的包有限,一般很少抓几天的数据包
4 ) 利用 Tcpreplay 重放 , 一般需修改数据包的源 IP 地址 , 这样必然跟在线环境不一样
,
比如对内核协议栈的冲击就很不一样
5 ) 由于是离线回放 , 导致 Tcpreplay 回放的时候网络环境可能已经与抓包的时候不同了
,
而且 Tcpreplay 很难根据不同的环境做相应的调整,从而导致回放的效果与在线会有一定的
差距
6 ) Tcpreplay 官方称 不支持到服务端 , 即回放对上层应用无效
7 ) Tcpreplay 相对 TCPCopy ,使用更为复杂
因此,即使要测试 TCP 层以下的应用,也推荐使用 TCPCopy (加代理即可实现 ) 。
TCPCopy 主要用来 解决 TCP 层及其以上 (如 http 协议) 的流量复制 问题,用于 serve r
的 流量回放领域。总体来说, TCPCopy 有如下优点:
1 ) TCPCopy 能够对 server 进行回放,不仅可以离线回放,还可以实时回放
2 ) TCPCopy 实时复制在线请求包给测试服务器,并不需要大量 IO 操作,因此不影响
在线 IO
3 )实时回放所在的网络环境与当时的在线环境几乎是一样的
4 ) TCPCopy 不会去修改数据包的源 IP 地址
5 ) TCPCopy 实时复制转发过去的数据包 , 能够更好地继承在线数据包的网络延迟特征
6 ) TCPCopy 使用非常简单
2.3
2.3
2.3
2.3 影响 TCPCopy
TCPCopy
TCPCopy
TCPCopy 的因素
从图 2.1 可以看出,可能影响到 TCPCopy 的地方有如下几个:
1 ) Raw socket input 接口
2 ) Raw socket output 接口