OT CLI を使用して TCP 機能をテストする

<ph type="x-smartling-placeholder"></ph> GitHub のソースを表示

OpenThread は、Thread ネットワークでピアツーピアをテストするための TCP コマンドを提供する TCP エンドポイント間の通信を可能にします。cli tcp は、1 つのサンプル TCP すべての tcp コマンドがやり取りする 1 つのサンプル TCP リスナー。

コマンドの概要と次の例では、コマンドの初期化について説明します。 TCP エンドポイントと TCP リスナーの例、ピア TCP エンドポイントへの接続方法 メッセージの送信方法を説明します。

TCP コマンド

tcp コマンドのリストを表示するには、「help」と入力します。

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
すべてのコマンドの説明と構文については、CLI コマンド リファレンスをご覧ください。 TCP コマンドは、 tcp abort

init コマンド

tcp init コマンドを使用して TCP モジュールを初期化し、TCP 通信を開始します。 TCP モジュールは、受信接続のリッスンなど、 tcp CLI で提供されているサンプル TCP リスナーを使用して接続します。 サンプルの TCP リスナーとサンプルの TCP エンドポイントの初期化を解除するには、 tcp deinit コマンドを実行します。

bind コマンド

TCP モジュールを初期化した後、サンプルの TCP エンドポイントをバインドするには、 tcp bind コマンドを実行して、TCP エンドポイントに IPv6 アドレスとポートを割り当てます。 これにより、通信のためにエンドポイントがバインドされます。IPv6 アドレスとポートの割り当て 「エンドポイントに名前を付ける」とも呼ばれます。

listen コマンド

TCP モジュールを初期化した後でサンプル TCP リスナーを使用するには、 tcp listen コマンドを実行して、IPv6 アドレスとリスニング ポートを指定します。

サンプルの TCP リスナーが受信 TCP 接続をリッスンしないようにするには、 tcp stoplistening コマンドを実行します。

connect コマンド

tcp connect コマンドは、サンプルの TCP エンドポイントをピア TCP エンドポイント アドレスに接続します。

send コマンド

2 つのノード間の接続が確立されたら、tcp send コマンドを発行します。 ピアにメッセージを送信できます

benchmark コマンド

2 つのノード間で TCP 接続が確立されたら、必要に応じて テストするノード間で大量のデータを送信する benchmark コマンド パフォーマンスが向上します。送信されたバイト数(ミリ秒) benchmark の結果で TCP グッドプットが示されます。

abort コマンド

TCP 接続を即時かつ予期せず終了するには、tcp abort を実行します。 コマンドを実行して TCP エンドポイントを閉じた状態に移行します。

sendend コマンド

一方のノードから他方のノードへのデータ送信が完了すると、最初のノードは tcp sendend コマンドを発行して、2 番目のノードに予期しなくなったことを警告します。 分析できます2 番目のノードは、最初のノードに tcp sendend を送信することもできます。 各ノードが TCP: Disconnected メッセージを受信すると、TCP 接続は 破棄されます。推奨されますが必須ではありません。 このコマンドを発行する必要があります。

2 つのノード間でメッセージを送信する

  1. ノード 1 で TCP CLI モジュールを初期化してから、受信接続をリッスンする 使用します。

    tcp init
    tcp listen :: 30000
    

    :: の使用は、listen が未指定の IPv6 アドレスを使用する必要があることを示しています。 これにより、TCP/IPv6 スタックに IPv6 アドレスが割り当てられます。ポートは 30000 です。

  2. ノード 2 で TCP CLI モジュールを初期化し、ノード 1 に接続してから、 説明します。

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

確認

上記の例の手順に基づくと、次の出力が予想されます。

  • Node 2 が tcp connect コマンドを実行すると、Node 2 は以下を受信します。 メッセージ TCP: Connection established
  • 次に、ノード 1 が次のメッセージ(IPv6 アドレスとポートの例を含む)を受信します。 <ph type="x-smartling-placeholder">
      </ph>
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Node 2 が tcp send コマンドを実行すると、Node 1 は以下を受信します。 メッセージ「TCP: Received 5 bytes: hello