协议测试教程(L2 和 L3)

⚡ 智能摘要

协议测试验证网络设备如何通过二层和三层协议交换数据。它验证交换机、路由器、VoIP 设备和无线设备(例如厂商使用的设备)的数据包结构、一致性、性能和互操作性。 Cisco杜松和阿尔卡特。

  • 🌐 范围: 协议测试涵盖 OSI 协议栈中的交换、无线、VoIP 和路由协议,重点关注 L2 和 L3 行为。
  • ???? L2 对 L3: 第 2 层处理 MAC、以太网和帧中继;第 3 层通过 IP、OSPF、EIGRP 和类似的路由协议选择最佳路径。
  • 🛠️ 工具链: 工程师依靠 Wireshark 用于实时捕捉, Scapy 用于数据包构造,以及 TTCN-3 用于针对被测设备的行为测试套件。
  • 支票类型: 一致性、互操作性、功能性、压力、负载和性能测试证实了正确性、延迟和带宽阈值。
  • 🧪 人工智能视角: 现代实验室应用人工智能模型来检测流量异常、预测协议故障,并自动生成负面测试用例,以加快回归测试周期。

协议测试

在学习协议测试之前,让我们先了解一下它所建立的基础。

什么是协议?

当计算机之间进行通信时,每台计算机都必须遵循一套共同的规则和条件。换句话说,协议决定了数据是如何传输的。 transmit这些规则需要在计算设备和网络之间进行通信。如果没有这些共享规则,不同厂商的设备就无法可靠地交换流量。

什么是协议测试?

协议测试 协议测试是一种用于检查交换、无线、VoIP、路由及类似网络领域通信协议的方法。协议测试的主要目标是使用专用的协议测试工具检查网络中传输的数据包的结构。测试过程中会使用路由器和交换机作为被测设备和产品的一部分。

既然我们已经定义了这种做法,那么让我们来探讨一下为什么这种规范在生产网络中很重要。

为什么协议测试很重要

现代网络承载着诸如 VoIP 通话、金融交易和流媒体视频等关键任务工作负载。单个协议漏洞就可能破坏不同厂商之间的互操作性、导致数据包丢失或暴露安全漏洞。协议测试通过验证每个协议实现是否符合其规范、是否能在负载下扩展以及在故障期间是否能按预期运行,来保障网络质量。

动机明确之后,下一个问题是实际网络中的协议是如何分类的。

路由和路由协议

协议分为两类: 路由协议路由协议.

  • 路由协议: 路由协议用于将用户数据从一个网络发送到另一个网络。它们承载用户流量,例如电子邮件、网页流量和文件传输。路由协议的例子包括 IP、IPX 和 AppleTalk。
  • 路由协议: 路由协议是用于确定路由器之间通信路径的网络协议。它们仅用于路由器之间。例如 RIP、IGRP 和 EIGRP。

简单来说, 路由器就像用于运输的公共汽车,而路由协议就像道路上的信号灯。

根据通信类型的不同,会使用不同的协议。例如,像……这样的公司。 CiscoJuniper、Alcatel 和 Alcatel 生产的网络设备(例如路由器、调制解调器和无线接入点)使用不同的通信协议。例如, Cisco 使用 EIGRP 和 OSPF。协议测试本质上是检查 EIGRP(增强型内部网关路由协议)、OSPF(开放最短路径优先)或任何其他协议是否按照其各自的标准运行。

计算机协议的类型

下表列出了测试人员在线路上最常遇到的协议。

协议类型 协议的目的
TCP / IP协议 它用于通过互联网以小数据包形式发送信息
UDP/ICMP 它用于通过互联网以数据包的形式发送少量信息。
POP3 和 SMTP 用于发送和接收邮件
超文本传输​​协议 它用于以加密形式传输HTML页面,以保护敏感数据的安全。
则fTP 它用于通过网络将文件从一个节点传输到另一个节点

* TCP / IP协议 – Transmission 控制协议/互联网协议 UDP/ICMP – 用户数据报协议/互联网控制消息协议, POP3 / SMTP – 邮局规程/简易版 Mail 传输协议, HTTP – 超文本传输​​协议, 则fTP 文件传输协议。

不同类型的网络协议(L2 和 L3)

