الاطّلاع على المصدر على 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
طلب واحد (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، قم بتهيئة وحدة TCP CLI، ثم استمع إلى الاتصالات الواردة باستخدام مثال مستمع TCP.
tcp init
tcp listen :: 30000
يشير استخدام
::
إلى أنّlisten
يجب أن يستخدم عنوان IPv6 غير محدّد، ومن ثم يقوم مكدس TCP/IPv6 بتعيين عنوان IPv6. المنفذ هو 30000.في العقدة 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