Testowanie funkcji TCP za pomocą interfejsu OT CLI

Wyświetl źródło na GitHubie

OpenThread udostępnia polecenia TCP do testowania połączeń peer-to-peer w sieci Thread komunikacji między punktami końcowymi TCP. cli tcp udostępnia 1 przykładowy port TCP i 1 przykładowy detektor TCP, z którym współdziałają wszystkie polecenia tcp.

Opisy poleceń i przykład poniżej zawierają informacje na temat inicjowania przykładowy punkt końcowy TCP i detektor TCP, jak nawiązać połączenie z punktem końcowym TCP peera, i jak wysłać wiadomość do peera.

Polecenia TCP

Aby zobaczyć listę poleceń tcp, wpisz help:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Opisy i składnię wszystkich poleceń znajdziesz w dokumentacji poleceń interfejsu wiersza poleceń. Polecenia TCP zaczynają się alfabetycznie od przerwanie tcp.

Polecenie init

Użyj polecenia tcp init, aby zainicjować moduł TCP i rozpocząć komunikację TCP. Moduł TCP może następnie wykonywać wiele funkcji, takich jak nasłuchiwanie przychodzących połączeń za pomocą przykładowego detektora TCP dostarczonego w interfejsie wiersza poleceń tcp. Aby deinicjować przykładowy detektor TCP i przykładowy punkt końcowy TCP: uruchom polecenie tcp deinit.

Polecenie bind

Aby powiązać przykładowy punkt końcowy TCP po zainicjowaniu modułu TCP, Uruchom polecenie tcp bind, aby przypisać adres IPv6 i port do punktu końcowego TCP. Łączy to punkt końcowy na potrzeby komunikacji. Przypisuję adres IPv6 i port jest też nazywane „nazwą punktu końcowego”.

Polecenie listen

Aby użyć przykładowego detektora TCP po zainicjowaniu modułu TCP, uruchom polecenie tcp listen i podaj adres IPv6 oraz port nasłuchiwania.

Aby zatrzymać przykładowy detektor TCP nasłuchiwania przychodzących połączeń TCP: uruchom polecenie tcp stoplistening.

Polecenie connect

Polecenie tcp connect łączy przykładowy punkt końcowy TCP z adresem punktu końcowego TCP połączenia równorzędnego.

Polecenie send

Po nawiązaniu połączenia między 2 węzłami uruchom polecenie tcp send aby wysłać wiadomość do peera.

Polecenia benchmark

Po nawiązaniu połączenia TCP między 2 węzłami możesz opcjonalnie użyć Polecenia benchmark do wysyłania dużych ilości danych między węzłami w celu przetestowania przepustowości i wydajności sieci. Liczba przesłanych bajtów w milisekundach oraz protokół TCP Goodput będą widoczne w wynikach benchmark.

Polecenie abort

Aby natychmiast i nieoczekiwanie zakończyć połączenie TCP, uruchom tcp abort w dowolnym węźle, aby przełączyć punkt końcowy TCP w stan zamknięty.

Polecenie sendend

Gdy jeden węzeł zakończy wysyłanie danych do drugiego, pierwszy węzeł może uruchom polecenie tcp sendend, aby zaalarmować drugi węzeł, aby przestał się spodziewać i skalowalnych danych. Drugi węzeł może też wysłać tcp sendend do pierwszego. Gdy każdy węzeł otrzyma komunikat TCP: Disconnected, połączenie TCP między dwoma węzłami zostanie zdejmowana. Jest to zalecane, ale nie wymagane. wykonaj to polecenie po zakończeniu przesyłania danych.

Wysyłaj komunikat między 2 węzłami

  1. W węźle 1 zainicjuj moduł interfejsu wiersza poleceń TCP, a następnie nasłuchuj połączeń przychodzących za pomocą przykładowego detektora TCP.

    tcp init
    tcp listen :: 30000
    

    :: oznacza, że interfejs listen powinien używać nieokreślonego adresu IPv6, dzięki czemu stos TCP/IPv6 przypisze adres IPv6. Numer portu to 30 000.

  2. W węźle 2 zainicjuj moduł interfejsu wiersza poleceń TCP, połącz się z węzłem 1, a następnie wyślij prosty komunikat.

    tcp init
    tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
    tcp send hello
    

Weryfikacja

Po przeanalizowaniu powyższych przykładowych kroków powinny pojawić się takie wyniki:

  • Gdy Node 2 uruchomi polecenie tcp connect, węzeł 2 powinien otrzymać wiadomość TCP: Connection established.
  • Węzeł 1 powinien następnie otrzymywać komunikaty (z przykładowym adresem IPv6 i portem):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Gdy Node 2 uruchomi polecenie tcp send, węzeł 1 powinien otrzymać wiadomość: TCP: Received 5 bytes: hello