Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1912394
  • 博文数量: 376
  • 博客积分: 2147
  • 博客等级: 大尉
  • 技术积分: 3642
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-06 10:47
文章分类

全部博文(376)

文章存档

2019年(3)

2017年(28)

2016年(15)

2015年(17)

2014年(182)

2013年(16)

2012年(115)

我的朋友

分类: 系统运维

2014-07-15 11:25:32

Cisco经典文档

当前位置: →Cisco经典文档

使用 Test TCP (TTCP) 测试吞吐量

            

 

                                                       文档下载:


内容



     
     
     


     
     

您可以使用 Test TCP 程序 (TTCP) 测量通过 IP 路径的 TCP 吞吐量。 要使用该程序,请启动路径一端的接收器,然后启动路径另一端的发射器。 发射端将指定数量的 TCP 数据包发送到接收端。 测试结束时,两端显示已传输的字节数以及数据包在两端之间传输所用的时间。 然后可以使用这些图来计算链路上的实际吞吐量。 有关 TTCP 的一般信息,请参阅 。/images/exit.gif

TTCP 程序对于确定特定广域网或调制解调器连接的实际比特率很有效。 然而,您也可以使用此功能来测试任何两个有 IP 连接的设备之间的连接速度。

有关文档规则的详细信息,请参阅 。

本文档的读者应具备以下方面的知识:

  • TTCP 要求 Cisco IOS® 软件版本 11.2 或更高版本,以及功能集 IP Plus (is- images) 或服务提供商 (p- images)。

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

  • 客户端的 TTCP 软件可从以下网站上获取:;/images/exit.gif 对于 Windows 客户端下载 。/images/exit.gif

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

  • 确保测试涉及的两个设备之间有 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 测试模式可高度压缩,任何数据压缩都会使调制解调器链路实际吞吐量的测量产生偏差。

  • 在 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 重新传输、速度转换和再培训等)。

然后执行上行链路吞吐量测试。 这与下行链路测试基本相同,只不过 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 系统的相应文档。

测试调制解调器链路吞吐量的另一种简单的方法是使用开源工具 。/images/exit.gif 在接入服务器后面的 Web 服务器上安装此工具,并让 Windows PC 客户端使用浏览器调用 Java 工具。 然后可以使用此工具快速确定调制解调器连接上的数据速率。 该调制解调器吞吐量小程序是一个开源工具,Cisco 技术支持中心不支持该工具。 有关详细的安装和操作说明,请参阅此工具随附的自述文件。

 

 

注:本人能力有限,如遇不足之处,还请指正!

  QQ交流群:96134769  

 

阅读(1785) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~