اختبار وظيفة بروتوكول مخطط بيانات المستخدم (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 غير محدّد، وبالتالي، يعيّن مكدس UDP/IPv6 عنوان 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

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

    udp send hello
    Done
    

    إذا لم يتم تحديد ip وport، سيستخدم الأمر udp send كلاً من ip وport. التي تم تحديدها في الأمر udp connect.