1. บทนำ
Thread และ OTNS คืออะไร
Thread เป็นโปรโตคอลเครือข่ายที่ทำงานร่วมกันแบบไร้สายและใช้พลังงานต่ำซึ่งอิงตาม IP ที่ช่วยให้การติดต่อระหว่างอุปกรณ์กับอุปกรณ์และอุปกรณ์กับระบบคลาวด์เป็นไปอย่างปลอดภัย เครือข่ายเทรดสามารถปรับตัวตามการเปลี่ยนแปลงของโทโปโลยีเพื่อหลีกเลี่ยงจุดที่เกิดความผิดพลาดได้
OpenThread ที่ Google เปิดตัวเป็นการใช้งาน Thread แบบโอเพนซอร์ส แม้จะมีขนาดโค้ดและพื้นที่หน่วยความจำเพียงเล็กน้อย แต่ OpenThread รองรับฟีเจอร์ทั้งหมดที่ระบุไว้ในข้อกำหนด Thread
เครื่องจำลองเครือข่าย OpenThread (OTNS) ใช้จำลองเครือข่ายเทรดได้โดยการเรียกใช้โหนด OpenThread ที่จำลองบนแพลตฟอร์ม POSIX OTNS มีอินเทอร์เฟซเว็บ (OTNS-Web) ที่ใช้งานง่ายสำหรับการแสดงภาพและใช้งานเครือข่ายเทรดจำลอง นอกจากนี้ คุณยังใช้การจําลองที่ใช้สคริปต์ (ด้วย Python) ได้ด้วย
สิ่งที่คุณจะได้เรียนรู้
- ติดตั้ง OTNS และทรัพยากร Dependency
- ดูข้อมูลเบื้องต้นเกี่ยวกับ OTNS-CLI
- วิธีเพิ่ม/ย้าย/ลบโหนด OpenThread ใน OTNS-Web
- ใช้ฟีเจอร์อื่นๆ ที่มีประโยชน์ของ OTNS-Web เพื่อควบคุมการจําลองเครือข่าย
- ยืนยันการไม่มีจุดที่ทำให้เกิดข้อผิดพลาดจุดเดียวของ OpenThread
- ดูการรับส่งข้อมูลระหว่างโหนด OpenThread ใน Wireshark
โค้ดแล็บนี้มุ่งเน้นที่ OTNS-CLI และ OTNS-Web สำหรับการใช้งานแบบอินเทอร์แอกทีฟ ฟีเจอร์อื่นๆ ของ OTNS เช่น สคริปต์ Python จะไม่ครอบคลุม
สิ่งที่คุณต้องมี
- แนะนำให้ใช้ Linux x86_64 หรือ Mac OS ที่มี Homebrew Ubuntu 22/24 ใน Windows WSL2 ก็น่าจะใช้งานได้เช่นกัน แต่อาจต้องมีการปรับการตั้งค่าด้วยตนเอง
- Git
- เว็บเบราว์เซอร์ OTNS-Web ใช้เว็บเบราว์เซอร์ในการแสดงการจําลอง
- Thread Primer คุณจะต้องทราบแนวคิดพื้นฐานของเธรดเพื่อทำความเข้าใจสิ่งที่สอนใน Codelab นี้
คำศัพท์
คําว่า "เราเตอร์" ใช้เป็นตัวยึดตําแหน่งทางเทคนิคสําหรับอุปกรณ์ขยายระยะสัญญาณเทรด ซึ่งเดิมเรียกว่าเทรดเราเตอร์ "โหนด" หมายถึงอุปกรณ์ OpenThread ที่จำลองในการจําลอง OTNS
2. การติดตั้ง
รับรหัส OTNS
$ git clone https://github.com/openthread/ot-ns.git ./otns $ cd otns
คำสั่งคอนโซลทั้งหมดที่ตามมาใน Codelab นี้จะเรียกใช้จากไดเรกทอรี otns
เตรียมพร้อมและติดตั้ง
สคริปต์ bootstrap
จะติดตั้ง Dependency (รวมถึง Python3 และ Go/Golang หากจำเป็น) และติดตั้ง OTNS นอกจากนี้ยังสร้างโหนด OT ประเภทต่างๆ ที่สามารถใช้ในการจําลองได้โดยตรง และทำการทดสอบพื้นฐานบางอย่าง การดำเนินการนี้อาจใช้เวลาหลายนาทีเนื่องจากต้องสร้างโหนด
$ ./script/bootstrap .... .... OTNS installed - use 'otns' to start it. $
ระบบอาจขอให้คุณป้อนรหัสผ่านสำหรับ sudo
หากติดตั้ง otns
ไม่ถูกต้อง
สคริปต์อาจรายงานข้อผิดพลาด เช่น
.... OTNS installed - please add ~/go/bin to your PATH variable first, to use it. $
ในกรณีนี้ คุณต้องเพิ่ม $(go env GOPATH)/bin
ลงใน $PATH.
ในกรณีที่เกิดข้อผิดพลาดอื่นๆ คุณสามารถสร้างปัญหาใน GitHub ได้
3. เรียกใช้ OTNS เป็นครั้งแรก
เรียกใช้ otns
$ otns >_ ← OTNS-CLI prompt
เมื่อเริ่มต้นใช้งานสำเร็จ OTNS จะเข้าสู่คอนโซล CLI (OTNS-CLI
) และเปิดเว็บเบราว์เซอร์สำหรับการแสดงภาพและการจัดการเครือข่าย (OTNS-Web
)
หากเห็นเฉพาะหน้าว่างสำหรับ OTNS-Web แสดงว่าเบราว์เซอร์อาจไม่ได้เปิดใช้ WebGL โปรดดูวิธีเปิดใช้ WebGL ที่ https://superuser.com/a/836833
ในส่วนต่อไปนี้ คุณจะได้เรียนรู้วิธีจัดการการจําลอง OTNS ผ่าน OTNS-CLI
และ OTNS-Web
4. ทำความรู้จัก OTNS-CLI และ OTNS-Web
OTNS-CLI
OTNS-CLI
คืออินเทอร์เฟซบรรทัดคำสั่ง (CLI) สำหรับจัดการการจําลอง OTNS
$ otns >_ ← OTNS-CLI prompt
คุณพิมพ์คำสั่งผ่าน OTNS-CLI
ได้ ดูรายการคำสั่งทั้งหมดได้ที่ข้อมูลอ้างอิง CLI ของ OTNS ไม่ต้องกังวล คุณจะใช้คำสั่งเหล่านี้เพียงไม่กี่รายการใน Codelab นี้
พิมพ์คำสั่ง help
เพื่อดูภาพรวมของคำสั่ง CLI รายการนี้เหมือนกับข้อมูลอ้างอิง CLI
> help add Add a node to the simulation and get the node ID. .... .... Done >
หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับคำสั่งที่เฉพาะเจาะจง ให้ใช้ชื่อของคำสั่ง เช่น
> help add add Add a node to the simulation and get the node ID. Definition: .... .... >
OTNS-Web
OTNS-Web
เป็นเครื่องมือแสดงภาพและการจัดการเครือข่ายของ OTNS ซึ่งแสดงภาพจุด ข้อความ และลิงก์ของเครือข่ายเทรดที่จำลอง โปรดสังเกตองค์ประกอบต่างๆ ของ OTNS-Web
5. เพิ่มโหนด
เพิ่มโหนดผ่าน OTNS-CLI
เพิ่มเราเตอร์เทรดในระบบจำลอง
> add router 1 Done
คุณควรเห็นโหนดที่สร้างใน OTNS-Web
โหนดเริ่มต้นเป็นเราเตอร์และกลายเป็นผู้นำในไม่กี่วินาที โดยทำดังนี้
โหนด OpenThread ใหม่แต่ละโหนดจะได้รับการจัดเตรียมด้วยชุดพารามิเตอร์เครือข่ายมาตรฐานโดยค่าเริ่มต้น เพื่อให้เริ่มการจําลองแบบอินเทอร์แอกทีฟได้ง่าย
เพิ่มโหนดผ่าน OTNS-CLI
ตอนนี้เราจะเพิ่มโหนดประเภทต่างๆ
> add fed 2 Done > add med 3 Done > add sed 4 Done
รอ 2-3 วินาทีเพื่อให้โหนดผสานเป็นพาร์ติชันเดียว คุณควรเห็นโหนดใน OTNS-Web
ดังนี้
นอกจากนี้ ใน OTNS-Web
คุณยังเลือกโหนดใดก็ได้เพื่อดูแผงที่มีข้อมูลเพิ่มเติมเกี่ยวกับโหนดนั้น เช่น ในรูปภาพด้านล่าง มีการนําเลือกโหนด 1 รายการ "บทบาท" ในแผงยืนยันว่าเป็นผู้นำ
เพิ่มโหนดโดย OTNS-Web
นอกจากนี้ คุณยังเพิ่มโหนดผ่าน OTNS-Web
ได้ด้วย คลิกปุ่ม New Router
ของ Action Bar
คุณควรเห็นการสร้างโหนดทางด้านขวาของโหนดที่เลือก เราเตอร์ใหม่ควรเข้าร่วมพาร์ติชันเทรดที่มีอยู่ โดยทำดังนี้
นอกจากนี้ ให้คลิกปุ่ม FED, MED, SSED และ BR ในแถบการดำเนินการเพื่อสร้างโหนดประเภทอื่นๆ เหล่านี้ ตอนนี้ควรมีโหนดทั้งหมด 9 โหนด หากต้องการ ให้ลากโหนดบางโหนดไปยังตำแหน่งอื่นเพื่อสร้างโทโปโลยีเครือข่ายจริงแบบอื่น
ตอนนี้คุณสร้างเครือข่ายเทรดของพาร์ติชันเดียวที่มีโหนดหลายโหนดแล้ว ในส่วนถัดไป เราจะปรับความเร็วในการจําลองเพื่อให้การจําลองทํางานเร็วขึ้น
6. ปรับความเร็ว
ปัจจุบันการจําลองควรทํางานด้วยความเร็ว 1X
ซึ่งหมายความว่าเวลาจําลองที่ผ่านไปจนถึงตอนนี้จะเหมือนกับเวลาจริงนับตั้งแต่ที่เราสร้างโหนดแรก
ปรับความเร็วผ่าน OTNS-CLI
คุณปรับความเร็วการจําลองผ่าน OTNS-CLI
ได้
ตั้งค่าความเร็วการจําลองเป็น 100X
> speed 100 Done
คุณควรเห็นว่าโหนดส่งข้อความบ่อยกว่าก่อนหน้านี้มาก
ตั้งค่าความเร็วการจําลองเป็น MAX
> speed max Done
ตอนนี้ OTNS พยายามจำลองให้เร็วที่สุดเท่าที่จะทำได้ คุณจึงควรเห็นโหนดส่งข้อความจำนวนมาก
หยุดการจำลองชั่วคราว
> speed 0 Done
การตั้งค่าความเร็วการจําลองเป็น 0
จะหยุดการจําลองชั่วคราว
คืนค่าการจําลองเป็นความเร็วปกติ
> speed 1 Done
การตั้งค่าความเร็วการจําลองเป็นค่าที่มากกว่า 0
จะทําให้การจําลองกลับมาทํางานต่อ
ปรับความเร็วผ่าน OTNS-Web
ปุ่มควบคุมความเร็ว
มองหาปุ่มควบคุมความเร็ว บน
Action Bar
ปุ่มจะแสดงความเร็วการจําลองปัจจุบัน และใช้เพื่อปรับความเร็วการจําลองและหยุดชั่วคราว/เริ่มการจําลองต่อได้
เร่งความเร็วการจําลอง
คุณเร่งความเร็วการจําลองได้โดยคลิกปุ่ม จนกว่าความเร็วจะถึง
MAX
:
ชะลอการจําลอง
คุณทำให้การจําลองช้าลงได้โดยคลิกปุ่ม
หยุดการจำลองชั่วคราว
คลิกปุ่ม เพื่อหยุดการจําลองชั่วคราวขณะที่กําลังทํางาน ปุ่มจะเปลี่ยนเป็น
จำลองต่อ
คลิกปุ่ม เพื่อจำลองต่อเมื่อหยุดไว้ชั่วคราว ปุ่มจะเปลี่ยนกลับไปเป็น
ตั้งค่าความเร็วการจําลองเป็น 10X
หากต้องการประหยัดเวลา ให้ใช้
OTNS-CLI
เพื่อปรับความเร็วการจําลองเป็น
10X
เพื่อให้เราสังเกตการเปลี่ยนแปลงโทโพโลยีในเครือข่ายได้เร็วขึ้นมาก
> speed 10 Done
7. เปิด/ปิดวิทยุ
ตอนนี้การจําลองควรมีเราเตอร์อย่างน้อย 2 ตัว (รูปหกเหลี่ยม) ซึ่งอาจเป็น Border Router (สี่เหลี่ยมจัตุรัส) และอุปกรณ์ย่อยจํานวนมาก และทํางานด้วยความเร็ว 10 เท่า
ค้นหาผู้นำปัจจุบัน (เส้นขอบสีแดง) ของเราเตอร์ 2 ตัว แล้วคลิกเลือก
ปิดวิทยุ
คลิกปุ่ม ในแถบการดำเนินการเพื่อปิดสัญญาณของโหนดผู้นำ หัวหน้าจะส่งหรือรับข้อความไม่ได้เมื่อปิดวิทยุ
รอประมาณ 12 วินาที (120 วินาทีตามเวลาจำลอง) เพื่อให้เราเตอร์หรือ Border Router อีกตัวหนึ่งกลายเป็นผู้นำใหม่
เครือข่ายเทรดจะกู้คืนจากภาวะผู้นำไม่ทำงานโดยอัตโนมัติด้วยการสร้างพาร์ติชันใหม่ที่มีผู้นำใหม่ พาร์ติชันใหม่จะมีสีใหม่ด้วย
เปิดวิทยุ
เลือกหัวหน้าที่ปิดวิทยุอยู่ คลิกปุ่ม ใน
Action Bar
เพื่อคืนค่าการเชื่อมต่อวิทยุ
หัวหน้าควรเชื่อมต่อกับเครือข่ายอีกครั้งหลังจากการเชื่อมต่อวิทยุได้รับการคืนค่า
8. ย้ายโหนด
OTNS ช่วยให้ผู้ใช้ย้ายโหนดได้อย่างง่ายดายผ่าน OTNS-CLI
หรือ OTNS-Web
ย้ายโหนดผ่าน OTNS-CLI
ย้ายโหนด Border Router 9 ไปยังตำแหน่งใหม่
> move 9 50 50 Done
ย้ายโหนดผ่าน OTNS-Web
ย้ายโหนด 5 ไปทางขวาล่างจนสุดโดยการลาก เนื่องจากตอนนี้โหนด 5 อยู่นอกความครอบคลุมของสัญญาณวิทยุของเราเตอร์อื่นๆ โหนดดังกล่าวจึงสร้างพาร์ติชันของตัวเองที่มีรหัสพาร์ติชันใหม่ คุณสามารถตรวจสอบรหัสพาร์ติชันได้ในแผงข้อมูลโหนดโดยคลิกโหนด
โปรดทราบว่ายังคงมีเส้นสีเขียวเส้นเดียวที่ลากระหว่างโหนด 5 กับโหนด 9 ปัญหานี้มักเกิดจากข้อมูลเกี่ยวกับบุตรหลานที่ไม่ถูกต้อง ซึ่งยังคงอยู่ในตารางบุตรหลานของผู้ปกครองคนก่อน หรืออาจเป็นข้อมูลที่ล้าสมัยเกี่ยวกับลิงก์จากเราเตอร์ไปยังเราเตอร์เดิมระหว่างโหนด 9 กับโหนด 5 (หรือในกรณีนี้อาจเป็นข้อบกพร่องในการเรนเดอร์) ในที่สุด ระบบจะล้างข้อมูลเก่าในโหนดหลังจากหมดเวลาที่เหมาะสม
9. ลบโหนด
ลบโหนดผ่าน OTNS-CLI
ลบโหนด 5:
> del 5 Done
โหนด 5 ควรหายไปจากการจําลอง
ลบโหนดผ่าน OTNS-Web
เลือกโหนด Border Router 9 แล้วคลิกปุ่ม บน
Action Bar
เพื่อลบโหนด 9
Node 1
ควรกลายเป็นโหนดหลักของพาร์ติชันใหม่ และโหนดที่เหลือทั้งหมดจะแนบเป็นโหนดย่อยกับโหนด 1
10. บริบทของโหนด OTNS-CLI
OTNS-CLI
มีโหมดบริบทของโหนดสำหรับการโต้ตอบกับโหนดอย่างง่ายดายเพื่อช่วยนักพัฒนาซอฟต์แวร์ในการวินิจฉัยสถานะของโหนด นอกจากนี้ คุณยังเริ่มการดำเนินการของโหนดจากโหมดนี้ได้อีกด้วย
เข้าสู่โหมดบริบทของโหนด
ป้อนบริบทของโหนดของโหนด 1
> node 1 Done node 1>
พรอมต์ CLI เปลี่ยนเป็น node 1>
ซึ่งระบุบริบทของโหนดปัจจุบัน คุณสามารถพิมพ์คำสั่ง CLI ของ OpenThread เพื่อเรียกให้ดำเนินการบนโหนดได้ ราวกับว่าคุณกำลังโต้ตอบกับโหนดโดยตรง
เรียกใช้คําสั่งในบริบทของโหนด
node 1> state leader Done node 1> channel 11 Done node 1> panid 0xface Done node 1> networkname otns Done node 1> ipaddr fdde:ad00:beef:0:0:ff:fe00:fc00 fdde:ad00:beef:0:0:ff:fe00:b400 fd00:f00d:cafe:0:2505:8719:3685:ebfb fdde:ad00:beef:0:4fd9:b9ba:44e0:96cb fe80:0:0:0:e86a:e07:ec97:777 Done
เปลี่ยนไปใช้บริบทโหนดอื่น
node 1> node 2 Done node 2>
ออกจากบริบทของโหนด
node 1> exit Done >
อีกวิธีในการออกจากบริบทโหนดคือการใช้คําสั่ง node 0
11. การดูบันทึกของโหนดและการบันทึกแพ็กเก็ต
บันทึกของโหนด OpenThread
โดยค่าเริ่มต้น OTNS จะสร้างไฟล์บันทึกแบบละเอียดสำหรับโหนด OpenThread ที่จำลองทั้งหมด ซึ่งดูได้ในไดเรกทอรี ./tmp
ชื่อไฟล์คือ 0_
ตัวอย่างข้อความที่ตัดตอนมาจากไฟล์บันทึกแสดงอยู่ด้านล่าง
7616488 00:00:06.326 [I] MeshForwarder-: Received IPv6 UDP msg, len:90, chksum:5915, ecn:no, from:ca72650db7b856af, sec:no, prio:net, rss:-58.0
7616488 00:00:06.326 [I] MeshForwarder-: src:[fe80:0:0:0:c872:650d:b7b8:56af]:19788
7616488 00:00:06.326 [I] MeshForwarder-: dst:[ff02:0:0:0:0:0:0:1]:19788
7616488 00:00:06.326 [D] Mle-----------: Receive MLE message
7616488 00:00:06.326 [D] Mac-----------: Idle mode: Radio receiving on channel 11
7657544 00:00:06.367 [D] Mac-----------: ==============================[RX len=063]==============================
7657544 00:00:06.367 [D] Mac-----------: | 41 D8 7F CE FA FF FF 46 | 74 5A 33 9E 76 51 4E 7F | A......FtZ3.vQN. |
7657544 00:00:06.367 [D] Mac-----------: | 3B 02 F0 4D 4C 4D 4C 81 | E6 00 15 03 00 00 00 00 | ;..MLML......... |
7657544 00:00:06.367 [D] Mac-----------: | 00 00 00 01 46 86 7D FE | 06 CC DB 94 86 9C 88 0B | ....F.}......... |
7657544 00:00:06.367 [D] Mac-----------: | 1C 1E 26 9B 8D 21 2E 65 | 53 5A 43 4E A2 59 D6 | ..&..!.eSZCN.Y. |
7657544 00:00:06.367 [D] Mac-----------: ------------------------------------------------------------------------
7657544 00:00:06.367 [I] MeshForwarder-: Received IPv6 UDP msg, len:84, chksum:81e6, ecn:no, from:4e51769e335a7446, sec:no, prio:net, rss:-48.0
7657544 00:00:06.367 [I] MeshForwarder-: src:[fe80:0:0:0:4c51:769e:335a:7446]:19788
7657544 00:00:06.367 [I] MeshForwarder-: dst:[ff02:0:0:0:0:0:0:2]:19788
7657544 00:00:06.367 [D] Mac-----------: Idle mode: Radio receiving on channel 11
7833912 00:00:06.543 [I] Mle-----------: AttachState ParentReq -> Idle
7833912 00:00:06.543 [N] RouterTable---: Allocate router id 12
7833912 00:00:06.543 [N] Mle-----------: RLOC16 fffe -> 3000
7833912 set node RLOC16: fffe -> 3000
7833912 00:00:06.543 [D] SubMac--------: RadioShortAddress: 0x3000
7833912 00:00:06.543 [N] Mle-----------: Role detached -> leader
7833912 00:00:06.543 [N] Mle-----------: Partition ID 0x24c35f10
7833912 00:00:06.543 [I] RouterTable---: Route table
7833912 00:00:06.543 [I] RouterTable---: 12 0x3000 - me - leader
เวลาการจําลองแบบสัมบูรณ์ในไมโครวินาทีจะแสดงอยู่ทางด้านซ้าย การประทับเวลา hh:mm:ss
แสดงการประทับเวลาบันทึกของโหนด OpenThread เอง ซึ่งอาจแตกต่างจากเวลาการจําลองสัมบูรณ์
การบันทึกแพ็กเก็ตของ Wireshark
โดยค่าเริ่มต้น ระบบจะบันทึกเฟรม IEEE 802.15.4 ที่ส่งทั้งหมดไว้ในไฟล์ PCAP current.pcap
ไฟล์นี้สามารถอ่านได้โดย Wireshark ระหว่างหรือหลังการจําลอง เนื่องจากการเข้ารหัสเลเยอร์ลิงก์ของเทรด คุณจึงต้องดำเนินการกำหนดค่าแบบครั้งเดียวใน Wireshark เพื่อตั้งค่าคีย์การถอดรหัสสำหรับ OTNS อย่างถูกต้อง โดยค่าเริ่มต้น ระบบจะใช้คีย์เครือข่ายที่รู้จักกันดี 1 รายการเพื่อให้ Wireshark ถอดรหัสเฟรมได้ง่าย
ดูตัวอย่างการตรวจสอบแพ็กเก็ต OpenThread ใน Wireshark ได้จากภาพหน้าจอด้านล่าง
หากต้องการกำหนดค่าคีย์การถอดรหัส ให้เลือกในเมนูแก้ไข -> ค่ากำหนด จากนั้นในหน้าต่างค่ากําหนด ให้เลือกโปรโตคอล -> IEEE 802.15.4 คลิกปุ่มแก้ไข... ข้าง "คีย์การถอดรหัส" คลิก + เพื่อสร้างรายการใหม่ แล้วป้อนคีย์ 00112233445566778899aabbccddeeff
(32 อักขระ) และเลือก "แฮชชุดข้อความ" ในช่อง "แฮชคีย์" ปล่อย "ดัชนีคีย์การถอดรหัส" เป็น 0
จากนั้นคลิก OK แล้วคลิก OK อีกครั้ง ตอนนี้ไฟล์ PCAP ของ OTNS ควรถอดรหัสอย่างถูกต้องเมื่อโหลด
การประทับเวลาซึ่งแสดงในคอลัมน์ "เวลา" (เป็นวินาที) สอดคล้องกับค่าเวลาการจําลองสัมบูรณ์ที่แสดงในบันทึกของโหนด OpenThread ซึ่งจะช่วยให้คุณเชื่อมโยงข้อความบันทึกกับเฟรมวิทยุที่ส่งหรือรับได้ง่ายขึ้น อย่างไรก็ตาม ค่าเหล่านี้มักจะไม่เหมือนกันจนถึงระดับความแม่นยำระดับไมโครวินาทีเดียว เนื่องจากฮาร์ดแวร์วิทยุ IEEE 802.15.4 ที่จำลองอาจเพิ่มการหน่วงเวลาเพิ่มเติมหลังจากที่สแต็ก OpenThread ส่งคําขอส่งเฟรมวิทยุ
12. ขอแสดงความยินดี
ยินดีด้วย คุณทำการจําลอง OTNS ครั้งแรกสําเร็จแล้ว
คุณได้เรียนรู้วิธีติดตั้ง OTNS และ Dependency ต่างๆ แล้ว คุณเริ่มการจําลอง OTNS ด้วยโหนดจําลอง OpenThread คุณได้เรียนรู้วิธีจัดการการจําลองด้วยวิธีต่างๆ ทั้งผ่าน OTNS-CLI
และ OTNS-Web
ตอนนี้คุณทราบแล้วว่า OTNS คืออะไร และวิธีใช้ OTNS เพื่อจำลองเครือข่าย OpenThread
ขั้นตอนถัดไปคือ
ลองดู Codelab เหล่านี้...
- การจําลองเครือข่ายเทรดด้วย OpenThread
- การจําลองเครือข่ายเทรดโดยใช้ OpenThread ใน Docker
- สร้างเครือข่ายเทรดด้วยบอร์ด nRF52840 และ OpenThread