PCATTCP学习笔记
PACATTCP学习笔记
一.PACATTCP是什么(以下内容来自PACATTCP官方网站英文翻译)
TTCP,即Test TCP,是命令行下执行的带宽测试软件,用于测试两个系统间TCP和UDP的性能表现。
二.PACATTCP运行环境
PCATTCP是Win32命令行程序,必须运行于命令行或者是批处理文件,现在也有了UNIX和LINUX下的运行程序。PCATTCP运行需要两个Windows平台,或者一个Windows平台与一个Linux平台,其中一个作为接收端,一个作为发送端。
三.PACATTCP使用
1.开启接收端
打开命令行,切换到PACATTCP所在的目录,执行:pcattcp –r ,即可启动PCATTCP接收端。
2.开启发送端
打开命令行,切换到PACATTCP所在的目录,执行:pcattcp –t 接收端IP ,即可启动与接收端的带宽测试连接。
四.应用举例
1.IPv4环境下应用
接收端:
C:\Users\xiaoming>PCATTCP.exe -r -f M -c
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
IP Version : IPv4
Started TCP Receive Test 0...
TCP Receive Test
Local Host : xiaoming-PC
**************
Listening...: On TCPv4 0.0.0.0:5001
Accept : TCPv4 0.0.0.0:5001 <- 172.22.101.3:54974
Buffer Size : 8192; Alignment: 16384/0
Receive Mode: Sinking (discarding) Data
Statistics : TCPv4 0.0.0.0:5001 <- 172.22.101.3:54974
4274257920 bytes in 80.152 real seconds = 50.86 MB/sec +++
numCalls: 525749; msec/call: 0.156; calls/sec: 6559.372
参数解释:
-r 启动接收端
-f M 以M为单位显示带宽
-c 持续接受,直到手动终止(CTRL + C)
文中标红位置为带宽测试结果
发送端:
C:\Users\xiaoming>PCATTCP.exe -t -f M -c 172.22.101.3
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
IP Version : IPv4
Started TCP Transmit Test 0...
TCP Transmit Test
Transmit : TCPv4 0.0.0.0 -> 172.22.101.3:5001
Buffer Size : 8192; Alignment: 16384/0
TCP_NODELAY : DISABLED (0)
Connect : Connected to 172.22.101.3:5001
Send Mode : Sending Pattern CONTINUOUS
Statistics : TCPv4 0.0.0.0 -> 172.22.101.3:5001
16777216 bytes in 0.258 real seconds = 62.06 MB/sec +++
numCalls: 2048; msec/call: 0.129; calls/sec: 7943.748
参数解释:
-t 开启发送端
-f M 以M为单位显示带宽
-c 持续发送数据,知道手动终止(CTRL + C)
文中标红位置为带宽测试结果
五.PCATTCP在Linux下的应用
相比与在Windows下的应用,PACATTCP在Linux下功能就缩减了很多,参数也少了很多。如PCATTCP在Linux下不支持IPv6协议,不支持连续发送等。
PCATTCP在Linux下启动,也同Windows下启动差不多,首先在接收端启动程序:
[root@RedHat-XM ~]# ttcp -r
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
ttcp-r: socket
PCATTCP在Linux下的运行程序名为ttcp,其他参数与Windows下基本相同。
在发送端启动程序:
[root@RedHat-XM pcattcp]# ttcp -t -f M 172.22.101.8
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> 172.22.101.8
ttcp-t: socket
ttcp-t: nodelay
ttcp-t: connect
ttcp-t: 16777216 bytes in 0.04 real seconds = 374.31 MB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.02, calls/sec = 47912.04
ttcp-t: 0.0user 0.0sys 0:00real 75% 0i+0d 0maxrss 0+3pf 0+3csw
由以上可以看出,带宽为374.31 MB/sec(本机)。
PCATTCP在Linux下不能持续发送,不能对设备造成持续压力。在实际应用中,可以在Linux 下编写shell脚本,来实现对于接收端的持续压力。
#!/bin/sh
while [ 1 ]
do
ttcp -t -f M 172.22.101.3
done
六.PCATTCP所有参数解释
Windows下:
C:\Users\xiaoming>PCATTCP.exe -h
PCAUSA Test TCP Utility V2.01.01.14 (IPv4/IPv6)
Usage: pcattcp -t [-4|-6] [-options] host [ < in ]
pcattcp -r [-4|-6] [-options > out]
Common options:
-4 use IPv4 (default)(使用IPv4协议)
-6 use IPv6(使用IPv6协议)
-l ## length of bufs read from or written to network (default 8192)(缓冲大小,默认8192)-u use UDP instead of TCP(使用UDP协议)
-p ## port number to send to or listen at (default 5001)(发送或监听的端口,默认5001 Can specify multiple sequential ports two ways:(可以以两种形式指定多个端口)
-p #first-#last
-p #first+#additional
-s toggle sinkmode (enabled by default)
sinkmode enabled:
-t: source (transmit) fabricated pattern(发送端)
-r: sink (discard) all received data(接收端)
sinkmode disabled:
-t: reads data to be transmitted from stdin
-r: writes received data to stdout
-A align the start of buffers to this modulus (default 16384)(指定缓冲区的开始系数)-O start buffers at this offset from the modulus (default 0) (指定缓冲区的偏移系数)-v verbose: print more statistics(显示更多统计数据)
-d set SO_DEBUG socket option(开启debug模式)
-b ## set socket buffer size (if supported)(设置socket缓冲区大小)
-f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga(设置带宽的显示格式,K,M或G)
-c -t: send continuously(发送端持续发送)
-r: accept multiple connections sequentially(接收端持续接受)-a bind to local host interface IP address (绑定本地网卡地址)
Options specific to -t:(以下参数只针对于发送端)
-n ## number of source bufs written to network (default 2048)(向网络写入源缓冲内容的序号)
-D don't buffer TCP writes (sets TCP_NODELAY socket option)(不缓冲TCP写入内容)-w ## milliseconds of delay before each write (default 0)(每次写入前的延时)
-R ## desired transmit data rate in bytes/second(以bytes/second显示速率)
Options specific to -r:(以下参数只针对于接收端)
-M concurrent TCP/UDP multithreaded receiver(开启TCP/UDP的并发接收)
-B for -s, only output full blocks as specified by -l (for TAR)
-T "touch": access each byte as it's read
Linux下参数比Windows下少,已有的参数可以参照Windows下参数解释表。