Thử nghiệm chức năng UDP bằng CLI OT

Xem nguồn trên GitHub

OpenThread cung cấp các lệnh UDP để sử dụng với mạng Thread nhằm kiểm thử giao tiếp ngang hàng giữa các cổng UDP. cli udp cung cấp một ổ cắm mẫu mà tất cả các lệnh udp đều tương tác.

Các ví dụ sau minh hoạ cách bạn có thể mở và liên kết ổ cắm, cách kết nối ổ cắm cũng như cách gửi thông báo bằng cổng UDP.

Lệnh UDP

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

udp help
bind
close
connect
linksecurity
open
send
Done

Lệnh open

Dùng lệnh udp open để mở ổ cắm để bắt đầu giao tiếp UDP. Sau đó, bạn có thể liên kết ổ cắm với một địa chỉ IP và cổng cụ thể.

Lệnh bind

Sau khi open ổ cắm, bạn có thể chạy lệnh udp bind để chỉ định địa chỉ IPv6 và một cổng cho ổ cắm đang mở. Thao tác này sẽ liên kết ổ cắm để giao tiếp. Việc chỉ định địa chỉ và cổng IPv6 cũng được gọi là việc đặt tên cho ổ cắm. Nếu bạn không bind trực tiếp ổ cắm, hãy kết nối ổ cắm (udp connect) hoặc sử dụng ổ cắm trong lệnh udp send sẽ liên kết ổ cắm với một cổng tạm thời.

Lệnh connect

Bạn có thể dùng lệnh udp connect để kết nối ổ cắm mẫu với địa chỉ ổ cắm ngang hàng. Sau đó, bạn có thể ra lệnh udp send để gửi tin nhắn cho ứng dụng ngang hàng. Nếu ổ cắm chưa được liên kết, việc tạo lệnh udp connect cũng sẽ liên kết với ổ cắm đó.

Lệnh send

Lệnh udp send gửi thông báo bằng ổ cắm mẫu đến một đích đến có thể chỉ định địa chỉ IP và cổng UDP bằng các biến lệnh. Nếu địa chỉ IP và cổng không được chỉ định trong lệnh udp send, thông báo sẽ được gửi bằng ổ cắm mẫu đến đích đã chỉ định trong lệnh udp connect. Việc tạo lệnh udp send sẽ liên kết ổ cắm với một cổng tạm thời nếu chưa liên kết ổ cắm đó.

Lệnh close

Bạn nên dùng lệnh udp close để đóng ổ cắm khi không còn cần đến ổ cắm này nữa.

Lệnh linksecurity

Bạn có thể dùng lệnh udp linksecurity để bật hoặc tắt tính năng bảo mật lớp đường liên kết dữ liệu cho thư.

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

  1. Trên Nút 1, hãy mở cổng UDP.

    udp open
    Done
    
  2. Trên Nút 1, hãy liên kết ổ cắm.

    udp bind :: 1234
    Done
    

    Việc sử dụng :: biểu thị rằng bind nên sử dụng địa chỉ IPv6 chưa chỉ định, do đó, ngăn xếp UDP/IPv6 chỉ định địa chỉ IPv6 liên kết. Để biết các tuỳ chọn đầy đủ với udp bind, chẳng hạn như liên kết với giao diện mạng, hãy tham khảo liên kết udp.

1 Trên Nút 2, mở ổ cắm UDP.

udp open
   Done
   

  1. Trên Nút 2, gửi một thông báo đơn giản đến Nút 1.

    udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
    Done
    

    Lệnh này giả định rằng Nút 2 đã phát hiện ra địa chỉ của Nút 1. Ngoài ra, trong ví dụ này, quản trị viên của Nút 2 đã chọn không liên kết ổ cắm. Điều này là do quản trị viên của Nút 2 muốn gửi thông báo đến Nút 1 mà không cần quan tâm đến địa chỉ IP và cổng nào của Nút 2 được dùng làm nguồn của Nút 2. ổ cắm sẽ chọn một địa chỉ IP và chuyển ngẫu nhiên trong trường hợp này.

    Để biết các tuỳ chọn đầy đủ với udp send, hãy tham khảo udp gửi.

  2. Nút 1 xác nhận đã nhận được thông báo từ Nút 2:

    5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
    

Kết nối ổ cắm với địa chỉ cổng ngang hàng, sau đó gửi thông báo giữa hai nút

Ví dụ này tương tự như ví dụ trước, nhưng minh hoạ một số tính linh hoạt khi sử dụng cổng UDP. Với phương thức này, trước tiên bạn kết nối ổ cắm với địa chỉ ổ cắm ngang hàng, sau đó bạn không cần chỉ định địa chỉ IP ngang hàng và cổng mỗi lần thực hiện udp send.

  1. Trên Nút 1, hãy mở cổng UDP.

    udp open
    Done
    
  2. Trên Nút 1, hãy liên kết ổ cắm.

    udp bind :: 1234
    Done
    
  3. Trên Nút 2, hãy mở cổng UDP.

    udp open
    Done
    
  4. Trên Nút 2, sử dụng lệnh udp connect để mở giao tiếp đến Nút 1.

    udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
    Done
    

    Để biết các tuỳ chọn đầy đủ với udp connect, hãy tham khảo bài viết udp connect

  5. Trên Nút 2, hãy sử dụng lệnh udp send để gửi thông báo đến Nút 1, nhưng không chỉ định ipport trong cú pháp lệnh udp send.

    udp send hello
    Done
    

    Khi không chỉ định ipport, lệnh udp send sẽ sử dụng ipport đã được chỉ định trong lệnh udp connect.