Samouczek testowania protokołu: L2 i L3

Zanim dowiemy się o testowaniu protokołów, zrozummy:

Co to jest protokół?

Gdy komputery komunikują się ze sobą, istnieje wspólny zestaw reguł i warunków, których każdy komputer musi przestrzegać. Innymi słowy, protokoły określają sposób przesyłania danych między urządzeniami komputerowymi i przez sieci.

Testowanie protokołu

Testowanie protokołu to metoda sprawdzania protokołów komunikacyjnych w domenach przełączania, sieci bezprzewodowej, VoIP, routingu itp. Podstawowym celem testowania protokołów jest sprawdzenie struktury pakietów przesyłanych w sieci za pomocą narzędzi do testowania protokołów. Routery i przełączniki są wykorzystywane podczas testu jako części testowanych urządzeń i produktów.

Protokoły routingowe i routingowe

Protokoły dzielą się na dwie kategorie protokoły routowane i protokoły routingu

  • Protokoły routowane:Protokoły routowane mogą być używane do przesyłania danych użytkownika z jednej sieci do innej sieci. Przenoszą ruch użytkownika, taki jak e-maile, ruch sieciowy, transfery plików itp. Protokoły routowane to IP, IPX i AppleTalk.
  • Protokoły routingu: Protokoły routingu to protokoły sieciowe określające trasy dla routerów. Jest używany tylko między routerami. Na przykład RIP, IGRP, EIGRP itp.

W prostych słowach, router przypomina autobus używany do transportu, podczas gdy protokoły routingu to sygnały na drodze.

W zależności od rodzaju komunikacji używane są różne protokoły. Firmy takie jak CISCO, JUNIPER, ALCATEL produkują urządzenia sieciowe, takie jak routery, modemy, punkty dostępu bezprzewodowego itp., które wykorzystują różne protokoły do ​​komunikacji, na przykład: Cisco wykorzystuje EIGRP, OSPF itp. Testowanie protokołów to nic innego jak sprawdzenie, czy EIGRP (Enhanced Interior Gateway Routing Protocol) lub OSPF (Open Shortest Path First) lub jakikolwiek inny protokół działa zgodnie z odpowiednim standardem.

Rodzaje protokołów komputerowych

Rodzaje protokołów Cel protokołów
TCP / IP Służy do przesyłania informacji w małych pakietach przez Internet
UDP/ICMP Służy do wysyłania niewielkiej ilości informacji w pakietach danych przez Internet
POP3 i SMTP Służy do wysyłania i odbierania poczty
Protokół przesyłania hipertekstu Służy do przesyłania strony HTML w formie zaszyfrowanej w celu zapewnienia bezpieczeństwa wrażliwych danych
FTP Służy do transportu plików przez sieć z jednego węzła do drugiego

* TCP / IP- Transmission Protokół kontrolny/protokół internetowy, UDP/ICMP– Protokół datagramów użytkownika/protokół komunikatów kontroli Internetu, POP3 / SMTP– Protokół pocztowy / Prosty Mail Protokół transferu, HTTP– Protokół przesyłania hipertekstu, FTP- Protokół Przesyłania Plików

Różne typy protokołów sieciowych (L2 i L3)

Model OSI obejmuje w sumie 7 warstw komunikacji sieciowej, przy czym warstwy 2 i 3 są bardzo istotne.

  • Warstwa 2: Jest to warstwa łącza danych. Adres Mac, Ethernet, Token Ring i Frame Relay to przykłady warstwy łącza danych.
  • Warstwa 3: Jest to warstwa sieciowa, która określa najlepszą dostępną ścieżkę komunikacji w sieci. Adres IP jest przykładem warstwy 3.

Jak przeprowadzić testowanie protokołu

  • Do testowania protokołu potrzebujesz analizator protokołów i symulator
  • Analizator protokołów zapewnia prawidłowe dekodowanie wraz z analizą połączeń i sesji. Podczas gdy symulator symuluje różne podmioty elementu sieciowego
  • Zwykle testowanie protokołu jest przeprowadzane przez DUT (testowane urządzenie) na innych urządzeniach, takich jak przełączniki i routery, oraz konfigurowanie w nim protokołu
  • Następnie sprawdza się strukturę pakietów wysyłanych przez urządzenia
  • Sprawdza skalowalność, wydajność, algorytm protokołu itp. urządzenia za pomocą narzędzi takich jak lxNetworks, Scapy i Wireshark

Typy testowania w testowaniu protokołów

Testowanie protokołów obejmuje testowanie funkcjonalności, wydajności, stosu protokołów, interoperacyjności itp. Podczas testowania protokołów przeprowadzane są zasadniczo trzy kontrole.

  • Poprawność: Czy otrzymamy pakiet X wtedy, kiedy się tego spodziewaliśmy?
  • Utajenie: Ile czasu zajmuje przejście pakietu przez system
  • przepustowość: Ile pakietów możemy wysłać na sekundę

Testowanie protokołu można podzielić na dwie kategorie. Testy obciążeniowe i niezawodnościowe oraz testy funkcjonalne. Testy warunków skrajnych i niezawodności obejmują Testowanie obciążenia, Testy warunków skrajnych, Test wydajnościitp. Chociaż Testy funkcjonalne obejmuje testy negatywne, testy zgodności, testy interoperacyjności itp.

  • Testy zgodności: Protokoły zaimplementowane w produktach są testowane pod kątem zgodności, np. IEEE, RFC itd.
  • Testowanie interoperacyjności:Testowana jest interoperacyjność dla różnych dostawców. Testowanie to odbywa się po przeprowadzeniu testów zgodności na odpowiedniej platformie.
  • Testowanie funkcji sieciowych: Cechy produktów sieciowych są testowane pod kątem funkcjonalności w odniesieniu do dokumentu projektowego. Na przykład funkcjami mogą być zabezpieczenia portów na przełączniku, lista ACL na routerze itp.

Przykładowe przypadki testowe do testowania protokołów urządzeń sieciowych

Oto przykładowy przypadek testowy routerów

Nazwa testu Przypadki testowe
Jedna sieć VLAN na jednym przełączniku Zbuduj dwie różne sieci VLAN. Sprawdź widoczność między hostami w różnych sieciach VLAN
Trzy symetryczne sieci VLAN na jednym przełączniku Utwórz trzy różne asymetryczne sieci VLAN. Sprawdź widoczność między hostami
Drzewo opinające: zmienność kosztów ścieżki głównej Sprawdź, jak zmienia się koszt ścieżki głównej po zmianie topologii
Drzewo opinające: blokowanie portów Sprawdź, jak protokół drzewa opinającego zapobiega tworzeniu się cykli w sieci, blokując nadmiarowe łącza w obecności VLAN także
Inny most główny dla różnych MSTI Pokaż, że każdy MSTI może mieć inny most główny
Widoczność pomiędzy różnymi regionami STP W przypadku tych samych sieci VLAN sprawdź widoczność między różnymi regionami STP
Przełącznik telefoniczny Wydajność Wygeneruj 1000 połączeń telefonicznych i sprawdź, czy centrala telefoniczna nadal działa, czy jej wydajność się pogarsza
Negatywny test dla urządzenia Wprowadź nieprawidłowy klucz i sprawdź uwierzytelnienie użytkownika. Nie powinno umożliwiać użytkownikowi dostępu
Linia prędkości Sprawdź, czy urządzenie działa z prędkością 10 Gb/s, wykorzystując całą dostępną przepustowość do obsługi ruchu przychodzącego
Szybkość konwersacji protokołu Śledź konwersację TCP między dwoma urządzeniami i sprawdzaj, czy każde urządzenie zachowuje się prawidłowo
Czas odpowiedzi na rozpoczęcie sesji Zmierz czas odpowiedzi urządzenia na żądanie zaproszenia w celu rozpoczęcia sesji

Narzędzia do testowania protokołów

Omówmy najważniejsze narzędzia testowe służące do weryfikacji protokołów

1) Scapy Do tworzenia pakietów

Scapy to potężny interaktywny program do manipulacji pakietami. Umożliwia to

  • Twórz pakiety
  • Dekoduj pakiety w sieci
  • Przechwytuj pakiety i analizuj je
  • Wprowadzaj pakiety do sieci

Zasadniczo scapy wykonuje dwie czynności: odbieranie odpowiedzi i wysyłanie pakietów. Definiujesz pakiety, wysyła je, odbiera odpowiedzi, dopasowuje żądania do odpowiedzi i zwraca listę par pakietów oraz listę niedopasowanych pakietów.

Może także obsługiwać inne rzeczy, takie jak routing śledzenia, testy jednostkowe, ataki lub odkrywanie sieci, opracowywanie nowych protokołów, sondowanie itp.

