ทดสอบฟังก์ชัน TCP ด้วย OT CLI

ดูแหล่งที่มาใน GitHub

OpenThread มีคำสั่ง TCP เพื่อใช้กับเครือข่ายเทรดเพื่อทดสอบเพียร์ทูเพียร์ การสื่อสารระหว่างปลายทาง TCP cli tcp ระบุ TCP ตัวอย่าง 1 รายการ ปลายทางและผู้ฟัง TCP ตัวอย่าง 1 รายการที่คำสั่ง tcp ทั้งหมดทำงานร่วมกัน

ภาพรวมคำสั่งและตัวอย่างที่ตามมาจะให้ข้อมูลเกี่ยวกับการเริ่มต้นใช้งาน ตัวอย่างปลายทาง TCP และ Listener TCP, วิธีเชื่อมต่อกับปลายทาง TCP แบบเพียร์ และวิธีส่งข้อความถึงเพื่อน

คำสั่ง TCP

สำหรับรายการคำสั่ง tcp ให้พิมพ์ help:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
สำหรับคำอธิบายและไวยากรณ์ของคำสั่งทั้งหมด โปรดดูข้อมูลอ้างอิงคำสั่ง CLI คำสั่ง TCP จะขึ้นต้นด้วยตัวอักษรด้วย ล้มเลิก tcp

คำสั่ง init

ใช้คำสั่ง tcp init เพื่อเริ่มต้นโมดูล TCP เพื่อเริ่มต้นการสื่อสาร TCP โมดูล TCP จะทำงานหลายอย่างได้ เช่น การฟังสายเรียกเข้า การเชื่อมต่อโดยใช้ Listener TCP ตัวอย่างโดย tcp CLI หากต้องการยกเลิก Listener ของ TCP ตัวอย่างและปลายทาง TCP ตัวอย่าง ออกคำสั่ง tcp deinit

คำสั่ง bind

หากต้องการเชื่อมโยงปลายทาง TCP ในตัวอย่างเมื่อเริ่มโมดูล TCP แล้ว เรียกใช้คำสั่ง tcp bind เพื่อกำหนดที่อยู่ IPv6 และพอร์ตไปยังปลายทาง TCP ระบบจะเชื่อมโยงปลายทางสำหรับการสื่อสาร การกำหนดที่อยู่ IPv6 และพอร์ต มีชื่อเรียกอีกอย่างว่า "การตั้งชื่อปลายทาง"

คำสั่ง listen

หากต้องการใช้ Listener ของ TCP ในตัวอย่างเมื่อคุณเริ่มต้นโมดูล TCP แล้ว เรียกใช้คำสั่ง tcp listen แล้วระบุที่อยู่ IPv6 และพอร์ตสำหรับการฟัง

หากต้องการหยุด Listener ของ TCP ในตัวอย่างไม่ให้ฟังการเชื่อมต่อ TCP ขาเข้า ออกคำสั่ง tcp stoplistening

คำสั่ง connect

คำสั่ง tcp connect เชื่อมต่อปลายทาง TCP ตัวอย่างกับที่อยู่ปลายทาง TCP การเพียร์

คำสั่ง send

เมื่อสร้างการเชื่อมต่อระหว่าง 2 โหนดแล้ว ให้ออกคำสั่ง tcp send เพื่อส่งข้อความถึงเพื่อน

คำสั่ง benchmark รายการ

เมื่อสร้างการเชื่อมต่อ TCP ระหว่างสองโหนด คุณสามารถใช้เมธอด คำสั่ง benchmark สำหรับส่งข้อมูลจำนวนมากระหว่างโหนดเพื่อทดสอบ แบนด์วิดท์และประสิทธิภาพ ของเครือข่าย จำนวนไบต์ที่ส่งในหน่วยมิลลิวินาที รวมถึง TCP Goodput จะระบุในผลลัพธ์ benchmark

คำสั่ง abort

หากต้องการสิ้นสุดการเชื่อมต่อ TCP ในทันทีโดยไม่สมเหตุสมผล ให้เรียกใช้ tcp abort บนโหนดใดโหนดหนึ่งเพื่อเปลี่ยนปลายทาง TCP เป็นสถานะปิด

คำสั่ง sendend

เมื่อโหนดหนึ่งส่งข้อมูลไปยังโหนดอื่นเสร็จแล้ว โหนดแรกจะสามารถ ออกคำสั่ง tcp sendend เพื่อแจ้งเตือนโหนดที่ 2 ที่ไม่ต้องการใช้แล้ว โหนดที่ 2 ยังส่ง tcp sendend ไปยังโหนดแรกได้ด้วย เมื่อแต่ละโหนดได้รับข้อความ TCP: Disconnected การเชื่อมต่อ TCP ระหว่าง 2 โหนดจะถูกแยกส่วน เราขอแนะนำให้ใช้ แต่ไม่บังคับ ออกคำสั่งนี้เมื่อการโอนข้อมูลเสร็จสมบูรณ์

ส่งข้อความระหว่าง 2 โหนด

  1. ในโหนด 1 ให้เริ่มต้นโมดูล TCP CLI แล้วรอรับการเชื่อมต่อที่เข้ามาใหม่ โดยใช้ Listener TCP ตัวอย่าง

    tcp init
    tcp listen :: 30000
    

    การใช้ :: หมายความว่า listen ควรใช้ที่อยู่ IPv6 ที่ไม่ระบุ จึงทำให้สแต็ก TCP/IPv6 กำหนดที่อยู่ IPv6 พอร์ตคือ 30000

  2. ในโหนด 2 ให้เริ่มต้นโมดูล TCP CLI, เชื่อมต่อกับโหนด 1 แล้วส่ง ข้อความง่ายๆ

    tcp init
    tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
    tcp send hello
    

การยืนยัน

จากขั้นตอนตัวอย่างที่แสดงด้านบน ผลลัพธ์ต่อไปนี้ควรจะเป็น

  • หลังจากโหนด 2 เรียกใช้คำสั่ง tcp connect โหนด 2 ควรได้รับ ข้อความ TCP: Connection established
  • จากนั้นโหนด 1 ควรได้รับข้อความ (พร้อมตัวอย่างที่อยู่ IPv6 และพอร์ต) ดังนี้
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • หลังจากโหนด 2 เรียกใช้คำสั่ง tcp send โหนด 1 ควรได้รับ ข้อความ TCP: Received 5 bytes: hello