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

الاطّلاع على المصدر على 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. في العقدة 1، افتح مقبس UDP.

    udp open
    Done
    
  2. في العقدة 1، اربط المقبس.

    udp bind :: 1234
    Done
    

    يشير استخدام :: إلى أنّه يجب على bind استخدام عنوان IPv6 غير محدَّد، وبالتالي، يتم تخصيص عنوان IPv6 المُلزِم باستخدام حزمة UDP/IPv6. للحصول على الخيارات الكاملة مع udp bind، مثل الربط بواجهة شبكة، يمكنك الرجوع إلى ربط udp.

1 في العقدة 2، افتح مقبس UDP.

udp open
   Done
   

  1. في العقدة 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.

  2. تؤكد العقدة 1 على استلام الرسالة من العقدة 2:

    5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
    

عليك توصيل المقبس بعنوان مقبس الجهاز النظير، ثم إرسال رسالة بين نقطتين

هذا المثال يشبه المثال السابق، ولكنه يوضح بعض المرونة في استخدام مقابس UDP. بهذه الطريقة، عليك أولاً توصيل المقبس بعنوان مقبس التطبيقات المشابهة، وبعد ذلك لن تحتاج إلى تحديد عنوان IP النظير والمنفذ في كل مرة تُجري فيها udp send.

  1. في العقدة 1، افتح مقبس UDP.

    udp open
    Done
    
  2. في العقدة 1، اربط المقبس.

    udp bind :: 1234
    Done
    
  3. في العقدة 2، افتح مقبس UDP.

    udp open
    Done
    
  4. في العقدة 2، استخدِم الأمر udp connect لفتح الاتصال بالعقدة 1.

    udp connect fdde:ad00:beef:0:bb1:ebd6:ad10:f33 1234
    Done
    

    للاطّلاع على الخيارات الكاملة المتعلّقة بسمة udp connect، يمكنك الرجوع إلى udp Connect.

  5. وفي العقدة 2، استخدِم الأمر udp send لإرسال رسالة إلى العقدة 1، ولكن لا تحدِّد ip وport في بنية الأمر udp send.

    udp send hello
    Done
    

    من خلال عدم تحديد ip وport، يستخدم الأمر udp send الإجراءَين ip وport المحدَّدين في الأمر udp connect.