ב-OpenThread יש פקודות UDP לשימוש עם רשת Thread כדי לבדוק תקשורת מקצה לקצה (P2P) בין שקעי 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 שלא צוינה, ולכן מחסנית UDP/IPv6 תקצה את כתובת ה-IPv6 המקשרת. לאפשרויות המלאות עםudp bind
, כמו קישור לממשק רשת, עיינו ב-udp bind.
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
.