网络互连设备的基准测试方法

摘要

本文档讨论并定义了许多可用于描述网络互连设备的性能特性的测试。除了定义测试外,本文档还描述了用于报告测试结果的具体格式。

附录A列出了我们认为应包括的特定情况下的测试和条件,并提供了有关测试实践的额外信息。

附录B是用于各种媒介上特定帧大小的最大帧速率的参考列表。

附录C给出了测试中使用的帧格式的一些示例。

1、引言

供应商经常从事“眼镜精神”,试图让他们的产品在市场上占有更好的地位。这通常涉及“烟雾和镜子”,以迷惑产品的潜在用户。本文档定义了一组特定的测试,供应商可以使用这些测试来测量和报告网络设备的性能特性。这些测试的结果将为用户提供来自不同供应商的可比数据,用于评估这些设备。先前的文档“网络互连设备的基准术语”(RFC 1242)定义了本文档中使用的许多术语。在使用本文件之前,应查阅术语文件。

2、现实状况

在编写本文件时,作者试图牢记所述试验设备都必须实际构建的要求。我们不知道是否有“现成”设备可用于执行所有测试,但我们认为可以建造此类设备。

3、待运行的测试

本文档中描述了许多测试,并非所有的测试都适用于所有类型的被测设备(DUT),供应商应执行特定类型产品支持的所有测试。作者明白在所有推荐条件下进行所有推荐试验需要相当长的时间,但我们认为这些结果值得付出这些努力。附录A列出了我们认为应包括在特定情况下的一些测试和条件。

4、评估结果

执行所有推荐的测试将会产生大量的数据,这些数据中的大部分不适用于各种情况下的设备评估。例如,路由器转发IPX帧的速率对于为不支持该协议的环境选择路由器几乎没有什么用处。即使评估与特定网络安装相关的数据,也需要可能不容易获得的经验。此外,必须选择要运行的测试和评估测试数据,同时了解关于少量试验的重复性、方差和统计意义的公认测试实践。

5、要求

在本文件中,用于定义每个特定要求的重要性的词语大写。这些词语包括:

  • MUST、REQUIRED、SHALL表示该项目是本规范的绝对要求。
  • SHOULD、RECOMMENDED表示在特定情况下,可能有正当理由忽略这一项,但在选择不同的课程之前,应理解其全部含义,并仔细权衡情况。
  • MAY、OPTIONAL的意思是这个项目是真正可选的。例如,一个供应商可能会选择包含该项目,因为特定的市场需要它,或者因为它增强了产品;另一个供应商可能会忽略相同的项目。

如果实现不能满足其实现协议的一个或多个必需(MUST)要求,则该实现不兼容。

满足其协议的所有必须(MUST)和应该(SHOULD)要求的实现称为“无条件遵从”。

一个满足所有必须(MUST)要求但不是所有应该(SHOULD)要求的协议被称为“有条件地符合”。

6、测试设置

实现这一系列测试的理想方法是使用带有发送和接收端口的测试仪,从测试仪的发送端口连接到DUT的接收端口,又从DUT的发送端口连接回测试仪,如图1所示。由于测试仪发送测试流量并将其接收回来,因此在流量被转发到DUT之后,测试仪可以很容易地确定是否接收到了所有发送的数据包,并验证是否接收到了正确的数据包。类似的测试可以通过如图2所示的拓扑结构,将发送和接收设备分离出来对接到测试仪两端,但是除非它们由某些计算机以模拟单台测试仪的方式远程控制,否则精确执行某些测试(特别是吞吐量测试)所需的劳动可能会令人望而却步。

6.1、多种媒介类型的测试设置

可以使用两种不同的设置来测试DUT,DUT用于实际网络中,以连接不同媒介类型的网络,例如本地以太网到主干FDDI环。测试仪可以支持两种介质类型,在这种情况下,将使用图1所示的设置。

另一种测试设置中使用两个相同的DUT,如图3,在许多情况下,这种设置可以更准确地模拟实际场景。例如,用广域网链路或高速主干网连接两个局域网。这种设置在模拟以太局域网上的客户机与FDDI主干上的服务器进行交互的系统方面并不太好。

7、DUT设置

