TCP-Funktionalität mit OT CLI testen

Quelle auf GitHub ansehen

OpenThread bietet TCP-Befehle zur Verwendung mit einem Thread-Netzwerk, um die Peer-to-Peer-Kommunikation zwischen TCP-Endpunkten zu testen. cli tcp stellt einen beispielhaften TCP-Endpunkt und einen Beispiel-TCP-Listener bereit, mit dem alle tcp-Befehle interagieren.

Die Befehlsübersicht und das folgende Beispiel enthalten Informationen zum Initialisieren des Beispiel-TCP-Endpunkts und TCP-Listeners, zum Herstellen einer Verbindung zu einem Peer-TCP-Endpunkt und zum Senden einer Nachricht an den Peer.

TCP-Befehle

Eine Liste der tcp-Befehle erhalten Sie, wenn Sie help eingeben:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Eine Beschreibung und Syntax aller Befehle finden Sie in der Kommandoreferenz für die Befehlszeile. Die TCP-Befehle beginnen alphabetisch mit tcp cancel.

Befehl init

Verwenden Sie den Befehl tcp init, um das TCP-Modul zu initialisieren und die TCP-Kommunikation zu starten. Das TCP-Modul kann dann viele Funktionen ausführen, z. B. das Überwachen eingehender Verbindungen mithilfe des TCP-Beispiel-Listeners, der von der tcp-Befehlszeile bereitgestellt wird. Führen Sie den Befehl tcp deinit aus, um den TCP-Beispiel-Listener und den TCP-Beispielendpunkt zu deinitialisieren.

Befehl bind

Wenn Sie den TCP-Beispielendpunkt binden möchten, nachdem Sie das TCP-Modul initialisiert haben, führen Sie den Befehl tcp bind aus, um dem TCP-Endpunkt eine IPv6-Adresse und einen Port zuzuweisen. Dadurch wird der Endpunkt für die Kommunikation gebunden. Das Zuweisen der IPv6-Adresse und des IPv6-Ports wird auch als „Endpunkt benennen“ bezeichnet.

Befehl listen

Wenn Sie den TCP-Beispiel-Listener nach der Initialisierung des TCP-Moduls verwenden möchten, führen Sie den Befehl tcp listen aus und geben Sie die IPv6-Adresse und den Überwachungsport an.

Wenn der Beispiel-TCP-Listener nicht mehr auf eingehende TCP-Verbindungen wartet, führen Sie den Befehl tcp stoplistening aus.

Befehl connect

Der Befehl tcp connect verbindet den Beispiel-TCP-Endpunkt mit einer Peer-TCP-Endpunktadresse.

Befehl send

Sobald eine Verbindung zwischen zwei Knoten hergestellt wurde, senden Sie mit dem Befehl tcp send eine Nachricht an den Peer.

benchmark-Befehle

Sobald eine TCP-Verbindung zwischen zwei Knoten hergestellt wurde, können Sie optional die benchmark-Befehle verwenden, um große Datenmengen zwischen den Knoten zu senden und so die Netzwerkbandbreite und -leistung zu testen. Die Anzahl der übertragenen Byte in Millisekunden und der TCP-Datendurchsatz werden in den benchmark-Ergebnissen angezeigt.

Befehl abort

Wenn Sie eine TCP-Verbindung sofort und unverzüglich beenden möchten, führen Sie auf einem der Knoten den Befehl tcp abort aus, um den TCP-Endpunkt in einen geschlossenen Zustand zu versetzen.

Befehl sendend

Wenn ein Knoten keine Daten mehr an den anderen Knoten gesendet hat, kann der erste Knoten den Befehl tcp sendend ausgeben, um den zweiten Knoten darauf hinzuweisen, dass keine Daten mehr erwartet werden. Der zweite Knoten kann auch eine tcp sendend an den ersten Knoten senden. Sobald jeder Knoten eine TCP: Disconnected-Nachricht erhält, wird die TCP-Verbindung zwischen den beiden Knoten beendet. Es wird empfohlen, diesen Befehl jedoch nicht auszuführen, wenn die Datenübertragung abgeschlossen ist.

Eine Nachricht zwischen zwei Knoten senden

  1. Initialisieren Sie auf Knoten 1 das TCP-CLI-Modul und warten Sie dann mit dem TCP-Beispiel-Listener auf eingehende Verbindungen.

    tcp init
    tcp listen :: 30000
    

    Die Verwendung von :: gibt an, dass listen die nicht angegebene IPv6-Adresse verwenden soll, sodass der TCP/IPv6-Stack die IPv6-Adresse zuweist. Der Port lautet 30000.

  2. Initialisieren Sie auf Knoten 2 das TCP-CLI-Modul, stellen Sie eine Verbindung zu Knoten 1 her und senden Sie dann eine einfache Nachricht.

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

Überprüfung

Basierend auf den oben gezeigten Beispielschritten würde die folgende Ausgabe erwartet:

  • Nachdem Knoten 2 den Befehl tcp connect ausgeführt hat, sollte Knoten 2 die Nachricht TCP: Connection established empfangen.
  • Knoten 1 sollte dann die Nachrichten empfangen (Beispiel-IPv6-Adresse und -Port):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Nachdem Knoten 2 den Befehl tcp send ausgeführt hat, sollte Knoten 1 die Nachricht TCP: Received 5 bytes: hello erhalten