Scapy pozwala nam napisać a Python skrypt, który pozwala nam wykonywać zadania takie jak wysyłanie i odbieranie pakietów lub podsłuchiwanie pakietów. Na przykład, scapy może podsłuchiwać pakiet danych za pomocą Python scenariusz. Polecenie otwarcia getdit wprowadzone w edytorze

#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

Będzie powąchał 10 pakietów i jak tylko obwąchuje 10 pakietów, wydrukuje podsumowanie. Scapy również jako tablica poleceń do jednoczesnego wysyłania i odbierania pakietów

Do pobrania Scapy

2) Wireshark Narzędzia do analizy

Narzędzia używane do testowania protokołów- Wireshark. Umożliwia przechwytywanie pakietów w czasie rzeczywistym i wyświetlanie ich w formie czytelnej dla człowieka. Umożliwia dogłębne badanie ruchu sieciowego i inspekcję poszczególnych pakietów za pomocą kodowania kolorami i filtrów.

Wireshark przechwytuje pakiety, co pomaga określić, kiedy sesja zostaje nawiązana, kiedy dokładnie rozpoczęto przesyłanie danych i ile danych jest wysyłanych za każdym razem itp.

Wireshark posiada zestaw bogatych funkcji, które obejmują

  • Dokładna kontrola setek protokołów i cały czas dodawane są kolejne
  • Przechwytywanie na żywo i analiza offline
  • Bogata analiza VoIP
  • Standardowa przeglądarka z trzema panelami
  • Działa na wielu platformach, takich jak Windows, Linux, OSX i tak dalej
  • Przechwycone dane sieciowe można przeglądać za pomocą graficznego interfejsu użytkownika
  • Deszyfrowanie obsługuje wiele protokołów, takich jak IPsec, ISAKMP, SSL/TLS
  • Dane na żywo można odczytać z sieci Ethernet, ATM, Bluetooth, USB, tokena itp.
  • Dane wyjściowe można eksportować do formatu CSV, XML, zwykłego tekstu itp.

Do pobrania Wireshark

TTCN

TCCN to standardowy język testowy do definiowania Scenariusz testowy i ich implementacja do testowania protokołów. Zestaw testów TCCN zawiera wiele przypadków testowych napisanych w języku programowania TTCN i do czego jest używany testowanie systemy reaktywne lub testy behawioralne.

Na przykład automat do kawy, który podaje kawę po włożeniu monety dolarowej, ale nie reaguje, jeśli wrzucono do niego coś mniejszego niż dolar. Do programowania takich maszyn używany jest język TCCN3. Aby ekspres do kawy reagował po wrzuceniu monety, musimy napisać komponent TCCN-3, który będzie zachowywał się jak ekspres do kawy. Dzięki temu możemy przeprowadzić test, zanim rzeczywisty ekspres do kawy będzie dostępny jako produkt. Po zakończeniu połączymy zestaw testowy TCCN3 z urządzeniem zewnętrznym.

TTCN

System testowy emituje bodźce (dolarówka) i odbiera odpowiedzi (kawa). Adapter bodźców pobiera bodźce z systemu testowego i przekazuje je do testowanego systemu. Adapter odpowiedzi czeka na odpowiedzi testowanego systemu i przekazuje je do systemu testowego.

TCCN3 może być stosowany w różnych dziedzinach, takich jak

  • Komunikacja mobilna (LTE, WiMAX, 3G itp.)
  • Technologie szerokopasmowe (ATM, DSL)
  • Platformy oprogramowania pośredniego (usługi internetowe, CORBA itp.)
  • Protokół internetowy (SIP, IMS, IPv6)
  • Karty inteligentne
  • Motoryzacja (AutoSAR, MOST, CAN)

W TCCN możemy zdefiniować

  • Zestawy testowe
  • Przypadki testowe
  • Kroki testowe
  • Deklaruj zmienne
  • Deklaruj timery
  • Twórz PDU itp.

TCCN można zintegrować z systemami typu innych języków, takimi jak ASN.1, XML, C/C++. Podstawowy język TCCN3 istnieje w formacie tekstowym, niezależnie od innych formatów, takich jak tabelaryczne, graficzne i prezentacyjne.

Codzienny biuletyn Guru99

Rozpocznij dzień od najnowszych i najważniejszych wiadomości na temat sztucznej inteligencji, dostarczanych już teraz.