在开始执行测试之前,必须按照提供给用户的说明配置待测试的DUT,具体来说,就是所有支持的协议都将在设置DUT期间配置和使能(见附录A)。预期情况是所有测试将在不改变DUT配置或设置的情况下运行,而不是以执行特定测试所需的方式。例如,在帧处理速率的测试之间更改帧处理缓冲区的大小或在测试该协议的吞吐量时禁用除一个传输协议以外的所有传输协议是不可接受的。在启动测试以确定过滤器对吞吐量的影响时,有必要修改配置,但唯一的更改必须是启用特定的过滤器。DUT的设置应包括通常建议的路由更新间隔和保活频率。测试期间使用的软件的特定版本和精确DUT配置(包括禁用的功能)必须作为结果报告的一部分。

8、帧格式

用于以太网TCP/IP的测试帧格式见附录C:测试帧格式。这些精确的帧格式应该用于本文档中描述的此协议/媒介组合的测试,并且这些帧将用作测试其他协议/媒介组合的模板。用于定义特定测试系列的测试帧的特定格式必须包含在结果报告中。

9、帧大小

所有描述的测试应在多种帧尺寸下进行。具体而言,大小应包括被测介质上被测协议的最大和最小合法大小,以及能够获得DUT性能完整特性的足够大小。除非另有说明,否则对每个试验应进行至少五种帧大小的试验。

理论上,最小长度的UDP应答请求帧由一个IP头(最小长度20字节)、一个UDP头(8字节)和所使用的媒介所需的任何MAC头组成。理论上的最大帧长由IP报头中长度字段(Length/Type)的大小决定。在几乎所有情况下,实际的最大和最小尺寸都是由介质的限制决定的。

理论上,以一种均匀分布理论帧速率的方式来分配帧大小是理想的。这些建议结合了这一理论,但规定了易于理解和记忆的帧大小。此外,在每种介质类型上都指定了许多相同的帧大小,以便进行性能比较。

注:在某些媒体类型上包含不现实的短帧(即,很少或没有数据空间)有助于表征DUT的每帧处理开销。

9.1、以太网上使用的帧大小

64, 128, 256, 512, 1024, 1280, 1518

这些大小包括以太网标准允许的最大和最小帧长,以及在这些极限之间的尺寸选择,对于较小的帧尺寸和较高的帧速率具有更细的粒度。

9.2、用于4Mb和16Mb令牌环的帧大小

54, 64, 128, 256, 1024, 1518, 2048, 4472

令牌环的帧大小建议假定路由协议的帧中没有RIF字段,RIF字段将出现在任何直接源路由桥性能测试中。令牌环上UDP的最小帧大小为54字节。由于许多令牌环接口的大小限制,建议16Mb令牌环的最大长度为4472字节,而不是理论上的17.9Kb。其余尺寸的选择允许与其他类型的介质进行直接比较。如果需要更高的数据速率,则可以另外使用IP(即,非UDP)帧,在这种情况下,最小帧大小是46字节。

9.3、FDDI上使用的帧大小

54, 64, 128, 256, 1024, 1518, 2048, 4472

FDDI上UDP的最小帧长为53字节,建议的最小帧长为54字节,以允许直接比较令牌环性能。最大帧长建议使用4472字节,而不是理论上的4500字节,以允许进行相同类型的比较。如果需要更高的数据速率,则可以另外使用IP(即,非UDP)帧,在这种情况下,最小帧长是45字节。

9.4、存在不同MTU时的帧大小

当互连DUT支持与具有不同MTU的链路连接时,应使用具有“更大”MTU的链路的帧大小,最大可到所测试协议的限制大小。如果互连DUT在MTU不匹配的情况下不支持帧分片,则该帧大小的转发速率应报告为零。

例如,使用连接FDDI和以太网的网桥或路由器进行IP转发的测试,应该在从FDDI进入到以太网链路时使用FDDI的帧大小。如果网桥不支持IP分片,那么对于以太网来说太大的帧的转发速率应该报告为零。

10、验证接收到的帧

测试设备应该丢弃在测试运行期间接收到的不是实际转发的测试帧的任何帧,例如,“保活”和“路由更新”帧不应包含在接收帧的计数中。在任何情况下,测试设备都应验证接收帧的长度,并检查它们是否与预期长度匹配。

