内容
您可以使用
Test TCP
程序 (TTCP)
测量通过 IP
路径的 TCP
吞吐量。
要使用该程序,请启动路径一端的接收器,然后启动路径另一端的发射器。
发射端将指定数量的
TCP
数据包发送到接收端。
测试结束时,两端显示已传输的字节数以及数据包在两端之间传输所用的时间。
然后可以使用这些图来计算链路上的实际吞吐量。
有关 TTCP
的一般信息,请参阅
。
TTCP
程序对于确定特定广域网或调制解调器连接的实际比特率很有效。
然而,您也可以使用此功能来测试任何两个有
IP
连接的设备之间的连接速度。
有关文档规则的详细信息,请参阅
。
本文档的读者应具备以下方面的知识:
-
TTCP
要求
Cisco
IOS®
软件版本
11.2
或更高版本,以及功能集
IP
Plus
(is-
images)
或服务提供商
(p-
images)。
注意: ttcp
命令是隐藏、不支持的特权模式命令。
因此,其可用性在各个
Cisco
IOS
软件版本中可能会有变化,在某些版本中可能不存在。
例如,某些平台要求
Cisco
IOS
企业功能集来执行此活动。
-
客户端的
TTCP
软件可从以下网站上获取:;
对于
Windows
客户端下载
。
本文档不限于特定的软件和硬件版本。
在如下所示的示例中,我们尝试确定
Microsoft
Windows
PC 与
AS5300
接入服务器之间的调制解调器连接的速度。
尽管此处包含的许多主题和说明是针对调制解调器连接的,但
TTCP
程序可以在任何两个设备之间使用。
请使用
show
modem
operational-status
命令(用于调制解调器链路)检查连接参数。
对于其他 LAN
或广域网情况,则无需执行该步骤。
customer-dialin-sj>
show modem operational-status 1/51 Parameter
#1 Connect Protocol: LAP-M Parameter #2 Compression:
None ...
!--- Output omitted
... Parameter #8 Connected Standard:
V.90 Parameter #9 TX,RX Bit Rate:
45333,24000
该编辑过的输出显示客户端以
45333
bps
的下行链路速率和
24000
bps
的上行链路速率连接在
V.90 中。
客户端调制解调器上禁用了数据压缩。
由于 TTCP
测试模式可高度压缩,任何数据压缩都会使调制解调器链路实际吞吐量的测量产生偏差。
在如下所示的示例中,我们尝试确定
Microsoft
Windows
PC 与
AS5300
接入服务器之间的调制解调器连接的速度。
尽管此处包含的许多主题和说明是针对调制解调器连接的,但
TTCP
程序可以在任何两个设备之间使用。
注意: 如以上所述,在开始
TTCP
测试前,请先设法得到调制解调器(端口)运行状态的快照。
customer-dialin-sj>ttcp
transmit or receive [receive]:
transmit
!--- The AS5300 is the ttcp transmitter
Target IP address: 10.1.1.52
! -- Remote device (the Windows PC) IP address
perform tcp half close [n]: use tcp driver [n]: send buflen [8192]: send nbuf
[2048]: 50
!--- Number of buffers to transmit is now set to 50
(default is 2048 buffers)
bufalign [16384]: bufoffset [0]: port
[5001]: sinkmode [y]: buffering on writes [y]: show tcp information at end [n]:
ttcp-t: buflen=8192, nbuf=50, align=16384/0, port=5001 tcp ->10.1.1.52
ttcp-t: connect (mss 1460, sndwnd 4096, rcvwnd 4128)
这会使
Cisco
IOS TTCP
建立与
TTCPW 的
TCP 连接(在
Windows
计算机上)。
当 PC 收到
TTCP
会话请求时,TTCPW
会显示一条消息,指明
PC
已接受来自路由器
IP 地址的
TTCP 会话:
ttcp-r: accept from 10.1.1.1
当 TTCP
发送器发送完所有数据之后,两端都将打印吞吐量统计信息并终止。
在本示例中,IOS
TTCP
发送器显示:
ttcp-t: buflen=8192, nbuf=50, align=16384/0, port=5001 tcp ->
10.1.1.52 ttcp-t: connect (mss 1460, sndwnd 4096, rcvwnd 4128) ttcp-t: 409600
bytes in 84544 ms (84.544 real seconds) (~3 kB/s) +++ ttcp-t: 50 I/O calls
ttcp-t: 0 sleeps (0 ms total) (0 ms average)
另一方面,PC
TTCPW
接收器显示:
ttcp-r:
409600 bytes in 8
4.94 seconds = 4.71 KB/sec
+++ ttcp-r: 79 I/O calls, msec/call = 1101.02, calls/sec =0.93
这时,您可以对调制解调器或端口运行状态拍摄另一张快照。
该信息在分析过程中很有用,例如,检查调制解调器连接是否出现再培训或速度转换。
由于通常使用
kbps(千位每秒,或
1000
位每秒)而不是
kbps(千字节每秒,或
1024
字节每秒)来评估连接速度,所以必须使用
TTCP
产生的信息来计算比特率(单位为
kbps)。
用接收到的字节数和传输时间来计算连接的实际比特率。
通过将字节数传换成位,然后除以传输时间,来计算比特率。
在本示例中,Windows
PC 在
84.94
秒内接收了
409600
个字节。
我们可以这样计算比特率:(409600
字节 * 8
位每字节)除以
84.94 秒
= 38577
bps 或
38.577
kbps。
注意: 接收器端的结果稍微准确一些,因为发射器在执行最后一次写入(也就是在数据实际穿越链路前)可能会认为它已经完成。
相对于
45333
bps
的名义链路速度(根据
show
modem
operational-status
命令来确定),这只是
85% 的效率。
考虑到调制解调器
(LAPM)
的链路接入过程、PPP、IP
和 TCP
报头开销,这样的效率是正常的。
如果这些结果与您的预期有很大不同,请分析运行状态、调制解调器日志,以及客户端调制解调器统计信息(如有必要),以查看可能影响性能的原因(例如
EC
重新传输、速度转换和再培训等)。
然后执行上行链路吞吐量测试。
这与下行链路测试基本相同,只不过
Cisco
IOS TTCP
是接收器而
Windows
TTCPW
是发射器。
首先,请使用默认参数将路由器作为接收器进行设置:
customer-dialin-sj>ttcp
transmit or receive [receive]:
perform tcp half close [n]: use tcp driver [n]: receive buflen [8192]: bufalign
[16384]: bufoffset [0]: port [5001]: sinkmode [y]: rcvwndsize [4128]: delayed
ACK [y]: show tcp information at end [n]: ttcp-r: buflen=8192, align=16384/0,
port=5001 rcvwndsize=4128, delayedack=yes tcp
将 PC 作为
TTCP
发射器进行激活,并指定路由器的
IP 地址。
请参阅
Windows
TTCP
软件随附的自述文件,查看相应语法:
C:\PROGRA~1\
TTCPW>ttcpw -t -s -n 50 10.1.1.1 ttcp-t:
buflen=8192, nbuf=50, align=16384/0, port=5001 tcp -> 10.1.1.1 ttcp-t:
socket ttcp-t: connect
IOS
接收器报告以下结果:
ttcp-r: accept from 10.1.1.52 (mss 1460, sndwnd 4096, rcvwnd
4128) ttcp-r:
409600 bytes in 23216 ms (23.216 real seconds)
(~16kb/s) +++ ttcp-r: 280 I/O calls ttcp-r: 0 sleeps (0 ms total) (0 ms average)
该结果显示,上行链路吞吐量为
141144
bps,或者说相对于
24 kbps
的名义上行链路速率,压缩率接近
6:1。
考虑到硬件压缩已禁用(我们已根据
show
modem
operational-status
命令进行确定),这是一个有趣的结果。
但是,请用
IOS 命令
show
compress
检查是否正在使用任何软件压缩。
以下是使用
TTCP 测量
IP
路径吞吐量的一些通用指导原则:
-
要产生有意义的结果,运行
TTCP
的主机应该有相对于链路速度的大量
CPU
电源。
如果链路为
45
kbps
并且主机为空闲的
AS5300
和
700
MHz
PC,以上规则适用。
如果链路为
100baseT,并且其中一台主机是
Cisco
2600
路由器,以上规则便不适用。
-
Cisco
IOS
对源自路由器的数据和通过路由器传输的数据的处理方式有所不同。
在上面的示例中,虽然
Microsoft
点对点压缩
(MPPC)
在测试的链路上经过协商,但路由器传输的数据未使用软件压缩,而
PC
传输的数据使用了软件压缩。
这就是上行链路吞吐量明显大于下行链路吞吐量的原因。
对于高带宽链路的性能测试,应该始终通过路由器进行测试。
-
对于有高带宽
*
延迟结果的
IP
路径,用足够大小的
TCP
窗口充满管道十分重要。
对于调制解调器链路的情况,默认的
4 KB
窗口大小通常就足够了。
您可以使用
ip
tcp
window-size
命令增加
IOS
TCP
窗口大小。
请参阅非
IOS
系统的相应文档。
测试调制解调器链路吞吐量的另一种简单的方法是使用开源工具
。
在接入服务器后面的
Web
服务器上安装此工具,并让
Windows
PC
客户端使用浏览器调用
Java 工具。
然后可以使用此工具快速确定调制解调器连接上的数据速率。
该调制解调器吞吐量小程序是一个开源工具,Cisco
技术支持中心不支持该工具。
有关详细的安装和操作说明,请参阅此工具随附的自述文件。