בדיקת הפונקציונליות של TCP באמצעות OT CLI

הצגת המקור ב-GitHub

OpenThread מציע פקודות TCP לשימוש עם רשת בפרוטוקול Thread כדי לבצע בדיקות מקצה לקצה (P2P) תקשורת בין נקודות קצה של TCP. השדה cli tcp מספק TCP אחד לדוגמה נקודת קצה ודוגמה אחת של אוזן TCP אחת שבה כל tcpהפקודות מקיימות אינטראקציה.

סקירות כלליות של הפקודות והדוגמה הבאה מספקות מידע על אתחול דוגמה לנקודת הקצה של TCP ו-TCP להאזנה, איך להתחבר לנקודת קצה של TCP דרך עמית, ואיך לשלוח הודעה לאפליקציה להשוואה.

פקודות 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. כדי לאתחל את ה-TCP לדוגמה ואת נקודת הקצה לדוגמה של TCP, להריץ את הפקודה tcp deinit.

הפקודה bind

כדי לקשר את נקודת הקצה לדוגמה של TCP אחרי שאתחול מודול ה-TCP: מריצים פקודת tcp bind כדי להקצות כתובת IPv6 ויציאה לנקודת הקצה של TCP. המערכת מקשרת את נקודת הקצה לתקשורת. הקצאת כתובת ויציאה של IPv6 נקרא גם 'מתן שם לנקודת הקצה'.

הפקודה listen

כדי להשתמש בדוגמה של מאזין TCP אחרי שאתחול מודול ה-TCP: להריץ פקודת tcp listen ומציינים את כתובת IPv6 ואת יציאת ההאזנה.

כדי להפסיק את ההאזנה לחיבורי TCP נכנסים לדוגמה, להריץ את הפקודה tcp stoplistening.

הפקודה connect

פקודת tcp connect מחברת את נקודת הקצה לדוגמה של TCP לכתובת נקודת קצה של TCP עמית.

הפקודה send

אחרי שנוצר חיבור בין שני צמתים, צריך להריץ פקודת tcp send כדי לשלוח הודעה לאפליקציה.

פקודות benchmark

אחרי שנוצר חיבור TCP בין שני צמתים, אפשר להשתמש פקודות benchmark לשליחת כמויות גדולות של נתונים בין הצמתים לבדיקה רוחב הפס והביצועים של הרשת. מספר הבייטים שהועברו באלפיות השנייה וגם Google Goodput של ה-TCP יסופק בתוצאות של benchmark.

הפקודה abort

כדי לסיים חיבור TCP באופן מיידי וללא הטעות, צריך להריץ את tcp abort בפקודה בכל אחד מהצמתים, להעביר את נקודת הקצה של TCP למצב סגור.

הפקודה sendend

כאשר צומת אחד מסיים לשלוח נתונים לצומת השני, הצומת הראשון יכול לשלוח פקודת tcp sendend כדי להתריע בפני הצומת השני שכבר לא יצפה . הצומת השני יכול גם לשלוח tcp sendend לצומת הראשון. לאחר שכל צומת מקבל הודעת TCP: Disconnected, חיבור ה-TCP בין שני הצמתים, מנותקות. מומלץ אבל לא חובה תנפיק את הפקודה הזו כשהעברת הנתונים תסתיים.

שליחת הודעה בין שני צמתים

  1. בצומת 1, מאתחלים את המודול של TCP CLI ולאחר מכן מקשיבים לחיבורים נכנסים באמצעות אוזן ה-TCP לדוגמה.

    tcp init
    tcp listen :: 30000
    

    השימוש ב-:: מציין שה-listen צריך להשתמש בכתובת IPv6 שלא צוינה, כך שערימת ה-TCP/IPv6 תקצה את כתובת ה-IPv6. מספר היציאה הוא 30000.

  2. בצומת 2, מאתחלים את מודול ה-CLI של TCP, מתחברים לצומת 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