更可取的是,测试设备应包括发送帧中的序列号,并在接收帧上检查该序列号。如果这样做了,报告的结果除了应包括丢弃的帧数外,还应包括接收到的无序帧数、接收到的重复帧数以及接收到的帧编号序列中的间隔数。所描述的某些测试需要此功能。

11、调节器

了解DUT在多种条件下的性能可能很有用,其中一些条件如下所述。报告的结果应包括测试设备能够产生的所有这些条件。测试组应该首先在没有任何修改条件的情况下运行,然后在每个条件下分别重复。为了保持比较这些测试结果的能力,生成修改条件(例如,管理查询)所需的任何帧将被包括在与正常测试帧相同的数据流中以代替其中一个测试帧,并且不在单独的网络端口上被提供给DUT。

11.1、广播帧

在大多数路由器设计中,当接收到寻址到硬件广播地址的帧时,需要特殊处理。在网桥(或在网桥模式的路由器)中,这些广播帧必须被灌到多个端口。测试帧的流应增加1%的帧寻址到硬件广播地址。发送到广播地址的帧应该是路由器不需要处理的类型。本测试的目的是确定是否对流中其他数据的转发速率有任何影响。应使用的特定帧包含在测试帧格式文档中。广播帧应均匀地分布在整个数据流中,例如,每100个帧。

同样的测试应该在桥式DUT上进行,但在这种情况下,广播报文将被处理,并灌到所有出端口。

据了解,1%的广播帧级别比许多网络经验要高得多,但是,就像在药物毒性评估中,要求更高的级别能够测量影响,否则通常会落在系统性能的正常可变性范围内。由于设计因素,一些测试设备将无法生成如此低级别的交替帧。在这些情况下,百分比应达到设备所能提供的最低要求,并在测试结果报告中描述实际水平。

11.2、管理帧

现在,大多数数据网络都使用SNMP等管理协议。在许多环境中,可以有多个管理站同时向同一DUT发送查询。测试帧流应该增加一个管理查询,作为在测试期间每秒发送的第一帧,查询结果必须对应一个响应帧,响应帧应由试验设备进行验证。应使用的特定查询帧的一个示例如附录C所示。

11.3、路由更新帧

动态路由协议更新的处理会对路由器转发数据帧的能力产生重大影响。测试帧流应该增加一个路由更新帧,作为在试验期间传输的第一帧。路由更新帧应以附录C中针对测试中使用的特定路由协议指定的速率发送。附录C中为以太网上TCP/IP定义了两个路由更新帧。路由帧用于将路由更改为不涉及测试数据转发的多个网络。第一帧将路由表状态设置为“A”,第二帧将状态更改为“B”。在试验期间,必须交替使用帧。测试应验证路由更新是否由DUT处理。

11.4、过滤器

过滤器被添加到路由器和网桥,以选择性地抑制帧的转发。这样做通常是为了对一个区域和另一个区域之间接受的数据实施安全控制。不同的产品具有实现过滤器的不同功能。

DUT应首先配置为添加一个过滤条件和执行的测试,此过滤器应允许转发测试数据流。在路由器中的过滤器的形式应为:转发input_protocol_address 到output_protocol_address。在网桥中的过滤器的形式应为:转发destination_hardware_address。

然后应重新配置DUT,以实现总共25个过滤器。前24个过滤器的形式应为:过滤input_protocol_address到output_protocol_address之间的地址。

24个输入和输出协议地址不应是测试数据流中表示的任何地址,最后一个过滤器应允许转发测试数据流。“first”和“last”的意思是确保在第二种情况下,在数据帧与允许帧转发的条件匹配之前,必须检查25个条件。当然,如果DUT对过滤器进行重新排序或不使用过滤器规则的线性扫描,则过滤器输入顺序的效果将正确丢失。

结果报告中应包括使用的确切过滤器配置命令行。

11.4.1、过滤器地址

需要两组过滤器地址,一个用于单个过滤器的场景,一个用于25个过滤器的场景。

单个过滤器应允许从IP地址198.18.1.2到IP地址198.19.65.2的流量,并拒绝所有其他流量。

25个过滤器场景应遵循以下顺序:

在输入此序列之前,所有以前的过滤条件都应从路由器中清除。选择该序列是为了测试路由器是否对过滤条件进行排序,或者是否按照输入的顺序接受过滤条件。这两个过程对性能的影响都比某种形式的散列编码更大。

12、协议地址

使用单个逻辑数据流、一个源协议地址和一个目的协议地址来实现这些测试更容易,对于上述过滤器的某些条件,这是一个实际需求。现实世界中的网络并不局限于单一的数据流。测试组应该首先使用单一协议(或网桥测试的硬件)源地址和目的地址对来运行,然后应使用随机目的地址重复测试。在测试路由器时,地址应在256个网络范围内随机均匀分布,在网桥的整个MAC范围内随机均匀分布。IP使用的具体地址范围如附录C所示。

RFC 2544阅读笔记相关推荐

  1. [原创]fetchmail代码阅读笔记---ESMTP的认证方式

    fetchmail代码阅读笔记---ESMTP的认证方式 作者: 默难 ( monnand@gmail.com ) 0    引言 fetchmail是Eric S. Raymond组织编写的一款全功 ...

  2. trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer

    一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...

  3. VoxelNet阅读笔记

    作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记

  4. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  5. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

  6. Mina源码阅读笔记(一)-整体解读

    2019独角兽企业重金招聘Python工程师标准>>> 今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者 ...

  7. “CoreCLR is now Open Source”阅读笔记

    英文原文:CoreCLR is now Open Source 阅读笔记如下: CoreCLR是.NET Core的执行引擎,功能包括GC(Garbage Collection), JIT(将CIL代 ...

  8. QCon 2015 阅读笔记 - 团队建设

    QCon 2015阅读笔记 QCon 2015 阅读笔记 - 移动开发最佳实践 QCon 2015 阅读笔记 - 团队建设 中西对话:团队管理的五项理论和实战 - 谢欣.董飞(今日头条,LinkedI ...

  9. 05《软件需求模式》阅读笔记

    剩下的两个阅读笔记写第二部分.各类需求模式,共八个领域和它的需求模式,这一次写前四个. 基础需求模式,它是所有种类的系统都可能需要的一些东西.系统间接口需求模式使用系统间接口需求模式定义被定义的系统和 ...

  10. [置顶] Linux协议栈代码阅读笔记(一)

    Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...

最新文章

  1. 安装Synchronization service (Project Server 2007) 时出现 MSMQ 错误的解决
  2. 美国国防部选择VMware View用于全球作战系统
  3. 自定义ViewGroup(1)
  4. 数字内置方法详解(int/long/float/complex)
  5. RxJS之BehaviorSubject
  6. 深度学习(03)-- CNN学习
  7. Java 中 @Autowired与@Resource的区别
  8. 打表找规律-灯泡状态数
  9. QML Logical value dose not depend on actual values(M325)
  10. ModifyStyle, ModifyStyleEx
  11. 资深3D角色建模师对于游戏角色设计浅析:细节与风格
  12. [bzoj2959][动态树]长跑
  13. Android网络图片加载三级缓存
  14. 如何在为知笔记(Wiz)和印象笔记(Evernote)之间相互迁移笔记?
  15. win10下安装Centos7
  16. 【vue系列-03】vue的计算属性,列表,监视属性及原理
  17. JS 正则表达式(正则匹配RegExp)
  18. 外贸公司一般用什么邮箱,电子邮件如何群发?
  19. ADC0809 VHDL控制程序
  20. 中国社科院与美国杜兰大学金融管理硕士项目——迎接立夏,切莫忘记自我成长

热门文章

  1. ESP8266-Arduino编程实例-BMI160惯性测量传感器驱动
  2. 信捷XD5程序+TG765触摸屏程序,功能为XY双轴排版机
  3. centos卸载nvidia驱动_nvidia驱动的卸载和重新安装
  4. 计算机主板 华硕 游戏用,DIY电脑的基石,华硕TUF B360M-PLUS GAMING S游戏主板
  5. 九宫格游戏(java实现)
  6. 【数学建模】层次分析法(AHP)+Matlab实现
  7. AUTOSAR和OSEK关系及网络管理比较
  8. OSEK/VDX网络管理
  9. 小程序轮播图与图片处理
  10. PAT简介和2019年秋季浙大PAT考试报名流程