目录

简介

开始使用前

规则

先决条件

使用的组件

为 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)。

注意： tcp命令是隐藏的、不受支持的特权模式命令。因此，其可用性在各个 Cisco IOS 软件版本中可能会有变化，在某些版本中可能不存在。例如，某些平台要求 Cisco IOS 企业功能集来执行此活动。

使用的组件

本文档不限于特定的软件和硬件版本。

为 TTCP 会话做准备

- 确保测试涉及的两个设备之间有 IP 连接。

- 如有必要，下载并安装非 IOS 客户端的 TTCP 软件。

在如下所示的示例中，我们尝试确定 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 测试模式可高度压缩，任何数据压缩都会使调制解调器链路实际吞吐量的测量产生偏差。

执行下行链路测试（从路由器到 Windows PC）

- 在 PC 上启动 ttcpw 程序（在 DOS 窗口中），作为接收器运行。请参阅 Windows TTCP 软件随附的自述文件，查看相应语法。

C:\PROGRA~1\TTCPW>

ttcpw -r -s ttcp-r: buflen=8192, nbuf=2048,

align=16384/0, port=5001 tcp ttcp-r: socket

- 在AS5300上启动TTCP发送器（发射器）。将大多数设置保留为默认值，但要传输的缓冲区数除外。缓冲区的默认数量为 2048，因此 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 重新传输、速度转换和再培训等）。

执行上行链路测试（从 Windows PC 到路由器）

然后执行上行链路吞吐量测试。这与下行链路测试基本相同，只不过 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 技术支持中心不支持该工具。有关详细的安装和操作说明，请参阅此工具随附的自述文件。

相关信息

- 使用 TTCP 的网络性能测试

- 拨号和接入技术支持

- 技术支持和文档 - Cisco Systems