唐静 雷波 李云鹤 解云鹏
(中国电信股份有限公司研究院,北京 102209)
当前互联网发展迅速,规模上不断扩充,网络内部向着多元化方向发展,整体网络环境在不断更新。然而,传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)网络结构在可扩展性、安全性等方面存在诸多问题,为此研究人员提出了大量的新型网络体系架构,这些都迫切需要新型的测试与验证方法的衍生[1-3]。同时,随着网络不断建设和发展,各类业务也在积极创新,对网络的需求是不一样的,对网络服务质量也是不同的[4],网络测试也可为多样性的业务提供网络高性能、高可靠性、高可用率的基础网络环境。本文通过分析总结当前IP网络测试技术及现状,对面向网络5.0的新型网络体系的测试评估技术进行实践分析,并对未来网络测试的发展进行了思考和展望。
网络是由大量的网络设备,如路由器、交换机、防火墙及主机构成的。为了维护整个网络的可靠运行,各个设备厂商和网络服务商都需要向当前的互联网保持兼容性。对网络设备测试主要分为4个类型,包括功能测试、性能测试、一致性测试和被动测试。
功能测试是为了验证设备是否支持声明的相关功能,如对特定协议的支持、过滤、流量控制、网管等。性能测试通常是一种压力测试,应该在一定的压力及接近真实的情况下进行,目的是观察设备在业务压力下的表现,包括吞吐量、延迟、丢包率、处理背靠背数据帧能力等,RFC2544协议[5]是用于评测网络互联设备的重要国际标准,包括网络设备性能测试、组网测试、运营商线路测试和企业宽带测试。一致性测试是为了检测设备在协议实现上与标准协议的符合程度。一致性测试通常采用黑盒测试的方法,通过观察被测设备与测试仪的接口的相应得到测试结果,以印证北侧设备相关协议是否遵从了协议规范。被动测试类似于协议分析,在真实的运行状态下观察协议运行的过程,特别是在有背景干扰及无背景干扰情况下观察设备的工作状态。
网络设备测试数量较大,通常采用自动化测试可以大大提高手工测试的效率并降低成本[6],但并不是所有的测试均需要采用自动化测试的方法。在测试过程中,手工测试通常是自动化测试的补充与升级,更加精准和高效。因此需要根据需求,选择合适的方法进行测试。
由于网络的复杂性,不可避免地会导致一些转发错误的产生。网络系统测量通常指使用一些测量工具,遵循一些技术标准和测试方法来测试网络,通过测试获取的参数来评估网络性能优劣[7]。网络系统测试的几个关键因素如表1所示。
表1 网络系统测试要素
通过典型的开放式系统互连(Open System Interconnect,OSI)和TCP/IP对于模型的层次划分,完全是由所使用的具体协议类型决定了数据的具体传输方式,完全可以通过对不同层次的不同分别进行具体的测试,在整体上得到完整网络的性能状况。
网络的系统测量方法目前已经发展的较为完善,可分为主动测量和被动测量。主动测量是指需要项被测网络主动注入探测包,并通过探测包穿越网络的传输情况对网络进行相关参数的检测,该方法可能对网络当前承载的业务和服务产生一定影响。被动测量是指通过一些测试工具对被测网络信息进行收集,并将收集上来的信息进行分析,得出运行的相关技术参数,该方法下对网络承载的业务影响较小,但其测试结果对收集的数据依赖性较强,可扩展性和灵活性较弱。通常可根据测试需求选择不同的测试方法。
主动测量可利用TCP/IP协议簇中的相关协议进行测试,或利用专用的网络测量协议测量。当前常见的主动测量方法包括基于Ping可利用互联网控制报文协议(Internet Control Message Protocol,ICMP)回声和回声应答消息,判断链路是否通达、是否有异常时延和严重的丢包等,但此方法的精度较差;通过TCP/用户数据报协议(User Datagram Protocol,UDP)发送探测流量,通过观察探测流量特性得知应用和TCP/UDP连接的性能;根据测试需求利用IP测量协议(IP Measurement Protocol,IPMP)、单向主动测量协议/双向主动测量协议(One-Way Active Measurement Protocol/Two-Way Active Measurement Protocol,OWAMP/TWAMP)等专用测量协议进行网络测量测量精度会更高。主动测量方法具有主动性高、使用方便等特点,且不涉及用户的网络信息、可根据不同场景进行控制,但是该方法会给网络增加额外的通信流量负荷,额外的流量可能会干扰网络。
被动测量与其不同,不会产生多余的流量,也不会增加网络负担,但在多数情况下只能获得网络的局部数据,难以了解网络的整体状况,由于被动策略可以查看网络上的所有数据包,对用户保密和安全会带来一定的威胁。常用的被动方法有基于简单网络管理协议(Simple Network Management Protocol,SNMP)的被动测量方法,但其基于UDP传输具有不可靠性,且仅可完成较粗粒度的测量;基于网络流的监控方法通常应用于路由器或交换机等产品上,可以对网络进行监测并对流量进行分析,该方法更偏重于全网流量的分析;基于硬件探针的监测方法通常可利用硬件设备获取网络流量,通过将其串接在网络中收集数据,适用于长期的流量分析和报告。
主动测量和被动测量各有优缺点,而且对于不同的性能参数来说,主动测量和被动测量也都有各自的用途。因此,将主动测量和被动测量相结合是网络性能测量方法的趋势。
在IP网络设备和系统测试后,通常会进行网络应用测试,用于测试网络对不同类型应用的支撑水平,如网络应用的性能和服务质量的测试等。网络上加载的应用性能,与网络类型、网络环境的性能都有着直接关系,不同应用所对应的测试方法和测试用例均不同。
网络应用测试与网络测试密不可分,在获取到网络的具体性能指标后,需要再结合实际的应用进行网络应用测试,监控诸如用户并发访问性能、系统响应时间、资源占用率等情况。网络应用更多直接面向用户,对于用户体验有直接影响,通常应用层的测量会将性能指标以量化的形式显示网络对应用的支持度,是整个网络性能的重要指标之一[8]。
除了上述测试方法外,网络还需要在其他方面进行测试,如可用度测试、安全测试等。可用性测试主要反映网络的可用性,通俗来讲就是吞吐量、时延、抖动和丢包率都满足指标,否则网络不可用;安全性测试通常借助于相关仪表,生成多种真实应用场景的流量和模拟攻击,构建真实、安全的测试。
网络5.0作为面向未来十年业务需求和应用场景的新一代网络架构,以现有IP网络协议为基础,采取“分代目标、有限责任”的思路,围绕确定性、内生安全、可信、有限域四个方面的核心目标,开展能力演进。传统的IP网络“面向终端、尽力而为”的核心理念经过近50年的发展已经构建起了一个开放、简洁的技术体系,推动全球通信行业的进步,使人类社会进入网络时代,取得了巨大的成功。国际电信联盟(International Telecommunication Union,ITU)成立的网络2030焦点组发布了面向2030年及更长远期的网络技术发展、新的网络服务和应用,提出了未来网络的12大应用场景,包括计算网络融合、数字孪生、云网工业IoT、海量科学数据应用、应用感知数据突发转发、触感互联网、社交物联网、紧急灾难救援、全息通信、AI泛在连接和共享、天地一体网络、智能运维网络[9]。新兴应用对现有IP网络无疑带来了巨大的挑战和压力,例如人工智能带来了新的流量模型和网络需求,这与当前运营商网络所面临的需求大不相同,这些趋势正在引发关于新业务下对未来网络的测试与评估体系产生新的思考。
网络5.0以现有IP网络协议为基础,围绕确定性、内生安全、可信、算力网络、网络自组织和新传输等技术体系,开展网络能力的演进与提升,支撑未来千行百业的发展需求。随着对网络架构的创新,传统的测试已经无法满足网络的发展需求,网络5.0也在思考构建新的测试评估体系。
传统的网络测试采用黑盒测试和边界测试,也就是被测系统的实现细节对测试仪表不开放,被测系统仅仅开发对外的功能呈现和软硬件接口,从网络经典的分层思想来说,黑盒测试的方法论在网络5.0场景下依然可行。边界测试是指在传统的测试方法中,测试仪表作为端节点接入到被测系统中,在简单的场景下,被测系统仅仅是一个网络5.0语义和功能特征下的交换机、路由器;在复杂的场景下,被测系统可能是一个混合网络5.0特征和传统IP网络特征的复杂体系,测试的数据流既可以包括无状态的背景数据帧,也可以包含有状态的3层~7层协议包。网络5.0是一个全新的体系,确定性和有限域自治是其中的重要特征。在测试方法上,可以探索网络内生的探测和异常回溯能力。例如,在真实的网络5.0的网络部署中,网络内部增加一个网元,无论是虚拟的还是物理的,这类网元运行特殊的协议,组成一张虚拟的、稀疏的测试网络。测试网元可以在网络的空闲阶段触发这些协议的交互,实现对测试节点之间的路径(或路径组合)的各种参数的评测,通过自动化的机制,可以实现更智能、更可靠的功能性能预警。
在测试能力的角度,网络5.0更注重于新体系下各类关键能力的测试(见图1)。在技术方面,包括可信检测技术、端到端安全性检测技术、抗攻击性能检测技术、端到端确定性检测技术等;在用户体验方面,包括适配会议和用户体验测试、算力网络和用户体验测试等。依托网络5.0联盟相关国际、国内标准,最终可形成以网络为能力主体和责任主体的全新网络生态模式。
图1 基于网络5.0的测试能力体系
网络5.0是一个在不断进化的体制,对应的测试设备必须具备可编程性和开放性。基于现场可编程门阵列(Field Programmable Gate Array,FPGA)和CPU的混合体系在网络5.0的场景下将仍然适用。
FPGA+X86的混合架构,由FPGA实现流量层面的测试功能,由CPU实现协议层面的功能。一方面利用了FPGA越来越强大的数据层面硬件并行性,另一方面也结合了CPU在控制层面的处理灵活性,并且由于FPGA和CPU本质上都是可编程的系统,根据测试功能性能的处理需要,可以在FPGA硬件和CPU软件之间灵活地移动业务划分边界,实现整个业务流程的全面优化。
在测试策略的角度,传统的测试策略在未来网络中也需要革新,特别是面对如人工智能、算力/智算网络等场景下,需要具备以下能力[10]。
首先,测试体系应具备可扩展性,以适应未来网络场景下不断迭代增长的网络基础设施、不断变化的流量模型以及不断产生的超大规模的网络数据;其次,应可以实现自优化能力,可在复杂的网络环境下快速、重复地执行测试用例并不断完善,减少网络运维人员的参与,且尽可能实现故障节点的自动恢复能力;再次,测试还需具备主动性,即可以根据最新的测试标准、测试方法体系等,对网络/业务进行行业规范性测试,同时该目标需要由国际/国内标准组织机构共同进行维护更新;最后,测试应具备可仿真性,在成本极高的现场环境下,可以通过数字孪生等仿真技术在模式环境中测试,且可得到与现场环境一致的结果,使得网络环境的不断变化不会引起测试的中断或失误。新型的网络体系(如卫星互联网)是国家战略性公共信息基础设施,测试场景建立困难,在真实环境中对卫星互联网进行网络攻防等安全测试困难且危险,仿真技术在其测试时会起到关键作用[11]。
技术创新,测试先行,伴随着网络架构和实现技术的进展,在网络测试技术方面也呈现出新的方法和趋势。
一是测试工具功能性能的巨大提升。随着400 G光模块的大规模部署,以及网络带宽和性能需求的不断加快,数据中心互联800 G也将成为全新需求,将应用在超大规模数据中心、云计算及人工智能算力中心中。预计800 G光接口在2026年在技术成熟度、价格等方面将达到可规模部署的水平。当前的仪表,不但可以实现800 G的64字节全线速手法,而且时延、抖动的测试精度达到了0.625 ns的水平,这完全可以满足最复杂的工业控制、全息图像等应用的时延测试要求[12]。由于测试技术需要领先于对应的网络新技术,在缺乏成熟硅芯片支撑的情况下,基于FPGA和CPU的仪表设计将是越来越严峻的挑战。
二是对网络安全测试的巨大需求。互联网设计的最初目的是小范围的文件共享,网络节点之间是可信任,数据内容远不如现在的关键应用那么敏感,所以其对网络环境的安全性考虑不足,其协议体系和网络架构设计存在内生的安全缺陷。安全漏洞的产生和变异速度极快,业界在新的网络架构中更多在考虑网络的内生安全[13],因而安全测试需要随时更新数据库和对应的模拟攻击手段,这是有别于传统流量测试和协议测试的一个鲜明特征。
三是网络测试的虚拟化。虚拟化测试在当前云计算、数据中心等领域得到了广泛应用,是保障网络可靠的重要手段。虚拟化可以体现在两个层面,一是被测系统的虚拟化。云计算、5G核心网等,本质上都是越来越普及的虚拟化技术,传统的专用设备被虚拟化、容器化的通用设备代替。另一个层面是测试仪表的虚拟化,测试仪表需要实现与虚拟化技术对应的测试技术;同时,测试仪表本身也可以虚拟化,部署在云端,由通用的计算设备加专用的接口部件来实现测试功能。
四是测试流量的真实性。在网络中运行的是各种业务,每一种业务有其自身的数据流量特征,包长的统计规律、流量潮汐的时间特征等;测试仪表只有产生尽量真实的类业务流量,才更有可能揭示被测系统的缺陷和问题。基于真实网络流量的建模和自动化测试数据生成是其中的一种手段,功能丰富的网络损伤类仪表是提供真实性的另一个重要手段。
五是测试自动化。被测系统在规模和待测业务方面都越来越复杂,传统的手工测试也越来越难以满足大量的复杂测试的需要。以Jenkins为代表的自动化工具以及TCL、Python脚本语言的强大功能,使得测试自动化成为可能。测试自动化已经超越传统的测试仪表自动化的范畴,包含了对被测系统的测试编排、测试过程细粒度控制、测试结果可视化的全流程自动化,这无疑在效率、准确性、针对性方面有极大的提升。基于真实网络流量的建模和自动化测试数据生成机制在测试自动化方面也可以发挥重要的作用。
未来网络体系中的新技术、新机制给测试带来了新的挑战,也是一个巨大的机会,依托网络5.0的技术创新,推出新的测试方法论、新的测试工具、新的测试标准,从而将网络创新拓展到理念到实现测试的完整闭环,提供更有竞争力及更高服务质量的通信网络。