اختبار وظائف TCP باستخدام واجهة سطر الأوامر الإضافية (OT CLI)

الاطّلاع على المصدر على GitHub

يوفّر OpenThread أوامر بروتوكول التحكم بالنقل للاستخدام مع شبكة Thread لاختبار الاتصال من نظير إلى نظير بين نقاط نهاية TCP. يوفّر cli tcp نموذجًا لنقطة نهاية TCP ونموذجًا واحدًا لمستمع TCP الذي تتفاعل معه جميع tcpالأوامر.

توفر النظرات العامة على الأوامر والمثال التالي معلومات حول تهيئة مثال نقطة نهاية TCP ومستمع TCP، وكيفية الاتصال بنقطة نهاية TCP نظير، وكيفية إرسال رسالة إلى النظير.

أوامر بروتوكول التحكم بالنقل

للحصول على قائمة بأوامر tcp، اكتب help:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
للحصول على أوصاف جميع الأوامر وبنيتها، يُرجى الرجوع إلى مرجع أوامر CLI. تبدأ أوامر بروتوكول التحكم بالنقل أبجديًا بإلغاء تفعيل بروتوكول tcp.

الأمر init

يمكنك استخدام الأمر tcp init لإعداد وحدة TCP لبدء اتصال TCP. يمكن لوحدة TCP بعد ذلك تنفيذ العديد من الوظائف، مثل رصد الاتصالات الواردة باستخدام نموذج مستمِع TCP الذي يوفّره واجهة سطر الأوامر tcp. لإيقاف نموذج مستمِع TCP ونموذج نقطة نهاية TCP، يمكنك إصدار الأمر tcp deinit.

الأمر bind

لربط نموذج نقطة نهاية TCP بعد إعداد وحدة TCP، يمكنك تشغيل أمر tcp bind لتخصيص عنوان IPv6 ومنفذ إلى نقطة نهاية TCP. هذا يربط نقطة النهاية للاتصال. يُشار أيضًا إلى تعيين عنوان IPv6 والمنفذ باسم "تسمية نقطة النهاية".

الأمر listen

لاستخدام نموذج مستمع TCP بعد إعداد وحدة TCP، يمكنك تشغيل أمر tcp listen وتحديد عنوان IPv6 ومنفذ الاستماع.

لإيقاف مستمِع TCP النموذجي من الاستماع إلى اتصالات TCP الواردة، يمكنك إصدار الأمر tcp stoplistening.

الأمر connect

يربط الأمر tcp connect مثال نقطة نهاية TCP بعنوان نقطة نهاية TCP نظير.

الأمر send

بعد إنشاء اتصال بين عُقدتين، أصدر الأمر tcp send لإرسال رسالة إلى النظير.

طلبات benchmark

بعد إنشاء اتصال بروتوكول التحكم بالنقل (TCP) بين نقطتين، يمكنك اختياريًا استخدام أوامر benchmark لإرسال كميات كبيرة من البيانات بين العُقد لاختبار معدل نقل البيانات للشبكة وأدائها. سيتم تقديم عدد وحدات البايت المنقولة بالمللي ثانية بالإضافة إلى البيانات الجيدة لـ TCP في نتائج benchmark.

الأمر abort

لإنهاء اتصال TCP فورًا وبشكل غير رسمي، يمكنك تنفيذ الأمر tcp abort على أي من العُقد لنقل نقطة نهاية TCP إلى حالة مغلقة.

الأمر sendend

عند انتهاء إحدى العُقد من إرسال البيانات إلى العقدة الأخرى، يمكن للعقدة الأولى إصدار أمر tcp sendend لتنبيه العقدة الثانية إلى عدم توقع البيانات بعد الآن. ويمكن للعقدة الثانية أيضًا إرسال tcp sendend إلى العقدة الأولى. بمجرد أن تتلقى كل عقدة رسالة TCP: Disconnected، يتم قطع اتصال TCP بين العُقدتين. يوصى بذلك ولكن ليس مطلوبًا إصدار هذا الأمر عند اكتمال نقل البيانات.

إرسال رسالة بين نقطتين

  1. في العقدة 1، قم بتهيئة وحدة TCP CLI، ثم استمع إلى الاتصالات الواردة باستخدام مثال مستمع TCP.

    tcp init
    tcp listen :: 30000
    

    يشير استخدام :: إلى أنّه على listen استخدام عنوان IPv6 غير محدَّد، وبالتالي، يتم تحديد عنوان IPv6 من خلال حزمة TCP/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