OpenThread מציעה פקודות UDP לשימוש עם רשת בפרוטוקול Thread כדי לבצע בדיקות מקצה לקצה (P2P)
תקשורת בין שקעי UDP. ב-cli udp
יש שקע לדוגמה אחד עם
שכל פקודות udp
נמצאות באינטראקציה.
בדוגמאות הבאות מתואר איך לפתוח ולחבר שקעים, ואיך חיבור של השקע ואיך לשלוח הודעות באמצעות שקעי UDP.
פקודות UDP
לרשימה של פקודות udp
, מקלידים help
:
udp help
bind
close
connect
linksecurity
open
send
Done
הפקודה open
כדי להתחיל תקשורת UDP, משתמשים בפקודה udp open
כדי לפתוח את השקע.
לאחר מכן תהיה לכם אפשרות לקשר את השקע לכתובת IP וליציאה ספציפיות.
הפקודה bind
אחרי open
של השקע, אפשר להריץ פקודת udp bind
כדי להקצות כתובת IPv6
ויציאה לשקע הפתוח. השקע מחבר את השקע לתקשורת. הקצאת
הכתובת והיציאה של IPv6 נקראות גם מתן שם לשקע. אם לא
bind
את השקע, חיבור השקע (udp connect
) או שימוש בו
פקודת udp send
מקשרת את השקע ליציאה זמנית.
הפקודה connect
אפשר להשתמש בפקודה udp connect
כדי לחבר את השקע לדוגמה לכתובת שקע קשורה.
לאחר מכן אפשר לבצע פקודת udp send
כדי לשלוח הודעה לאפליקציה להשוואה. אם השקע
עדיין לא מחויב, הנפקת הפקודה udp connect
גם מחייבת את השקע.
הפקודה send
פקודת udp send
שולחת הודעה ליעד באמצעות ה-socket לדוגמה
שאת כתובת ה-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.
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 sendצומת 1 מאשר שקיבלתם את ההודעה מצומת 2:
5 bytes from fdde:ad00:beef:0:dac3:6792:e2e:90d8 49153 hello
אפשר לחבר את השקע לכתובת ה-socket של האפליקציות להשוואה, ואז לשלוח הודעה בין שני צמתים
הדוגמה הזו דומה לדוגמה הקודמת, אבל היא ממחישה חלק מהגמישות.
שמשתמשים בשקעי 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
.