L2和L3协议测试

在了解协议测试之前,先了解一下:

什么是协议?

当一台计算机相互通信时,每台计算机都必须遵循一组通用的规则和条件。换句话说,协议决定如何在计算设备之间和网络上传输数据。

协议测试

协议测试是一种检查交换、无线、VoIP、路由等领域的通信协议的方法。在测试过程中使用主路由和交换机来构成被测设备和产品的一部分。

路由协议

协议分为两类路由协议,路由协议:路由协议可用于将用户数据从一个网络发送到另一个网络。路由协议有IP、IPX和AppleTalk。 简单地说,路由器就像是用于运输的公交车,而路由协议则是道路上的信号。

根据通信类型的不同,使用不同的协议。思科、瞻博、阿尔卡特等公司生产的netwo协议测试无非是检查EIGRP(增强型内部网关路由协议)或OSPF(开放最短路径优先)或任何其他协议是否按照各自的标准工作。

计算机协议的类型

协议类型 协议的目的
TCP/IP 用于在Internet上以小包的形式发送信息
UDP/ICMP 用于在因特网上以数据包的形式发送少量信息
POP3和SMTP 是用来收发邮件的
超文本传输协议 用于以加密形式传输HTML页面,为敏感数据提供安全性
FTP 用于通过网络将文件从一个节点传输到另一个节点

TCP/IP-传输控制协议/Internet协议、UDP/ICMP-用户数据报协议/Internet控制消息协议、POP3/SMTP-邮局协议/简单邮件传输协议、HTTP-超文本传输协议、FTP-文件传输协议

不同类型的网络协议(第2层和第3层)

OSI模型共有7层网络通信,其中第2层和第3层非常关键。

  • 第2层:是数据链路层。MAC地址、以太网、令牌环和帧中继都是数据链路层的示例。

  • 第3层:是网络层,用于确定网络中通信的最佳可用路径。IP地址是第3层的示例。

如何进行协议测试

  • 对于协议测试,需要协议分析器和模拟器
  • 协议分析器可确保正确解码以及呼叫和会话分析。而模拟器模拟网元的各种实体
  • 协议测试通常由DUT(被测设备)对交换机、路由器等其他设备进行,并在其中配置协议
  • 此后,检查由设备发送的分组的分组结构
  • 使用lxNetworks、Scapy和Wireshark等工具检查设备的可扩展性、性能、协议算法等

协议测试的测试类型

协议测试包括功能测试、性能测试、协议栈测试、互操作性测试等,在协议测试过程中,基本上要进行三个方面的检查。

  • 正确性:我们是否按预期收到数据包X
  • 延迟:数据包传输系统需要多长时间
  • 带宽:我们每秒可以发送多少个数据包

协议测试可以分为两类。压力和可靠性测试包括负载测试、压力测试、性能测试等,功能测试包括否定测试、一致性测试、互操作性测试等。

  • 一致性测试:对产品上实现的协议进行一致性测试,如IEEE、RFC等。
  • 互操作性测试:测试不同厂商的互操作性。此测试在相应平台上进行一致性测试后进行
  • 网络功能测试:参照设计文档测试网络产品的功能。例如,功能可以是交换机上的端口安全、路由器上的ACL等。

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

以下是路由器的示例测试用例

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

用于协议测试的工具

讨论一下用于验证协议的最重要的测试工具

用于数据包制作的Scapy

Scapy是一个功能强大的交互式数据包处理程序,能够

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

因此,基本上,Scapy主要做两件事:接收答案和发送数据包。定义数据包、发送数据包、接收答案、将求与答案匹配并返回数据包对列表和不匹配数据包列表。

还可以处理其他事情,如跟踪路由、单元测试、攻击或网络发现、开发新协议、探测等。

Scapy使我们能够编写一个Python脚本,允许我们执行发送和接收数据包或嗅探数据包之类的任务。打开编辑器中输入的getdit的命令

# 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
# ./scaotsbuff.py

以上代码嗅探10个数据包,一旦嗅探到10个数据包,它就会打印。Scapy也可以作为同时发送和接收数据包的命令数组

Wireshark分析工具

用于协议测试的工具-Wireshark,可以实时捕获数据包,还可以通过挖洞深入网络流量,并使用颜色编码和过滤器检查单个数据包。

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

Wireshark拥有一组丰富的功能,包括

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

TTCN

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

例如,一台咖啡自动售货机,只要投入一元硬币,就会给咖啡,但如果投入的硬币少于一元,它就不响应。一旦完成,我们将把TCCN3测试套件与外部设备连接起来。

Protocol Testing
Protocol Testing

测试系统发出刺激(硬币)并接收响应(咖啡)。响应适配器的激励适配器等待被测系统的响应,并将它们传递给测试系统。

TCCN3可用于各种领域,如

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

在TCCN中,我们可以定义

  • 测试套件
  • 测试用例
  • 测试步骤
  • 声明变量
  • 声明计时器
  • 创建PDU等。

TCCN可以与ASN.1、XML、C/C++等其他语言类型的系统集成。TCCN3核心语言以文本格式存在,与表格、图形和表示等其他格式不同。

IT赶路人

专注IT知识分享