الاطّلاع على المصدر على GitHub
يقدم OpenThread أوامر بروتوكول مخطط بيانات المستخدم (UDP) للاستخدام مع شبكة Thread لاختبار الاتصال من نظير إلى نظير بين مقابس UDP. توفّر cli udp
مقبسًا نموذجيًا واحدًا تتفاعل معه جميع أوامر udp
.
توضّح الأمثلة التالية كيف يمكنك فتح المقابس وربطها، وكيفية توصيل المقبس، وكيفية إرسال الرسائل باستخدام مقابس UDP.
أوامر بروتوكول مخطط بيانات المستخدم (UDP)
للحصول على قائمة تضم طلبات udp
، اكتب help
:
udp help
bind
close
connect
linksecurity
open
send
Done
الأمر open
استخدِم الأمر udp open
لفتح المقبس لبدء اتصال UDP.
بعد ذلك لديك خيار ربط المقبس بعنوان IP معين ومنفذ معين.
الأمر bind
بعد open
المقبس، يمكنك تشغيل أمر udp bind
لتحديد عنوان IPv6 ومنفذ للمقبس المفتوح. هذا يربط المقبس بالاتصال. يُشار أيضًا إلى تعيين عنوان IPv6 والمنفذ بتسمية المقبس. في حال عدم تنفيذ
bind
المقبس مباشرةً، يؤدي توصيل المقبس (udp connect
) أو استخدامه في
أمر udp send
إلى ربط المقبس بمنفذ مؤقت.
الأمر connect
يمكن استخدام أمر udp connect
لتوصيل نموذج المقبس بعنوان مقبس مشابه.
يمكنك بعد ذلك إصدار أمر udp send
لإرسال رسالة إلى التطبيق النظير. في حال لم يكن المقبس مرتبطًا، سيؤدي إصدار الأمر udp connect
إلى ربط المقبس أيضًا.
الأمر send
يرسل الأمر udp send
رسالة باستخدام نموذج المقبس إلى وجهة يمكن تحديد عنوان IP ومنفذ UDP فيها باستخدام متغيرات الأوامر.
إذا لم يتم تحديد عنوان IP والمنفذ في الأمر udp send
، يتم إرسال الرسالة باستخدام نموذج المقبس إلى الوجهة التي تم تحديدها في الأمر udp connect
.
ويؤدي إصدار الأمر udp send
إلى ربط المقبس بمنفذ مؤقت
إذا لم يكن المقبس قد تم ربطه من قبل.
الأمر close
وننصحك باستخدام الأمر udp close
لإغلاق المقبس عند عدم الحاجة إليه.
الأمر linksecurity
يمكن استخدام الأمر udp linksecurity
لتفعيل أمان طبقة ارتباط البيانات أو إيقافه للرسائل.
إرسال رسالة بين نقطتين
في العقدة 1، افتح مقبس UDP.
udp open
Doneفي العقدة 1، اربط المقبس.
udp bind :: 1234
Doneيشير استخدام
::
إلى أنّه يجب علىbind
استخدام عنوان IPv6 غير محدَّد، وبالتالي، يتم تخصيص عنوان IPv6 المُلزِم باستخدام حزمة UDP/IPv6. للحصول على الخيارات الكاملة معudp bind
، مثل الربط بواجهة شبكة، يمكنك الرجوع إلى ربط udp.
1 في العقدة 2، افتح مقبس UDP.
udp open
Done
في العقدة 2، أرسل رسالة بسيطة إلى العقدة 1.
udp send fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234 hello
Doneيفترض هذا الأمر أن العقدة 2 قد اكتشفت عنوان العقدة 1 بالفعل. علاوة على ذلك، اختار مشرف العقدة 2 عدم ربط المقبس في هذا المثال. وذلك لأنّ مشرف العقدة 2 يريد إرسال رسالة إلى العقدة 1 بدون الاهتمام بأي من عناوين IP والمنافذ يتم استخدامها كمصدر للعقدة 2. في هذه الحالة، يختار المقبس عنوان IP والمنفذ عشوائيًا.
للاطّلاع على الخيارات الكاملة مع
udp send
، يمكنك الرجوع إلى إرسال udp.تؤكد العقدة 1 على استلام الرسالة من العقدة 2:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
عليك توصيل المقبس بعنوان مقبس الجهاز النظير، ثم إرسال رسالة بين نقطتين
هذا المثال يشبه المثال السابق، ولكنه يوضح بعض المرونة في استخدام مقابس UDP. بهذه الطريقة، عليك أولاً توصيل المقبس بعنوان مقبس التطبيقات المشابهة، وبعد ذلك لن تحتاج إلى تحديد عنوان IP النظير والمنفذ في كل مرة تُجري فيها udp send
.
في العقدة 1، افتح مقبس UDP.
udp open
Doneفي العقدة 1، اربط المقبس.
udp bind :: 1234
Doneفي العقدة 2، افتح مقبس UDP.
udp open
Doneفي العقدة 2، استخدِم الأمر
udp connect
لفتح الاتصال بالعقدة 1.udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
Doneللاطّلاع على الخيارات الكاملة المتعلّقة بسمة
udp connect
، يمكنك الرجوع إلى udp Connect.وفي العقدة 2، استخدِم الأمر
udp send
لإرسال رسالة إلى العقدة 1، ولكن لا تحدِّدip
وport
في بنية الأمرudp send
.udp send hello
Doneمن خلال عدم تحديد
ip
وport
، يستخدم الأمرudp send
الإجراءَينip
وport
المحدَّدين في الأمرudp connect
.