Menguji Fungsi UDP dengan OT CLI

Lihat sumber di GitHub

OpenThread menawarkan perintah UDP untuk digunakan dengan jaringan Thread guna menguji komunikasi peer-to-peer antara soket UDP. cli udp menyediakan satu soket contoh yang digunakan untuk semua perintah udp berinteraksi.

Contoh berikut menunjukkan bagaimana Anda dapat membuka dan mengikat soket, cara menghubungkan soket, dan cara mengirim pesan menggunakan soket UDP.

Perintah UDP

Untuk daftar perintah udp, ketik help:

udp help
bind
close
connect
linksecurity
open
send
Done

Perintah open

Gunakan perintah udp open untuk membuka soket guna memulai komunikasi UDP. Anda kemudian memiliki opsi untuk mengikat soket ke alamat IP dan porta tertentu.

Perintah bind

Setelah melakukan open soket, Anda dapat menjalankan perintah udp bind untuk menetapkan alamat IPv6 dan port ke soket yang terbuka. Hal ini mengikat soket untuk komunikasi. Menetapkan port dan alamat IPv6 juga disebut sebagai penamaan soket. Jika Anda tidak secara langsung bind menghubungkan soket (udp connect) atau menggunakannya dalam perintah udp send, soket akan diikat ke port sementara.

Perintah connect

Perintah udp connect dapat digunakan untuk menghubungkan soket contoh ke alamat soket peer. Kemudian, Anda dapat memberikan perintah udp send untuk mengirim pesan ke peer. Jika soket belum terikat, mengeluarkan perintah udp connect juga akan mengikat soket tersebut.

Perintah send

Perintah udp send mengirim pesan menggunakan soket contoh ke tujuan yang alamat IP dan port UDP-nya dapat ditentukan dengan variabel perintah. Jika port dan alamat IP tidak ditentukan dalam perintah udp send, pesan akan dikirim menggunakan soket contoh ke tujuan yang ditentukan dalam perintah udp connect. Memberikan perintah udp send akan mengikat soket ke port sementara jika soket belum diikat.

Perintah close

Sebaiknya gunakan perintah udp close untuk menutup soket saat soket tidak diperlukan lagi.

Perintah linksecurity

Perintah udp linksecurity dapat digunakan untuk mengaktifkan atau menonaktifkan keamanan lapisan link data untuk pesan.

Mengirim pesan antara dua node

  1. Di Node 1, buka soket UDP.

    udp open
    Done
    
  2. Di Node 1, ikat soket.

    udp bind :: 1234
    Done
    

    Penggunaan :: menunjukkan bahwa bind harus menggunakan alamat IPv6 yang tidak ditentukan, sehingga stack UDP/IPv6 menetapkan alamat IPv6 binding. Untuk opsi lengkap dengan udp bind, seperti melakukan binding ke antarmuka jaringan, lihat udp bind.

1 Di Node 2, buka soket UDP.

udp open
   Done
   

  1. Di Node 2, kirim pesan sederhana ke Node 1.

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

    Perintah ini mengasumsikan bahwa Node 2 sudah menemukan alamat Node 1. Selain itu, dalam contoh ini, administrator Node 2 telah memilih untuk tidak mengikat soket. Ini karena administrator Node 2 ingin mengirim pesan ke Node 1 tanpa peduli dengan alamat IP dan port mana yang digunakan sebagai sumber Node 2. Dalam skenario ini, soket memilih alamat IP dan porta secara acak.

    Untuk mengetahui opsi selengkapnya dengan udp send, lihat udp send.

  2. Node 1 mengonfirmasi penerimaan pesan dari Node 2:

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

Menghubungkan soket ke alamat soket peer, lalu mengirim pesan antara dua node

Contoh ini mirip dengan contoh sebelumnya, tetapi menunjukkan beberapa fleksibilitas yang Anda miliki dalam menggunakan soket UDP. Dengan metode ini, pertama-tama Anda menghubungkan soket ke alamat soket peer. Dengan metode ini, Anda tidak perlu menentukan port dan alamat IP peer setiap kali Anda melakukan udp send.

  1. Di Node 1, buka soket UDP.

    udp open
    Done
    
  2. Di Node 1, ikat soket.

    udp bind :: 1234
    Done
    
  3. Di Node 2, buka soket UDP.

    udp open
    Done
    
  4. Di Node 2, gunakan perintah udp connect untuk membuka komunikasi ke Node 1.

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

    Untuk mengetahui opsi selengkapnya dengan udp connect, lihat udp connect

  5. Di Node 2, gunakan perintah udp send untuk mengirim pesan ke Node 1, tetapi jangan tentukan ip dan port dalam sintaksis perintah udp send.

    udp send hello
    Done
    

    Dengan tidak menentukan ip dan port, perintah udp send akan menggunakan ip dan port yang ditentukan dalam perintah udp connect.