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

ดูซอร์สบน GitHub

OpenThread มีคำสั่ง TCP เพื่อใช้กับเครือข่ายเทรดเพื่อทดสอบการสื่อสารแบบเพียร์ทูเพียร์ระหว่างปลายทาง TCP cli tcp มีปลายทาง TCP ตัวอย่าง 1 รายการและ Listener ตัวอย่าง 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 abort

คำสั่ง init

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

คำสั่ง bind

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

คำสั่ง listen

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

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

คำสั่ง connect

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

คำสั่ง send

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

คำสั่ง benchmark

เมื่อสร้างการเชื่อมต่อ TCP ระหว่าง 2 โหนด คุณสามารถเลือกใช้คำสั่ง 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