Menguji Fungsi UDP dengan OT CLI

Lihat sumber di GitHub

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

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

Perintah UDP

Untuk mengetahui daftar perintah udp, ketik help:

udp help
bind
close
connect
linksecurity
open
send
Done

open perintah

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

bind perintah

Setelah open soket, Anda dapat menjalankan perintah udp bind untuk menetapkan alamat IPv6 dan porta ke soket terbuka. Ini mengikat soket untuk komunikasi. Menetapkan Alamat dan port IPv6 juga disebut sebagai penamaan soket. Jika Anda tidak secara langsung bind soket, menghubungkan soket (udp connect) atau menggunakannya di perintah udp send mengikat soket ke port ephemeral.

connect perintah

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

send perintah

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

close perintah

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

linksecurity perintah

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

Mengirim pesan antara dua node

  1. Pada 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 tumpukan UDP/IPv6 menetapkan alamat IPv6 yang mengikat. Untuk penyelesaian opsi dengan udp bind, seperti mengikat ke antarmuka jaringan, lihat pengikatan udp.

1 Pada Node 2, buka soket UDP.

udp open
   Done
   

  1. Pada 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 telah 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 alamat IP dan porta mana yang digunakan sebagai sumber Node 2. Dalam skenario ini, soket memilih alamat IP dan porta secara acak.

    Untuk opsi selengkapnya terkait udp send, lihat kirim udp.

  2. Node 1 mengonfirmasi penerimaan pesan dari Node 2:

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

Hubungkan soket ke alamat soket peer, lalu kirim pesan antara dua node

Contoh ini mirip dengan yang sebelumnya, tetapi menunjukkan beberapa fleksibilitas yang Anda miliki dalam menggunakan soket UDP. Dengan metode ini, Anda terlebih dahulu menghubungkan soket ke alamat soket peer, maka Anda tidak perlu menentukan alamat IP setiap kali Anda melakukan udp send.

  1. Pada Node 1, buka soket UDP.

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

    udp bind :: 1234
    Done
    
  3. Pada 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 opsi selengkapnya terkait udp connect, lihat sambungkan udp

  5. Di Node 2, gunakan perintah udp send untuk mengirim pesan ke Node 1, tetapi jangan tentukan ip dan port di 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.