协议测试教程 – L2 & L3
协议究竟是什么?
当一台计算机与另一台计算机通信时,它必须遵守一组共享的规则和环境。换句话说,协议定义了数据如何在计算机之间和通过网络传输。
协议测试
协议测试是一种在交换、无线、VoIP、路由等领域验证通信协议的方法。协议测试的基本目标是使用协议测试工具来检查通过网络传送的数据包的结构。在测试期间,使用路由器和交换机来创建被测试设备和商品的部分。
协议测试的价值
它还允许开发可靠和高性能的网络连接。如果没有协议,设备将无法解释它们在通过网络连接进行对话时发送的电子信号。
网络传输包含加密二进制数据的数据包。此外,一些协议包括一个头来保存有关消息发送者的信息。网络协议在消息的开头提供了对通信发送方和接收方的描述。页脚也包含在一些协议中。
因此,网络协议专注于在设备之间传输数据时识别页眉和页脚。
路由协议和路由协议
有两种类型的协议-路由协议和路由协议。
路由协议-路由协议可用于将用户数据从一个网络传输到另一个网络。它传输用户流量,例如电子邮件、Web流量、文件传输等。IP、IPX和AppleTalk是路由协议的示例。
路由协议-路由协议是网络协议,让路由器选择要采用的路由。它仅用于路由器之间的通信。例如,RIP、IGRP、EIGRP等。
简单来说,路由器就像一辆载人的公共汽车,而路由协议就像交通灯。
根据通信的性质采用不同的协议。CISCO、JUNIPER和ALCATEL等公司生产使用各种通信协议的网络设备,例如路由器、调制解调器、无线接入点等。例如,Cisco使用EIGRP、OSPF等。协议测试包括确定EIGRP(增强型内部网关路由协议)或OSPF(开放最短路径优先)或任何其他协议是否按照其相关标准运行。
协议及其使用方式
TCP/IP-此协议用于以微小数据包的形式通过Internet传输数据。
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等工具检查设备的可扩展性、性能、协议策略等。
协议测试方法
协议测试包括功能、性能、协议栈、兼容性等方面。在协议测试期间执行三项检查-
正确性-我们是否在预测日期收到了数据包X?
延迟-数据包通过系统所需的时间。
带宽-带宽是我们每秒可以发送的数据包数量。
协议测试可分为两种类型。功能测试,以及压力和可靠性测试。负载测试、压力测试和性能测试都是压力和可靠性测试的例子。否定测试、一致性测试、互操作性测试等等都是功能测试的一部分。
压力测试(Torture测试)-压力测试(Torture测试)是一种故意密集或广泛的测试,用于评估特定系统、重要基础设施或实体的稳定性。它需要进行超出正常操作能力的测试,通常会超出断点,以检查影响。
可靠性测试-可靠性测试是一种软件测试程序,用于确定程序是否可以在给定的时间段内在特定环境中执行无故障操作。可靠性测试的目标是确保软件产品没有错误并且足够可靠以执行其预期功能。
一致性测试-检查诸如IEEE、RFC等协议的货物一致性。
互操作性测试-测试不同供应商的互操作性。此测试遵循相关平台上的一致性测试。
网络功能测试-使用设计文档作为指南评估网络设备的功能。交换机上的端口安全、路由器上的ACL等都是功能示例。
协议测试工具
让我们来看看最重要的协议验证测试工具。
数据包制作Scapy
Scapy是一个复杂的数据包修改软件,可以交互使用。它允许您-
制作数据包
在网络上,解码数据包。
捕获和分析数据包
应将数据包注入网络。
所以,从根本上说,Scapy做了两件事:接收响应和发送数据包。您指定数据包,它传输它们,接收响应,将请求与响应匹配,并提供数据包对和未匹配数据包的列表。
它还可以处理跟踪路由、单元测试、攻击或网络发现、构建新协议、探测等。
Scapy允许我们创建一个Python脚本来执行诸如发送和接收数据包或嗅探数据包之类的任务。例如,Scapy可以使用Python脚本嗅探数据包。输入了在编辑器中打开getdit文件的命令。
#gedit scapysniff.py #!/usr/bin/env python fromscapy.allimport* a= sniff(count=10) a.nsummary()
保存,并将文件的模式更改为可执行形式
#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编程语言开发的用于反应式系统或行为测试的测试用例集合。
例如,如果您输入1美元硬币,咖啡自动售货机会给您咖啡,但如果您插入硬币以外的任何东西,则不会响应。TCCN3编程语言用于对此类机器进行编程。为了让咖啡机在插入硬币时做出响应,我们必须创建一个充当咖啡机的TCCN-3组件。它允许我们在商用咖啡机发布之前进行研究。
完成后,我们会将TCCN3测试套件链接到外部设备。
测试系统产生刺激(一美元硬币)并收集反应(咖啡)。激励适配器从测试系统收集激励并将它们发送到被测系统。响应适配器监视被测系统的回复并将它们转发到测试系统。
TCCN3可用于多种应用,包括
通过移动设备(LTE、WiMAX、3G等)进行通信
高速互联网技术(ATM、DSL)
中间件平台(Web服务、CORBA等)
InternetProtocol(IP)是缩写(SIP,IMS,IPv6)
读卡器
汽车(AutoSAR、MOST、CAN)
我们可以在TCCN中定义-
测试套件
测试用例
测试步骤
声明变量
声明定时器
例如,制作PDU。
TCCN可以与用其他语言(如ASN.1、XML和C/C++)编写的系统集成。除了表格、图形和演示格式外,TCCN3核心语言还提供文本格式。
网络设备的协议测试-示例测试用例
这是路由器的示例测试用例-