RFC6349是Viavi与来自BellCanada和DeutscheTelecom的代表合作开发的一种新的传输控制协议(TCP)吞吐量测试方法。RFC6349最近由互联网工程任务组(IETF)组织发布,提供了一种可重复的TCP吞吐量分析测试方法,以及用于优化网络和服务器性能的系统化流程、指标和准则。
本应用指南对“TCP吞吐量测试框架”即RFC6349进行了简要说明,并且重点描述了TrueSpeed这一自动化并且完全符合标准的ViaviRFC6349的实现——TrueSpeed现在可在ViaviMTS-6000A多服务应用程序模块(MSAM)和MTS-5800手持式网络测试仪上提供。本应用指南还讨论了TrueSpeedRFC6349与以太网服务激活标准的集成。这一功能强大的测试组合提供了一种全面的方法来确保在多服务(例如三网融合)环境中实现最佳最终客户体验。
RFC6349TCP测试方法
RFC6349指定了一种用于在托管IP网络中测量端对端TCP吞吐量的实用方法,其目标是为了更好地展现用户体验情况。在RFC6349框架中,还指定了TCP和IP参数来优化TCP吞吐量。
RFC6349建议在TCP测试之前始终执行第2/3层开通测试。验证位于第2/3层的网络之后,RFC6349指定执行以下三个测试步骤。
●路径MTU检测(依照RFC4821),用于验证网络最大传输单元(MTU),并进行活动TCP段大小测试来确保TCP净荷保持完整。
●基准往返延迟和带宽测试,预测最佳TCP窗口大小,用于自动计算TCPBDP。
●单一和多个TCP连接吞吐量测试,用于验证实现自动“满管”TCP测试的TCP窗口大小预测以下各个小节提供了每个RFC6349测试步骤的详细信息。
路径MTU发现(依照RFC4821)
TCP实现应使用依赖于互联网控制消息协议(ICMP)“需要分片”消息的路径MTU发现技术(PMTUD)来了解路径MTU。如果设备要发送的数据包在IP头中设置了不分片(DF)位,并且该数据包比下一个中继段的MTU大,则会丢弃该数据包,且该设备会将一条ICMP需要分片消息发回到最初发出该数据包的主机。ICMP需要分片消息包括下一个中继段的MTU,PMTUD使用该MTU来对自身进行调整。遗憾的是,由于许多网络管理员完全禁用了ICMP,因此这一技术可能多少有些不可靠。
因此,RFC6349建议执行依照RFC4821的分组层路径MTU发现(PLPMTUD)来验证网络路径MTU,因为它可在有或者没有ICMP的情况下使用。PLPMTUD指定使用实时TCP流量轮询网络来确定MTU。采用了与设置IP数据包DF位相同的技术,但由于它使用实时TCP会话,因此不依赖于ICMP。该算法使用TCP重发条件来搜索MTU,用于避免在所有后续步骤中分片。
基准往返延迟和带宽
务必要确定基准往返时间(RTT)或非堵塞固有延迟以及端到端网络的瓶颈带宽(BB),然后才能开始TCP测试。这些基准测量用于计算BDP和估算TCP接收窗口(RWND)大小,并发送将在后续测试步骤中使用的套接字缓冲区。
在广域网(WAN)链路上,必须对TCP进行适当的配置,来调整发送方在接收来自接收方的确认(ACK)之前可传输的字节数。这一“in-flight”字节数通常称为TCP窗口;尽管事实上存在若干个工作中的TCP窗口机制。
图1描绘了往返延迟(RTD)为25毫秒的45MbpsWAN链路上的TCP传输中数据字节数这一概念。

在图1中,TCP窗口的调优不适当,在请求ACK之前只从发送方传输了64kB。
如RFC6349所述,BDP为最佳TCP窗口,计算方式为

在此示例中,BDP将为140kB,是发送方64kB窗口大小的两倍多,并且发送方将只获得大约20Mbps的吞吐量。
RFC6349定义了以下机制用于测量RTT:
●第2/3层的活动流量生成,以及从一端到另一端的环回
●数据包捕获
●网络设备中的扩展管理信息库(MIB)(RFC4898)
●ICMPping
BDP同时依赖于RTT和BB,因此它还需要测量BB。为运营网络采用的第2/3层测试(例如RFC2544)被指定为用于测量BB的一种方法。知道了RTT和BB之后,RFC6349将能够计算后续TCP吞吐量测试的预期TCP性能。
单一和多个TCP连接吞吐量测试
决定是要采用单一还是多个TCP连接测试取决于与最终用户环境中配置的TCPRWND相关的BDP大小。例如,长肥网络(LFN)的BDP为2MB,则使用多个连接测试此网络路径可能更加现实。假定是64kB的典型主机TCPRWND大小(例如,WindowsXP),则使用32个TCP连接将模拟出小型办公室场景。
尽管RFC6349不要求测试多个连接,但作为最现实的方法,强烈建议进行此测试来准确地验证TCP吞吐量。RFC6349还定义了在TCP吞吐量测试过程中要测量的特定指标,接下来将加以讨论。
RFC6349指标
下面介绍了RFC6349TCP指标,以及使用这些指标来诊断TCP性能不理想原因的示例。
TCP传输时间