协议测试教程 – L2 & L3
什么是协议?
当两台计算机在彼此之间或通过网络共享数据时,它们必须遵守预定义的数据传输过程,这称为“协议”。
协议测试
协议测试工具检查数据包如何在网络上传输。测试过程涉及使用路由器和交换机来创建被测设备和产品的部分。
协议测试的价值
它还允许开发可靠且高性能的网络连接。如果不存在协议,设备将无法解释它们在通过网络连接通信时发送的电子信号。
网络传输包含加密二进制数据的包。此外,一些协议包含一个头部来保存有关消息发送者的信息。网络协议在消息开头提供了通信的发送者和接收者的描述。一些协议还包含一个尾部。
因此,网络协议在设备之间传输数据时专注于识别头部和尾部。
路由协议和被路由协议
协议有两种类型:被路由协议和路由协议。
被路由协议 – 被路由协议帮助在网络之间传输用户数据。它传输用户流量,例如电子邮件、网络流量、文件传输等,都是被路由协议的示例。
路由协议 – 路由协议允许路由器选择要采取的路由。它仅用于路由器通信。例如 RIP、IGRP、EIGRP 等。
简单来说,路由器就像一辆交通工具,帮助人们通勤,而路由协议就像交通信号灯。
根据通信的性质采用不同的协议。思科、瞻博网络和阿尔卡特朗讯等公司生产路由器、调制解调器、无线接入点等网络设备,协议测试包括确定 EIGRP(增强型内部网关路由协议)或 OSPF(开放最短路径优先)或任何其他协议是否按照其相关标准运行。
协议及其用途
TCP/IP – 在通过网络传输在线数据时,会遵循此协议,数据以小数据包的形式传输。
UDP/ICMP – 用于在互联网上传输少量数据包。
POP3 和 SMTP – 这些协议用于发送和接收电子邮件。
HTTP – 超文本传输协议 (HTTP) 用于以加密形式传输 HTML 页面,以保护敏感数据。
FTP – 它有助于在网络的两个节点之间传输数据。TCP/IP- 传输控制协议/互联网协议,
UDP/ICMP – 用户数据报协议/互联网控制消息协议,POP3/SMTP- 邮局协议/简单邮件传输协议
网络协议有很多种。
OSI 模型包含七个网络交互层,其中第 2 层和第 3 层尤为重要。
第 2 层 – 第二层是数据链路层。数据链路层 2 最好由 Mac 地址和以太网表示。
第 3 层 – 第 3 层识别最佳网络通信通道。第 3 层由 IP 地址举例说明。
协议测试程序
协议测试需要协议分析仪和模拟器。
协议分析仪提供正确的解码以及呼叫和会话分析。模拟器复制各种网络元素实体。协议测试是通过将 DUT(被测设备)与其他网络组件(如交换机和路由器)连接来检查数据包结构。
它使用 lxNetworks、Scapy 和 Wireshark 等工具检查设备的可扩展性、性能、协议策略等。
协议测试方法
协议测试包括功能、性能、协议栈、兼容性等方面。协议测试进行 3 项测试 –
正确性 – 我们是否在预计日期收到了数据包 X?
延迟 – 数据包通过系统所需的时间。
带宽 – 带宽是每秒传输的数据包数量。
协议测试可以分为两种类型。功能测试以及压力和可靠性测试。负载测试、压力测试和性能测试都是压力和可靠性测试的例子。负面测试、一致性测试、互操作性测试等都是功能测试的一部分。
压力测试(折磨测试)– 压力测试(折磨测试)是一种故意进行的强度或范围大的测试,用于评估特定系统、关键基础设施或实体的稳定性。它涉及超出正常运行容量的测试,通常超出破坏点,以检查影响。
可靠性测试 – 可靠性测试是一种软件测试过程,用于确定程序是否可以在给定时间段内在特定环境中执行无故障操作。可靠性测试的目的是确保软件产品没有错误并且足够可靠以执行其预期功能。
一致性测试 – 对产品检查 IEEE、RFC 等协议的一致性。
互操作性测试 – 测试不同供应商的互操作性,然后进行一致性测试。
网络功能测试 – 使用设计文档作为指南评估网络设备的功能。例如交换机上的端口安全、路由器上的 ACL 等。
协议测试工具
让我们了解一下用于协议验证的最重要的测试工具。
数据包制作 Scapy
Scapy 是一款功能强大的数据包修改软件,可以交互使用。它允许你 –
制作数据包
在网络上解码数据包。
捕获和分析数据包
将数据包注入网络。
Scapy 接收响应并发送数据包。您指定数据包,它会传输它们,接收响应,将请求与响应匹配,并提供数据包对和未配对数据包的详细信息。
它还测试跟踪路由、单元测试、网络发现、探测等。
Scapy 允许我们创建一个执行诸如交换或嗅探数据包等任务的 Python 脚本。例如,Scapy 可以使用 Python 脚本嗅探数据包。
命令 getdit 文件在编辑器中 –
#gedit scapysniff.py #!/usr/bin/env python from scapy.all import* a= sniff(count=5) a.nsummary()
保存,并将文件模式更改为可执行形式。
#chmod+x scapysniff.py # ./scaotsbuff.py
它将嗅探 5 个数据包,然后在嗅探 10 个数据包后输出报告。Scapy 还具有一个命令数组,用于同时传输数据包。
Wireshark 分析工具
Wireshark 是一种协议测试工具。它允许您收集实时数据包并以人类可读的格式显示它们。Wireshark 记录有助于确定何时创建会话、特定数据传输何时开始以及每次传输多少数据等内容的数据包。
Wireshark 提供了许多有用的功能,包括
对多种过程的详细检查,并定期添加。
脱机分析和实时捕获
深入的 VoIP 分析
标准的三窗格浏览器
可在各种系统上运行,包括 Windows、Linux 和 OS X。
可以使用 GUI 浏览网络数据。
支持多种协议的解密,包括 IPsec、ISAKMP 和 SSL/TLS。
可以通过以太网、ATM、蓝牙、USB、令牌和其他设备读取实时数据。
输出可以导出为 CSV、XML、纯文本和其他格式。
TTCN
TCCN 有助于设计和实施协议测试的测试场景。TCCN 测试套件是使用 TTCN 编程语言为反应系统或行为测试开发的一组测试用例。
例如,如果您输入一枚 1 美元硬币,可乐机就会给您可乐,但会忽略任何其他硬币。TCCN3 编程语言用于编程类似的机器。为了让可乐机在插入硬币时做出响应,我们必须创建一个 TCCN 套件充当可乐机。它允许我们在商用咖啡机发布之前进行研究。
完成后,我们将 TCCN3 测试套件链接到外部设备。
它生成刺激(1 美元硬币)并收集响应(可乐)。刺激适配器从测试系统收集刺激并将其发送以进行响应。响应适配器监控系统以获取回复并将它们转发到测试系统。
TCCN3 可用于各种应用,包括
通过移动设备通信 (LTE、WiMAX、3G 等)
高速互联网技术 (ATM、DSL)
中间件平台 (Webservices、CORBA 等)
互联网协议 (IP) 是缩写 (SIP、IMS、IPv6)
读卡器
汽车 (AutoSAR、MOST、CAN)
我们可以在 TCCN 中定义 –
测试套件
测试用例
测试步骤
声明变量
声明计时器
例如,制作 PDU。
TCCN 可以与用其他语言编写的系统一起使用,例如 ASN.1、XML 和 C/C++。除了表格、图形和演示格式外,TCCN3 核心语言还以文本格式提供。
网络设备的协议测试 – 示例测试用例
以下是路由器的示例测试用例 –
测试名称 |
测试用例 |
---|---|
一个交换机上的一个 VLAN |
构建两个不同的 VLAN。验证不同 VLAN 上的主机之间的可见性。 |
一个交换机上的三个对称 VLAN |
创建三个不同的非对称 VLAN。检查主机之间的可见性。 |
生成树 – 根路径成本变化 |
测试拓扑变化后根路径成本如何变化。 |
生成树 - 端口阻塞 |
在存在 VLAN 的情况下,了解生成树协议如何通过阻塞冗余链路来防止网络中出现环路。 |
不同 MSTI 的不同根桥 |
演示每个 MSTI 可以拥有唯一的根桥。 |
不同 STP 区域之间的可见性 |
使用相同的 VLAN 检查不同 STP 区域之间的可见性。 |
电话交换机性能 |
拨打 1000 个电话,查看电话交换机是否仍在运行,或者其性能是否下降。 |
设备的负面测试 |
输入错误的密钥并验证用户的身份验证。用户不应该能够获得访问权限。 |
线路速度 |
检查设备是否以 10Gbps 的速度运行,并使用所有可用带宽来处理传入流量。 |
协议通信速率 |
跟踪两台设备之间的 TCP 通信,并确保每台设备都正常运行。 |
会话启动的响应时间 |
计算设备对会话启动邀请请求的响应时间。 |