OSI 模型共有七层网络通信,其中第 2 层 (L2) 和第 3 层 (L3) 对于协议测试至关重要。

  • 第 2 层(L2): 它是数据链路层。MAC地址、以太网、令牌环和帧中继都是数据链路层的例子。
  • 第 3 层(L3): 网络层负责确定网络中用于通信的最佳可用路径。IP 地址就是 L3 层的一个例子。

如何进行协议测试

  • 对于协议测试,您需要一个 协议分析器和模拟器.
  • 协议分析器负责确保正确解码,并进行呼叫和会话分析。模拟器则模拟网络元素的各种实体。
  • 通常,协议测试是通过被测设备 (DUT) 连接到交换机和路由器等其他设备来进行的,目标协议已在被测设备上配置。
  • 随后,测试人员检查设备发送的数据包的结构。
  • 它使用 IxNetwork 等工具检查设备的扩展性、性能和协议算法行为。 Scapy和 Wireshark.

协议测试的测试类型

协议测试包括功能测试、性能测试、协议栈测试、互操作性测试等等。协议测试期间,会进行三项基本检查。

  • 正确性: 我们是否按预期时间收到了数据包 X?
  • 潜伏: 数据包通过系统需要多长时间?
  • 带宽: 我们每秒可以发送多少个数据包?

协议测试可分为两大类:压力和可靠性测试,以及功能测试。压力和可靠性测试涵盖 负载测试, 压力测试性能测试. 功能测试 包括负面测试、一致性测试和互操作性测试。

  • 一致性测试: 产品上实施的协议均经过测试,以确保符合 IEEE 等标准。 RFC.
  • 互操作性测试: 对不同供应商之间的互操作性进行测试。此测试是在相应平台上完成一致性测试之后进行的。
  • 网络功能测试: 网络产品的各项功能均需参照设计文档进行测试,以确保其功能正常。例如,交换机的端口安全或路由器的访问控制列表 (ACL) 等功能都属于此类。

网络设备协议测试的测试用例示例

以下是一组路由器和交换机的测试用例示例。

考试名称 测试用例
一台交换机上一个 VLAN 创建两个不同的VLAN。检查不同VLAN上主机之间的可见性。
一台交换机上有三个对称VLAN 创建三个不同的非对称VLAN。检查主机之间的可见性。
生成树:根路径成本变化 测试拓扑结构发生变化后根路径成本的变化情况。
生成树:端口阻塞 检查生成树协议如何在存在冗余链路的情况下避免网络中形成环路。 VLAN 了。
不同的 MSTI 有不同的根桥 证明每个 MSTI 可以有不同的根桥。
不同STP区域之间的可见性 使用相同的 VLAN,检查不同 STP 区域之间的可见性。
电话交换机性能 拨打 1000 个电话,检查电话交换机是否仍然运行或性能是否下降。
设备检测结果为阴性 输入的密钥错误,请检查身份验证。该用户不应被允许访问。
线速度 检查设备是否以 10 Gbps 的速度运行,并利用所有可用带宽来处理传入流量。
协议对话速率 Tracka 两个设备之间的 TCP 会话,并验证每个设备的行为是否正确。
会话启动响应时间 测量设备对会话发起邀请请求的响应时间。

协议测试工具

让我们来讨论一下用于验证协议的最重要的测试工具。

1) Scapy 用于包装制作

Scapy 是一个功能强大的交互式数据包操作程序。它使您能够:

  • 创建数据包
  • 解码网络上的数据包
  • 捕获数据包并进行分析
  • 将数据包注入网络

所以,基本上来说, Scapy 主要做两件事: 接收答案并发送数据包你定义数据包,它发送数据包,接收响应,将请求与响应进行匹配,并返回数据包对列表和未匹配数据包列表。

它还可以处理其他任务,例如 trac电子路由、单元测试、攻击、网络发现、开发ping 新协议和探测。

Scapy 使您能够编写 Python 该脚本允许您执行诸如发送、接收或嗅探数据包之类的任务。例如: Scapy 可以使用短程数据包嗅探器来嗅探数据包。 Python 脚本。打开编辑器的命令如下所示。

#gedit scapysniff.py
#!/usr/bin/env python
from scapy.all import *

a = sniff(count=10)
a.nsummary()

save, and change the mode of the file into an executable form
#chmod +x scapysniff.py
# ./scapysniff.py

它会嗅探 10 个数据包,一旦嗅探完 10 个数据包,就会打印摘要。 Scapy 它还提供了一系列用于同时发送和接收数据包的命令。

