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

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

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

تقدِّم "نظرة عامة على الطلب" والمثال التالي معلومات عن عملية الإعداد مثل نقطة نهاية TCP ومستمع TCP، وكيفية الاتصال بنقطة نهاية TCP المشابهة، وكيفية إرسال رسالة إلى الزميل.

أوامر TCP

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

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
للحصول على أوصاف وبنية لجميع الأوامر، يُرجى الرجوع إلى مرجع أوامر واجهة سطر الأوامر. تبدأ أوامر TCP أبجديًا إجهاض 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، يبدأ اتصال بروتوكول التحكم بالنقل. يتم اقتطاع المسافة بين النقطتين. يوصى به ولكن ليس إلزاميًا وتُصدِر هذا الأمر عند اكتمال نقل البيانات.

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

  1. في العقدة 1، قم بتهيئة وحدة TCP CLI، ثم استمع إلى الاتصالات الواردة باستخدام مثال مستمع 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