内容
前言
准备工作
惯例
前提条件
使用的组件
为
TTCP
会话做准备
执行下行链路测试(从路由器到
Windows
PC)
获得结果
分析结果
执行上行链路测试(从
Windows
PC
到路由器)
一般准则
您可以使用
Test TCP
程序 (TTCP)
测量通过 IP
路径的 TCP
吞吐量。
要使用该程序,请启动路径一端的接收器,然后启动路径另一端的发射器。
发射端将指定数量的
TCP
数据包发送到接收端。
测试结束时,两端显示已传输的字节数以及数据包在两端之间传输所用的时间。
然后可以使用这些图来计算链路上的实际吞吐量。
有关 TTCP
的一般信息,请参阅使用
TTCP
的网络性能测试
。
TTCP
程序对于确定特定广域网或调制解调器连接的实际比特率很有效。
然而,您也可以使用此功能来测试任何两个有
IP
连接的设备之间的连接速度。
有关文档规则的详细信息,请参阅
Cisco
技术提示规则。
本文档的读者应具备以下方面的知识:
-
TTCP
要求
Cisco
IOS®
软件版本
11.2
或更高版本,以及功能集
IP
Plus
(is-
images)
或服务提供商
(p-
images)。
注意: ttcp
命令是隐藏、不支持的特权模式命令。
因此,其可用性在各个
Cisco
IOS
软件版本中可能会有变化,在某些版本中可能不存在。
例如,某些平台要求
Cisco
IOS
企业功能集来执行此活动。
-
客户端的
TTCP
软件可从以下网站上获取:http://renoir.csc.ncsu.edu/ttcp/;
对于
Windows
客户端下载
ttcpw.zip
。
本文档不限于特定的软件和硬件版本。
在如下所示的示例中,我们尝试确定
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
系统的相应文档。
测试调制解调器链路吞吐量的另一种简单的方法是使用开源工具
Through-Putter
。
在接入服务器后面的
Web
服务器上安装此工具,并让
Windows
PC
客户端使用浏览器调用
Java 工具。
然后可以使用此工具快速确定调制解调器连接上的数据速率。
该调制解调器吞吐量小程序是一个开源工具,Cisco
技术支持中心不支持该工具。
有关详细的安装和操作说明,请参阅此工具随附的自述文件。