下载 Scapy

2) Wireshark 分析

Wireshark 是领先的协议测试分析工具。它允许您实时捕获数据包并以易于理解的形式显示。您可以深入分析网络流量,并使用颜色编码和过滤器检查单个数据包。

Wireshark 捕获数据包,以帮助确定会话何时建立、确切的数据传输何时开始以及每次发送多少数据。

Wireshark 它拥有丰富的功能,其中包括:

  • 对数百种协议进行全面检查,而且检查的协议还在不断增加。
  • 实时捕获和离线分析
  • 丰富的 VoIP 分析
  • 标准三窗格数据包浏览器
  • 可在多种平台上运行,例如 Windows,Linux和 macOS
  • 捕获的网络数据可以通过 GUI 浏览
  • 支持解密多种协议,例如 IPsec、ISAKMP 和 SSL/TLS。
  • 可从以太网、ATM、蓝牙、USB 和令牌环读取实时数据。
  • 输出结果可以导出为 CSV、XML 和纯文本格式。

下载 Wireshark

3) TTCN

TTCN 是一种用于定义测试的标准语言。 测试场景 以及它们在协议测试中的实现。TTCN 测试套件包含许多用 TTCN 编程语言编写的测试用例,用于 测试反应系统或行为测试.

例如,假设有一台咖啡自动售货机,投入一美元硬币后会出咖啡,但如果投入的金额不足一美元则不会反应。要对这类机器进行编程,可以使用 TTCN-3 协议。为了让咖啡机在投入硬币后做出反应,你需要编写一个模拟咖啡机的 TTCN-3 组件。这样,你就可以在实际的咖啡机产品上市之前进行测试。测试完成后,你可以将 TTCN-3 测试套件连接到外部设备。

TTCN

测试系统发出刺激(一枚一美元硬币)并接收响应(一杯咖啡)。刺激适配器从测试系统获取刺激并将其传递给被测系统。响应适配器等待被测系统的响应并将其传递给测试系统。

TTCN-3 可应用于以下多个领域:

  • 移动通信(LTE、WiMAX、3G)
  • 宽带技术(ATM、DSL)
  • 中间件平台(Web 服务、CORBA)
  • 互联网协议(SIP、IMS、IPv6)
  • 智能卡
  • 汽车(AutoSAR、MOST、CAN)

在 TTCN 中,您可以定义:

  • 测试套件
  • 测试用例
  • 测试步骤
  • 已声明的变量
  • 已声明的计时器
  • PDU 等

TTCN 可以与用其他语言(例如 ASN.1)编写的系统集成。 XML,以及 C/C++. TTCN-3 核心语言以文本格式存在,此外还有表格、图形和演示格式。

如何在实践中应用协议测试

要将这些技术应用于实际项目,请定义协议范围(L2、L3 或更高级别),搭建一个连接了仿真器和分析仪的待测设备 (DUT),参考 RFC 或 IEEE 规范编写一致性测试用例和负面测试用例,然后运行压力测试、互操作性测试和 AI 辅助异常检查。记录结果。 Wireshark 并反复迭代,直到数据包行为符合标准。

常见问题

协议测试检查交换机、路由器和类似设备上的通信协议是否发送格式良好的数据包,以及它们在交换、路由、VoIP 和无线领域是否符合标准。

L2 测试侧重于数据链路层,例如 MAC、以太网和帧中继,而 L3 测试则验证网络层路由协议,例如 IP、OSPF 和 EIGRP,这些协议选择网络之间的最佳路径。

Wireshark 用于实时采集和解码, Scapy 网络测试工程师使用的标准工具包括:数据包构造工具 IxNetwork(用于流量生成)和行为测试套件 TTCN-3(用于行为测试套件)。

一致性测试验证协议实现是否严格遵循其规范,例如 IEEE 标准或 IETF RFC,以便不同供应商的设备能够在同一网络上可预测地互操作。

AI 模型学习基线数据包模式,然后生成负面测试用例,预测路由更改中的回归风险,并自动确定失败场景的优先级,以便测试工程师在更短的时间内覆盖更多协议路径。

是的。机器学习分类器会吸收 Wireshark 或者,通过 NetFlow 捕获,将异常延迟、抖动或数据包形状与学习到的基线进行比较,并在协议行为异常引发生产网络中断之前将其暴露出来。

总结一下这篇文章: