Hướng dẫn kiểm thử giao thức (Cấp độ 2 & 3)

⚡ Tóm tắt thông minh

Kiểm thử giao thức xác nhận cách các thiết bị mạng trao đổi dữ liệu qua các giao thức L2 và L3. Nó xác minh cấu trúc gói tin, sự phù hợp, hiệu suất và khả năng tương tác của các thiết bị chuyển mạch, bộ định tuyến, thiết bị VoIP và thiết bị không dây được sử dụng bởi các nhà cung cấp như... CiscoJuniper và Alcatel.

  • 🌐 Phạm vi: Kiểm thử giao thức bao gồm các giao thức chuyển mạch, không dây, VoIP và định tuyến trên toàn bộ mô hình OSI, tập trung vào hoạt động ở lớp L2 và L3.
  • 🔌 L2 so với L3: Lớp 2 xử lý MAC, Ethernet và Frame Relay; Lớp 3 chọn các đường dẫn tối ưu thông qua IP, OSPF, EIGRP và các giao thức định tuyến tương tự.
  • 🛠️ Bộ công cụ: Các kỹ sư dựa vào Wireshark để ghi hình trực tiếp, Scapy TTCN-3 dùng để tạo gói tin và TTCN-3 dùng để tạo bộ kiểm thử hành vi đối với Thiết bị cần kiểm thử.
  • Kiểm tra các loại: Các bài kiểm tra về sự phù hợp, khả năng tương tác, chức năng, độ bền, tải và hiệu năng xác nhận tính chính xác, độ trễ và ngưỡng băng thông.
  • 🧪 Góc nhìn AI: Các phòng thí nghiệm hiện đại áp dụng mô hình AI để phát hiện các bất thường về lưu lượng truy cập, dự đoán lỗi giao thức và tự động tạo ra các trường hợp kiểm thử tiêu cực nhằm rút ngắn chu kỳ hồi quy.

Kiểm tra giao thức

Trước khi tìm hiểu về Kiểm thử Giao thức, chúng ta hãy cùng hiểu rõ nền tảng mà nó được xây dựng dựa trên.

Giao thức là gì?

Khi máy tính giao tiếp với nhau, có một tập hợp các quy tắc và điều kiện chung mà mỗi máy tính phải tuân theo. Nói cách khác, giao thức xác định cách dữ liệu được truyền tải. transmitCác quy tắc chung này được thiết lập giữa các thiết bị điện toán và qua mạng. Nếu không có các quy tắc chung này, các thiết bị từ các nhà cung cấp khác nhau không thể trao đổi lưu lượng truy cập một cách đáng tin cậy.

Kiểm thử giao thức là gì?

Kiểm tra giao thức Kiểm thử giao thức là một phương pháp kiểm tra các giao thức truyền thông trong các lĩnh vực chuyển mạch, không dây, VoIP, định tuyến và các lĩnh vực mạng tương tự. Mục tiêu chính của kiểm thử giao thức là kiểm tra cấu trúc của các gói dữ liệu được gửi qua mạng bằng cách sử dụng các công cụ kiểm thử giao thức chuyên dụng. Bộ định tuyến và bộ chuyển mạch được sử dụng trong quá trình kiểm thử để tạo thành một phần của các thiết bị và sản phẩm đang được kiểm thử.

Giờ chúng ta đã định nghĩa được phương pháp này, hãy cùng xem xét tại sao lĩnh vực này lại quan trọng trong mạng lưới sản xuất.

Tại sao việc kiểm thử theo giao thức lại quan trọng?

Các mạng hiện đại xử lý các khối lượng công việc quan trọng như cuộc gọi VoIP, giao dịch tài chính và video trực tuyến. Một lỗi giao thức duy nhất có thể phá vỡ khả năng tương tác giữa các nhà cung cấp, làm mất gói dữ liệu hoặc làm lộ ra các lỗ hổng bảo mật. Kiểm thử giao thức đảm bảo chất lượng bằng cách xác thực rằng mỗi triển khai giao thức phù hợp với đặc tả của nó, có khả năng mở rộng dưới tải trọng và hoạt động có thể dự đoán được trong trường hợp xảy ra lỗi.

Sau khi đã xác định rõ động cơ, câu hỏi tiếp theo là các giao thức được phân loại như thế nào trong các mạng thực tế.

Giao thức định tuyến và định tuyến

Các giao thức được phân loại thành hai loại: giao thức định tuyếngiao thức định tuyến.

  • Giao thức định tuyến: Các giao thức định tuyến được sử dụng để gửi dữ liệu người dùng từ mạng này sang mạng khác. Chúng truyền tải lưu lượng người dùng như email, lưu lượng truy cập web và truyền tải tập tin. Ví dụ về các giao thức định tuyến là IP, IPX và AppleTalk.
  • Giao thức định tuyến: Giao thức định tuyến là các giao thức mạng xác định tuyến đường đi cho các bộ định tuyến. Chúng chỉ được sử dụng giữa các bộ định tuyến với nhau. Ví dụ bao gồm RIP, IGRP và EIGRP.

Trong thuật ngữ đơn giản, Bộ định tuyến giống như một chiếc xe buýt dùng để vận chuyển, trong khi các giao thức định tuyến là các tín hiệu trên đường.

Tùy thuộc vào loại hình giao tiếp, các giao thức khác nhau được sử dụng. Các công ty như CiscoJuniper và Alcatel sản xuất các thiết bị mạng như bộ định tuyến, modem và điểm truy cập không dây sử dụng các giao thức khác nhau để liên lạc. Ví dụ: Cisco Sử dụng EIGRP và OSPF. Kiểm thử giao thức về cơ bản là kiểm tra xem EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) hoặc bất kỳ giao thức nào khác có hoạt động theo tiêu chuẩn tương ứng của nó hay không.

Các loại giao thức máy tính

Bảng dưới đây liệt kê các giao thức phổ biến nhất mà người kiểm thử sẽ gặp phải trên đường truyền.

Các loại giao thức Mục đích của giao thức
TCP / IP Nó được sử dụng để gửi thông tin trong các gói nhỏ qua Internet
UDP/ICMP Nó được sử dụng để gửi một lượng nhỏ thông tin dưới dạng các gói dữ liệu qua Internet.
POP3 và SMTP Nó được sử dụng để gửi và nhận thư
Giao thức truyền siêu văn bản Nó được sử dụng để truyền tải các trang HTML ở dạng mã hóa nhằm đảm bảo an ninh cho dữ liệu nhạy cảm.
FTP Nó được sử dụng để vận chuyển các tập tin qua mạng từ nút này sang nút khác

* TCP / IP – Transmission Giao thức điều khiển/Giao thức Internet, UDP/ICMP – Giao thức gói dữ liệu người dùng/Giao thức thông báo điều khiển Internet, POP3/SMTP – Quy trình Bưu điện/Đơn giản Mail Giao thức chuyển giao, HTTP – Giao thức truyền siêu văn bản, FTP – Giao thức truyền tải tệp.

Các loại giao thức mạng khác nhau (L2 và L3)

Mô hình OSI có tổng cộng bảy lớp truyền thông mạng, trong đó Lớp 2 (L2) và Lớp 3 (L3) rất quan trọng đối với việc kiểm thử giao thức.

  • Lớp 2 (L2): Đó là lớp liên kết dữ liệu. Địa chỉ MAC, Ethernet, Token Ring và Frame Relay đều là những ví dụ về lớp liên kết dữ liệu.
  • Lớp 3 (L3): Lớp mạng là lớp xác định đường dẫn tốt nhất hiện có trong mạng để liên lạc. Địa chỉ IP là một ví dụ về lớp 3.

Cách thực hiện Kiểm tra giao thức

  • Để kiểm thử giao thức, bạn cần có... bộ phân tích giao thức và bộ mô phỏng.
  • Bộ phân tích giao thức đảm bảo giải mã chính xác cùng với phân tích cuộc gọi và phiên. Trình mô phỏng mô phỏng các thành phần khác nhau của phần tử mạng.
  • Thông thường, việc kiểm thử giao thức được thực hiện bằng cách kết nối thiết bị cần kiểm thử (DUT) với các thiết bị khác như switch và router, với giao thức mục tiêu được cấu hình trên đó.
  • Sau đó, người kiểm tra sẽ kiểm tra cấu trúc gói tin được gửi bởi các thiết bị.
  • Nó kiểm tra khả năng mở rộng, hiệu năng và hành vi thuật toán giao thức của thiết bị bằng cách sử dụng các công cụ như IxNetwork, Scapyvà Wireshark.

Các loại thử nghiệm để thử nghiệm giao thức

Kiểm thử giao thức bao gồm kiểm thử chức năng, hiệu năng, ngăn xếp giao thức, khả năng tương tác, và nhiều hơn nữa. Trong quá trình kiểm thử giao thức, ba bước kiểm tra cơ bản được thực hiện.

  • Tính đúng đắn: Chúng ta có nhận được gói dữ liệu X vào thời điểm dự kiến ​​không?
  • Độ trễ: Mất bao lâu để một gói dữ liệu di chuyển qua hệ thống?
  • băng thông: Mỗi giây chúng ta có thể gửi bao nhiêu gói dữ liệu?

Kiểm thử giao thức có thể được chia thành hai loại chính: Kiểm thử độ bền và độ tin cậy, và Kiểm thử chức năng. Kiểm thử độ bền và độ tin cậy bao gồm: Kiểm tra Tải, Bài kiểm tra về áp lựcKiểm tra năng suất. Thử nghiệm chức năng Bao gồm kiểm thử tiêu cực, kiểm thử tuân thủ và kiểm thử khả năng tương tác.

  • Kiểm tra sự phù hợp: Các giao thức được triển khai trên sản phẩm được kiểm tra về sự tuân thủ các tiêu chuẩn như IEEE và RFC.
  • Kiểm tra khả năng tương tác: Khả năng tương thích giữa các nhà cung cấp khác nhau được kiểm tra. Việc kiểm tra này được thực hiện sau khi hoàn tất kiểm tra tuân thủ trên nền tảng phù hợp.
  • Kiểm tra tính năng mạng: Các tính năng của sản phẩm mạng được kiểm tra chức năng dựa trên tài liệu thiết kế. Ví dụ, các tính năng đó có thể là bảo mật cổng trên thiết bị chuyển mạch hoặc danh sách kiểm soát truy cập (ACL) trên bộ định tuyến.

Các trường hợp thử nghiệm mẫu để thử nghiệm giao thức của thiết bị mạng

Dưới đây là một bộ ví dụ về các trường hợp kiểm thử dành cho bộ định tuyến và bộ chuyển mạch.

Tên bài kiểm tra Các trường hợp kiểm tra
Một Vlan trên một Switch Tạo hai VLAN khác nhau. Kiểm tra khả năng hiển thị giữa các máy chủ trên các VLAN khác nhau.
Ba VLAN đối xứng trên một thiết bị chuyển mạch Tạo ba VLAN bất đối xứng khác nhau. Kiểm tra khả năng hiển thị giữa các máy chủ.
Cây kéo dài: Biến đổi chi phí đường dẫn gốc Kiểm tra xem chi phí đường dẫn gốc thay đổi như thế nào sau khi có sự thay đổi về cấu trúc mạng.
Cây kéo dài: Chặn cổng Hãy kiểm tra xem giao thức cây bao trùm (spanning tree protocol) tránh hình thành các chu kỳ trong mạng như thế nào, bằng cách chặn các liên kết dư thừa, khi có sự hiện diện của... Vlan quá.
Cầu gốc khác nhau cho MSTI khác nhau Chứng minh rằng mỗi MSTI có thể có một cầu nối gốc khác nhau.
Khả năng hiển thị giữa các vùng STP khác nhau Với cùng các VLAN, hãy kiểm tra khả năng hiển thị giữa các vùng STP khác nhau.
Hiệu suất tổng đài điện thoại Thực hiện 1000 cuộc gọi điện thoại và kiểm tra xem tổng đài điện thoại có còn hoạt động hay hiệu suất của nó bị suy giảm.
Kết quả kiểm tra thiết bị âm tính. Nhập sai khóa và kiểm tra xác thực. Người dùng không được phép truy cập.
Tốc độ đường truyền Kiểm tra xem thiết bị có hoạt động ở tốc độ 10 Gbps, sử dụng toàn bộ băng thông khả dụng để xử lý lưu lượng truy cập đến hay không.
Tỷ lệ hội thoại giao thức TracThực hiện cuộc hội thoại TCP giữa hai thiết bị và xác minh rằng mỗi thiết bị hoạt động chính xác.
Thời gian phản hồi khi bắt đầu phiên Đo thời gian phản hồi của thiết bị đối với yêu cầu mời khởi tạo phiên.

Công cụ kiểm tra giao thức

Chúng ta hãy cùng thảo luận về các công cụ kiểm thử quan trọng nhất được sử dụng để xác minh các giao thức.

1) Scapy để đóng gói

Scapy Đây là một chương trình thao tác gói dữ liệu tương tác mạnh mẽ. Nó cho phép bạn:

  • Tạo gói
  • Giải mã các gói tin trên mạng
  • Chụp các gói và phân tích chúng
  • Tiêm các gói vào mạng

Nên về cơ bản, Scapy chủ yếu làm hai việc: nhận câu trả lời và gửi góiBạn định nghĩa các gói dữ liệu, chương trình sẽ gửi chúng, nhận phản hồi, đối khớp yêu cầu với phản hồi và trả về một danh sách các cặp gói dữ liệu và một danh sách các gói dữ liệu không khớp.

Nó cũng có thể xử lý các tác vụ khác như... tracđịnh tuyến điện tử, kiểm thử đơn vị, tấn công, phát hiện mạng, phát triểnping các giao thức mới và thăm dò.

Scapy cho phép bạn viết một Python Đoạn mã cho phép bạn thực hiện các tác vụ như gửi, nhận hoặc bắt gói dữ liệu. Ví dụ: Scapy có thể đánh cắp các gói dữ liệu bằng cách sử dụng một khoảng cách ngắn. Python Tập lệnh. Lệnh để mở trình soạn thảo được hiển thị bên dưới.

#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

Nó sẽ bắt giữ 10 gói tin, và ngay khi bắt giữ đủ 10 gói tin, nó sẽ in ra bản tóm tắt. Scapy Ngoài ra, nó còn có một loạt các lệnh để gửi và nhận gói dữ liệu cùng lúc.

Tải về Scapy

2) Wireshark để phân tích

Wireshark Đây là công cụ hàng đầu được sử dụng để phân tích kiểm thử giao thức. Nó cho phép bạn thu thập các gói dữ liệu trong thời gian thực và hiển thị chúng ở dạng dễ đọc. Bạn có thể tìm hiểu sâu về lưu lượng mạng và kiểm tra từng gói dữ liệu riêng lẻ bằng cách sử dụng mã màu và bộ lọc.

Wireshark Nó thu thập các gói dữ liệu giúp xác định thời điểm thiết lập phiên, thời điểm bắt đầu truyền dữ liệu chính xác và lượng dữ liệu được gửi mỗi lần.

Wireshark có bộ tính năng phong phú bao gồm:

  • Việc kiểm tra kỹ lưỡng hàng trăm giao thức, và số lượng này vẫn đang được bổ sung liên tục.
  • Chụp trực tiếp và phân tích ngoại tuyến
  • Phân tích VoIP phong phú
  • Trình duyệt gói ba ngăn tiêu chuẩn
  • Chạy trên nhiều nền tảng khác nhau như... Windows, Linux, và macOS
  • Dữ liệu mạng đã chụp có thể được duyệt qua GUI
  • Hỗ trợ giải mã cho nhiều giao thức như IPsec, ISAKMP và SSL/TLS.
  • Dữ liệu trực tiếp có thể được đọc từ Ethernet, ATM, Bluetooth, USB và Token Ring.
  • Kết quả đầu ra có thể được xuất ra định dạng CSV, XML và văn bản thuần túy.

Tải về Wireshark

3) TTCN

TTCN là một ngôn ngữ kiểm thử tiêu chuẩn dùng để định nghĩa Các tình huống thử nghiệm và việc triển khai chúng cho Kiểm thử Giao thức. Bộ kiểm thử TTCN chứa nhiều trường hợp kiểm thử được viết bằng ngôn ngữ lập trình TTCN và được sử dụng cho kiểm thử hệ thống phản ứng hoặc kiểm thử hành vi.

Ví dụ, hãy xem xét một máy bán cà phê tự động, máy này sẽ pha cà phê khi người dùng bỏ tiền xu 1 đô la vào nhưng sẽ không phản hồi nếu bỏ ít hơn 1 đô la. Để lập trình cho những máy như vậy, người ta sử dụng TTCN-3. Để máy pha cà phê phản hồi khi người dùng bỏ tiền xu vào, bạn cần viết một thành phần TTCN-3 hoạt động như một máy pha cà phê. Điều này cho phép bạn chạy thử nghiệm trước khi máy pha cà phê thực tế được bán ra thị trường. Sau khi hoàn tất, bạn có thể kết nối bộ kiểm thử TTCN-3 với thiết bị bên ngoài.

TTCN

Hệ thống thử nghiệm phát ra tín hiệu kích thích (một đồng xu) và nhận phản hồi (cà phê). Bộ chuyển đổi tín hiệu kích thích nhận tín hiệu kích thích từ hệ thống thử nghiệm và chuyển tiếp chúng đến hệ thống cần thử nghiệm. Bộ chuyển đổi phản hồi chờ phản hồi của hệ thống cần thử nghiệm và chuyển tiếp chúng đến hệ thống thử nghiệm.

TTCN-3 có thể được sử dụng trong nhiều lĩnh vực khác nhau, chẳng hạn như:

  • Truyền thông di động (LTE, WiMAX, 3G)
  • Công nghệ băng thông rộng (ATM, DSL)
  • Nền tảng phần mềm trung gian (Dịch vụ web, CORBA)
  • Các giao thức Internet (SIP, IMS, IPv6)
  • Nhưng chiêc thẻ thông minh
  • Ô tô (AutoSAR, MOST, CAN)

Trong TTCN, bạn có thể định nghĩa:

  • Bộ thử nghiệm
  • Các trường hợp kiểm tra
  • Các bước kiểm tra
  • Biến đã khai báo
  • Bộ hẹn giờ đã khai báo
  • PDU và hơn thế nữa

TTCN có thể được tích hợp với các hệ thống được viết bằng các ngôn ngữ khác như ASN.1, XMLvà C/C++Ngôn ngữ cốt lõi TTCN-3 tồn tại ở dạng văn bản, bên cạnh các định dạng bảng, đồ họa và trình bày.

Cách áp dụng kiểm thử giao thức trong thực tiễn

Để áp dụng các kỹ thuật này vào một dự án thực tế, hãy xác định phạm vi giao thức (L2, L3 hoặc cao hơn), thiết lập DUT với trình mô phỏng và bộ phân tích được kết nối, soạn thảo các trường hợp kiểm thử tuân thủ và kiểm thử tiêu cực tham chiếu đến các thông số kỹ thuật RFC hoặc IEEE, sau đó chạy các kiểm tra tải, khả năng tương tác và kiểm tra bất thường có sự hỗ trợ của AI. Ghi lại kết quả. Wireshark và lặp lại cho đến khi hành vi của gói tin phù hợp với tiêu chuẩn.

Câu Hỏi Thường Gặp

Kiểm thử giao thức (Protocol Testing) kiểm tra xem các giao thức truyền thông trên các thiết bị chuyển mạch, bộ định tuyến và các thiết bị tương tự có gửi các gói dữ liệu đúng định dạng và hoạt động theo các tiêu chuẩn trong các lĩnh vực Chuyển mạch, Định tuyến, VoIP và Không dây hay không.

Kiểm thử L2 tập trung vào lớp liên kết dữ liệu như MAC, Ethernet và Frame Relay, trong khi kiểm thử L3 xác thực các giao thức định tuyến lớp mạng như IP, OSPF và EIGRP, giúp chọn đường dẫn tối ưu giữa các mạng.

Wireshark để thu và giải mã trực tiếp, Scapy IxNetwork dùng để tạo gói tin, IxNetwork dùng để tạo lưu lượng mạng, và TTCN-3 dùng để tạo bộ kiểm thử hành vi là những công cụ tiêu chuẩn được các kỹ sư kiểm thử mạng sử dụng.

Kiểm tra tuân thủ xác minh rằng việc triển khai giao thức tuân thủ nghiêm ngặt các thông số kỹ thuật của nó, chẳng hạn như tiêu chuẩn IEEE hoặc RFC của IETF, để các thiết bị từ các nhà cung cấp khác nhau có thể hoạt động tương thích một cách dự đoán được trên cùng một mạng.

Các mô hình AI học các mẫu gói dữ liệu cơ bản, sau đó tạo ra các trường hợp kiểm thử tiêu cực, dự đoán rủi ro suy giảm trong các thay đổi định tuyến và tự động ưu tiên các kịch bản lỗi để các kỹ sư kiểm thử có thể bao phủ nhiều đường dẫn giao thức hơn trong thời gian ngắn hơn.

Đúng vậy. Các thuật toán phân loại máy học tiếp nhận dữ liệu. Wireshark Hoặc NetFlow ghi lại, gắn cờ độ trễ, độ rung hoặc hình dạng gói tin bất thường so với các tiêu chuẩn đã học, và phát hiện các hành vi sai trái của giao thức trước khi chúng gây ra sự cố trong mạng sản xuất.

Tóm tắt bài viết này với: