Посмотреть исходный код на GitHub
OpenThread предлагает команды TCP для использования в сети потоков для проверки одноранговой связи между конечными точками TCP. cli tcp
предоставляет один пример конечной точки TCP и один образец прослушивателя TCP, с которым взаимодействуют все команды tcp
.
Обзоры команд и следующий пример предоставляют информацию об инициализации примера конечной точки TCP и прослушивателя TCP, о том, как подключиться к конечной точке TCP однорангового узла и как отправить сообщение одноранговому узлу.
TCP-команды
Чтобы получить список команд tcp
, введите help
:
tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
команда init
Используйте команду tcp init
, чтобы инициализировать модуль TCP и начать TCP-связь. Затем модуль TCP может выполнять множество функций, например прослушивать входящие соединения с помощью примера прослушивателя TCP, предоставляемого tcp
CLI. Чтобы деинициализировать пример прослушивателя TCP и пример конечной точки TCP, введите команду tcp deinit
.
команда bind
Чтобы привязать пример конечной точки TCP после инициализации модуля TCP, запустите команду tcp bind
, чтобы назначить адрес IPv6 и порт конечной точке TCP. Это связывает конечную точку для связи. Назначение адреса и порта IPv6 также называется «присвоением имени конечной точке».
команда listen
Чтобы использовать пример прослушивателя TCP после инициализации модуля TCP, запустите команду tcp listen
и укажите адрес IPv6 и порт прослушивания.
Чтобы остановить прослушивание входящих TCP-соединений примером прослушивателя TCP, введите команду tcp stoplistening
.
команда connect
Команда tcp connect
подключает пример конечной точки TCP к адресу конечной точки TCP однорангового узла.
send
команду
Как только соединение между двумя узлами будет установлено, введите команду tcp send
, чтобы отправить сообщение одноранговому узлу.
команды benchmark
После установки TCP-соединения между двумя узлами можно дополнительно использовать команды benchmark
для отправки больших объемов данных между узлами для проверки пропускной способности и производительности сети. Количество переданных байтов в миллисекундах, а также TCP Goodput будут указаны в результатах benchmark
.
команда abort
Чтобы немедленно и бесцеремонно завершить TCP-соединение, запустите команду tcp abort
на любом узле, чтобы перевести конечную точку TCP в закрытое состояние.
команда sendend
Когда один узел завершает отправку данных на другой узел, первый узел может выдать команду tcp sendend
, чтобы предупредить второй узел о том, что он больше не ожидает данных. Второй узел также может отправить tcp sendend
первому узлу. Как только каждый узел получает сообщение TCP: Disconnected
, TCP-соединение между двумя узлами разрывается. Рекомендуется, но не обязательно, подавать эту команду после завершения передачи данных.
Отправить сообщение между двумя узлами
На узле 1 инициализируйте модуль TCP CLI, затем прослушивайте входящие соединения, используя пример прослушивателя TCP.
tcp init
tcp listen :: 30000
Использование
::
означает, чтоlisten
должно использовать неуказанный адрес IPv6, тем самым заставляя стек TCP/IPv6 назначить адрес IPv6. Порт 30000.На узле 2 инициализируйте модуль TCP CLI, подключитесь к узлу 1, а затем отправьте простое сообщение.
tcp init
tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
tcp send hello
Проверка
На основе примеров шагов, показанных выше, можно ожидать следующий результат:
- После того, как узел 2 выполнит команду
tcp connect
, узел 2 должен получить сообщениеTCP: Connection established
. - Затем узел 1 должен получить сообщения (с примером IPv6-адреса и порта):
-
Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
-
TCP: Connection established
-
- После того, как узел 2 выполнит команду
tcp send
, узел 1 должен получить сообщениеTCP: Received 5 bytes: hello