Testowanie funkcji TCP za pomocą interfejsu OT CLI

Wyświetl źródło na GitHubie

OpenThread udostępnia polecenia TCP do użycia w sieci Thread do testowania komunikacji peer-to-peer między punktami końcowymi TCP. cli tcp udostępnia 1 przykładowy punkt końcowy TCP i 1 przykładowy detektor TCP, z którymi komunikują się wszystkie polecenia tcp.

Omówienie poleceń i poniższy przykład zawierają informacje na temat inicjowania przykładowego punktu końcowego TCP i detektora TCP, nawiązywania połączenia z równorzędnym punktem końcowym TCP oraz wysyłania wiadomości do tego połączenia.

Polecenia TCP

Aby wyświetlić 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 tekstu tcp abort.

Polecenie init

Zainicjuj moduł TCP za pomocą polecenia tcp init i rozpocznij komunikację TCP. Moduł TCP może wtedy wykonywać wiele funkcji, takich jak nasłuchiwanie połączeń przychodzących za pomocą przykładowego detektora TCP z interfejsu wiersza poleceń tcp. Aby zdeinicjować 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. Przypisanie adresu i portu IPv6 jest też nazywane „nadawaniem nazwy 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łuchujący.

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

Polecenie connect

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

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ć poleceń benchmark do wysyłania dużych ilości danych między węzłami w celu przetestowania przepustowości sieci i wydajności. Liczba przesłanych bajtów w milisekundach oraz moduł TCP Goodput zostanie podany w wynikach benchmark.

Polecenie abort

Aby natychmiast i bezceremonialnie zakończyć połączenie TCP, uruchom polecenie tcp abort w dowolnym węźle w celu przeniesienia punktu końcowego TCP w stan zamknięty.

Polecenie sendend

Gdy jeden węzeł wysyła dane do innego, pierwszy węzeł może wysłać polecenie tcp sendend, aby poinformować drugi węzeł, że nie oczekuje już danych. Drugi węzeł też może wysłać żądanie tcp sendend do pierwszego węzła. Gdy każdy węzeł otrzyma komunikat TCP: Disconnected, połączenie TCP między 2 węzłami zostanie zerwane. Jest to zalecane, ale nie jest wymagane, aby wykonać to polecenie po zakończeniu transferu danych.

Wyślij wiadomość między 2 węzłami

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

    tcp init
    tcp listen :: 30000
    

    Zastosowanie :: oznacza, że listen powinien używać nieokreślonego adresu IPv6, ponieważ to właśnie na stosie TCP/IPv6 przypisany jest adres IPv6. numer portu to 30 000.

  2. W węźle 2 zainicjuj moduł 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 uwzględnieniu podanych wyżej przykładowych kroków powinny pojawić się następujące wyniki:

  • Po uruchomieniu polecenia tcp connect węzeł 2 powinien otrzymać komunikat TCP: Connection established.
  • Węzeł 1 powinien wtedy odbierać komunikaty (z przykładowym adresem IPv6 i portem):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Po uruchomieniu polecenia tcp send węzeł 1 powinien otrzymać komunikat TCP: Received 5 bytes: hello