ב-OpenThread יש פקודות TCP לשימוש עם רשת Thread כדי לבדוק תקשורת מקצה לקצה (P2P) בין נקודות קצה ב-TCP. cli tcp
מספק נקודת קצה (endpoint) אחת של TCP ומאזין TCP אחד לדוגמה, שדרכן כל tcp
הפקודות פועלות.
בסקירות כלליות של הפקודות ובדוגמה שמוצגת בהמשך מוסבר איך מפעילים את דוגמה של נקודת הקצה ב-TCP ומאזין TCP, איך מתחברים לנקודת קצה מסוג TCP של רשתות שכנות (peering) ואיך שולחים הודעה לעמית.
פקודות TCP
לקבלת רשימה של פקודות tcp
, מקלידים help
:
tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
לתיאורים ולתחביר של כל הפקודות, יש לעיין בחומר העזר בנושא פקודות CLI.
פקודות TCP מתחילות בסדר אלפביתי עם tcp abort.
פקודה אחת (init
)
משתמשים בפקודה tcp init
כדי להפעיל את מודול ה-TCP ולהתחיל תקשורת TCP.
מודול ה-TCP יכול לבצע פונקציות רבות, כמו האזנה לחיבורי חיבורים נכנסים באמצעות דוגמת ההאזנה TCP שסופקה על ידי ה-CLI של tcp
.
כדי לאתחל את ה-listener של TCP לדוגמה ואת נקודת הקצה של TCP לדוגמה, צריך להריץ את הפקודה tcp deinit
.
פקודה אחת (bind
)
כדי לקשר את נקודת הקצה של TCP לדוגמה לאחר אתחול מודול ה-TCP, מריצים פקודת tcp bind
כדי להקצות כתובת IPv6 ויציאה לנקודת הקצה של TCP.
הפעולה הזו מאחדת את נקודת הקצה לתקשורת. הקצאה של כתובת ויציאה מסוג IPv6 נקראת גם 'בחירת שם של נקודת הקצה'.
פקודה אחת (listen
)
כדי להשתמש בדוגמה של TCP listener אחרי שאתחלתם את מודול ה-TCP, מריצים פקודת tcp listen
ומציינים את כתובת ה-IPv6 ואת יציאת ההאזנה.
כדי למנוע מה-listener לדוגמה של TCP האזנה לחיבורי TCP נכנסים, צריך להריץ את הפקודה tcp stoplistening
.
פקודה אחת (connect
)
הפקודה tcp connect
מחברת את נקודת הקצה של TCP לדוגמה לכתובת של נקודת קצה ב-TCP של אפליקציות להשוואה.
פקודה אחת (send
)
לאחר יצירת חיבור בין שני צמתים, תצטרכו להריץ פקודת tcp send
כדי לשלוח הודעה לעמית.
פקודות benchmark
אחרי שיוצרים חיבור TCP בין שני צמתים, אפשר להשתמש בפקודות benchmark
כדי לשלוח כמויות גדולות של נתונים בין הצמתים, כדי לבדוק את הביצועים ואת רוחב הפס של הרשת. מספר הבייטים שהועברו באלפיות השנייה, וכן ה-TCP Goodput יופיע בתוצאות של benchmark
.
פקודה אחת (abort
)
כדי לסיים חיבור TCP באופן מיידי וללא טקס, מריצים את הפקודה tcp abort
בכל אחד מהצמתים כדי להעביר את נקודת הקצה ב-TCP למצב סגור.
פקודה אחת (sendend
)
כשצומת אחד מסיים לשלוח נתונים לצומת השני, הצומת הראשון יכול ליצור פקודת tcp sendend
כדי להתריע לצומת השני שלא יצפה יותר לנתונים. הצומת השני יכול גם לשלוח tcp sendend
לצומת הראשון.
ברגע שכל צומת מקבל הודעת TCP: Disconnected
, חיבור ה-TCP בין שני הצמתים קורס. אחרי שהעברת הנתונים תסתיים, מומלץ להריץ את הפקודה הזו, אבל לא חייבים לעשות זאת.
שליחת הודעה בין שני צמתים
בצומת 1, מפעילים את מודול TCP CLI ולאחר מכן מאזינים לחיבורים נכנסים באמצעות האזין TCP לדוגמה.
tcp init
tcp listen :: 30000
השימוש ב-
::
מציין שה-listen
צריך להשתמש בכתובת IPv6 שלא צוינה, ולכן מחסנית TCP/IPv6 תקצה את כתובת ה-IPv6. מספר היציאה הוא 30,000.בצומת 2, מפעילים את מודול TCP CLI, מתחברים לצומת 1 ושולחים הודעה פשוטה.
tcp init
tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
tcp send hello
אימות
על סמך השלבים לדוגמה שמפורטים למעלה, צפוי הפלט הבא:
- אחרי שצומת 2 מריץ את הפקודה
tcp connect
, הצומת 2 אמור לקבל את ההודעהTCP: Connection established
. - לאחר מכן, הצומת 1 אמור לקבל את ההודעות (עם כתובת IPv6 לדוגמה ויציאה):
Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
TCP: Connection established
- אחרי שצומת 2 יריץ את הפקודה
tcp send
, הצומת 1 אמור לקבל את ההודעהTCP: Received 5 bytes: hello
.