協議測試教程 – 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 通訊,並確保每臺裝置都正常執行。 |
會話啟動的響應時間 |
計算裝置對會話啟動邀請請求的響應時間。 |
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP