Kiểm tra chức năng TCP bằng CLI OT

Xem nguồn trên GitHub

OpenThread cung cấp các lệnh TCP để sử dụng với mạng Thread nhằm kiểm thử hoạt động giao tiếp ngang hàng giữa các điểm cuối TCP. cli tcp cung cấp một điểm cuối TCP mẫu và một trình nghe TCP mẫu mà tất cả các lệnh tcp đều tương tác.

Tổng quan về lệnh và ví dụ tiếp theo cung cấp thông tin về cách khởi chạy điểm cuối TCP và trình nghe TCP mẫu, cách kết nối với điểm cuối TCP ngang hàng và cách gửi thông báo cho ứng dụng ngang hàng.

Lệnh TCP

Để xem danh sách các lệnh tcp, hãy nhập help:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Để biết nội dung mô tả và cú pháp của tất cả các lệnh, hãy tham khảo Tham chiếu lệnh CLI. Các lệnh TCP bắt đầu theo thứ tự bảng chữ cái với huỷ tcp.

Lệnh init

Dùng lệnh tcp init để khởi chạy mô-đun TCP nhằm bắt đầu giao tiếp TCP. Sau đó, mô-đun TCP có thể thực hiện nhiều chức năng, chẳng hạn như theo dõi các kết nối đến bằng trình nghe TCP mẫu do CLI tcp cung cấp. Để huỷ khởi động trình nghe TCP mẫu và điểm cuối TCP mẫu, hãy phát lệnh tcp deinit.

Lệnh bind

Để liên kết điểm cuối TCP mẫu sau khi bạn khởi chạy mô-đun TCP, hãy chạy lệnh tcp bind để chỉ định địa chỉ IPv6 và một cổng cho điểm cuối TCP. Phương thức này sẽ liên kết với điểm cuối để giao tiếp. Việc chỉ định địa chỉ và cổng IPv6 cũng được gọi là "đặt tên cho điểm cuối".

Lệnh listen

Để sử dụng trình nghe TCP mẫu sau khi bạn khởi chạy mô-đun TCP, hãy chạy lệnh tcp listen, đồng thời chỉ định địa chỉ IPv6 và cổng nghe.

Để ngăn trình nghe TCP mẫu theo dõi các kết nối TCP đến, hãy phát lệnh tcp stoplistening.

Lệnh connect

Lệnh tcp connect kết nối điểm cuối TCP mẫu với địa chỉ điểm cuối TCP ngang hàng.

Lệnh send

Sau khi thiết lập kết nối giữa hai nút, hãy phát lệnh tcp send để gửi thông báo cho ứng dụng ngang hàng.

Lệnh benchmark

Sau khi thiết lập kết nối TCP giữa hai nút, bạn có thể tuỳ ý sử dụng các lệnh benchmark để gửi một lượng lớn dữ liệu giữa các nút nhằm kiểm tra băng thông và hiệu suất mạng. Số lượng byte được truyền tính bằng mili giây cũng như lưu lượng dữ liệu TCP sẽ được cung cấp trong kết quả benchmark.

Lệnh abort

Để kết thúc kết nối TCP ngay lập tức và không liên quan, hãy chạy lệnh tcp abort trên một trong hai nút để chuyển đổi điểm cuối TCP sang trạng thái đóng.

Lệnh sendend

Khi một nút gửi xong dữ liệu đến nút khác, nút đầu tiên có thể đưa ra lệnh tcp sendend để cảnh báo nút thứ hai không nhận dữ liệu nữa. Nút thứ hai cũng có thể gửi một tcp sendend đến nút đầu tiên. Sau khi mỗi nút nhận được thông báo TCP: Disconnected, kết nối TCP giữa hai nút sẽ bị huỷ bỏ. Bạn nên nhưng không bắt buộc phải phát lệnh này khi quá trình chuyển dữ liệu hoàn tất.

Gửi tin nhắn giữa hai nút

  1. Trên nút 1, hãy khởi chạy mô-đun CLI TCP, sau đó theo dõi các kết nối đến bằng trình nghe TCP mẫu.

    tcp init
    tcp listen :: 30000
    

    Việc sử dụng :: biểu thị rằng listen nên sử dụng địa chỉ IPv6 chưa chỉ định, do đó, ngăn xếp TCP/IPv6 chỉ định địa chỉ IPv6. Cổng là 30000.

  2. Trên Nút 2, hãy khởi chạy mô-đun CLI TCP, kết nối với nút 1, sau đó gửi một thông báo đơn giản.

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

Xác minh

Dựa vào các bước ví dụ nêu trên, kết quả như sau dự kiến:

  • Sau khi Nút 2 chạy lệnh tcp connect, Nút 2 sẽ nhận được thông báo TCP: Connection established.
  • Sau đó, nút 1 sẽ nhận được thông báo (ví dụ: địa chỉ và cổng IPv6):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • Sau khi Nút 2 chạy lệnh tcp send, Nút 1 sẽ nhận được thông báo TCP: Received 5 bytes: hello