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 open
DoneTrên Nút 1, hãy liên kết ổ cắm.
udp bind :: 1234
DoneViệc sử dụng
::
cho biếtbind
nê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 hello
DoneLệ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 open
DoneTrên Nút 1, hãy liên kết ổ cắm.
udp bind :: 1234
DoneTrên Nút 2, hãy mở cổng UDP.
udp open
DoneTrê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 1234
DoneĐể 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ỉ địnhip
vàport
trong cú pháp lệnhudp send
.udp send hello
DoneKhi không chỉ định
ip
vàport
, lệnhudp send
sẽ sử dụngip
vàport
đã được chỉ định trong lệnhudp connect
.