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
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, dasslisten
die nicht angegebene IPv6-Adresse verwenden soll, sodass der TCP/IPv6-Stack die IPv6-Adresse zuweist. Der Port lautet 30000.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 NachrichtTCP: 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 NachrichtTCP: Received 5 bytes: hello
erhalten