OpenThread cung cấp các lệnh UDP để dùng với mạng Thread nhằm kiểm thử kết nối ngang hàng
giao tiếp giữa các cổng UDP. cli udp cung cấp một ổ cắm mẫu với
mà tất cả lệnh udp đều tương tác.
Các ví dụ sau đây minh hoạ cách mở và liên kết ổ cắm, cách kết nối ổ cắm và 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 nhằm bắt đầu giao tiếp UDP.
Sau đó, bạn có tuỳ chọn để 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 một địa chỉ IPv6
và một cổng đến ổ cắm đang mở. Thao tác này sẽ liên kết với ổ cắm để giao tiếp. Chỉ định
Cổng và địa chỉ IPv6 cũng được gọi là đặt tên cho ổ cắm. Nếu bạn không trực tiếp
bind ổ cắm, kết nối với ổ cắm (udp connect) hoặc dùng ổ cắm trong
lệnh udp send 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 một địa chỉ ổ cắm ngang hàng.
Sau đó, bạn có thể phát lệnh udp send để gửi tin nhắn cho ứng dụng ngang hàng. Nếu ổ cắm
chưa bị ràng buộc, việc tạo lệnh udp connect cũng sẽ liên kết với socket.
Lệnh send
Lệnh udp send gửi một thông báo bằng ổ cắm mẫu đến một đích đến
có địa chỉ IP và cổng UDP có thể được chỉ định 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, tin nhắn sẽ được gửi bằng ổ cắm mẫu
vào đích đến được chỉ định trong lệnh udp connect.
Việc phát lệnh udp send sẽ liên kết ổ cắm với một cổng tạm thời
nếu ổ cắm chưa được ràng buộc.
Lệnh close
Bạn nên dùng lệnh udp close để đóng ổ cắm khi
ổ cắm không còn cần thiết 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 thông báo giữa hai nút
Trên Nút 1, hãy mở cổng UDP.
udp openDoneTrên Nút 1, hãy liên kết ổ cắm.
udp bind :: 1234DoneViệc sử dụng
::cho biếtbindnên dùng địa chỉ IPv6 không xác định, do đó, ngăn xếp UDP/IPv6 chỉ định địa chỉ IPv6 liên kết. Để hoàn tất các tuỳ chọn cóudp bind, chẳng hạn như liên kết với một giao diện mạng, tham chiếu đến liên kết udp.
1 Trên Nút 2, mở cổng UDP.
udp open
Done
Trên Nút 2, hãy 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 helloDoneLệnh này giả định rằng Nút 2 đã khám phá 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 ràng buộc ổ cắm. Điều này là do quản trị viên Nút 2 muốn gửi một thông báo đến Nút 1 mà không quan tâm đến địa chỉ IP và cổng nào của nút đó đang được sử dụng làm nguồn Nút 2. Ổ cắm sẽ chọn ngẫu nhiên một địa chỉ IP và cổng trong trường hợp này.
Để xem các lựa chọn đầy đủ với
udp send, hãy tham khảo gửi udp.Nút 1 xác nhận việc 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ắm ngang hàng, rồi gửi một thông báo giữa 2 nút
Ví dụ này tương tự như ví dụ trước, nhưng thể hiện được một số tính linh hoạt
mà bạn có khi sử dụng cổng UDP. Với phương pháp này, trước tiên bạn kết nối ổ cắm với
địa chỉ cổng ngang hàng, thì bạn không cần chỉ định địa chỉ IP và cổng ngang hàng
mỗi khi bạn thực hiện udp send.
Trên Nút 1, hãy mở cổng UDP.
udp openDoneTrên Nút 1, hãy liên kết ổ cắm.
udp bind :: 1234DoneTrên Nút 2, hãy mở cổng UDP.
udp openDoneTrên Nút 2, hãy sử dụng lệnh
udp connectđể mở giao tiếp với Nút 1.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234DoneĐể xem các lựa chọn đầy đủ với
udp connect, hãy tham khảo kết nối udpTrê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ỉ địnhipvàporttrong cú pháp lệnhudp send.udp send helloDoneKhi không chỉ định
ipvàport, lệnhudp sendsẽ sử dụngipvàportđã được chỉ định trong lệnhudp connect.