تست عملکرد TCP با OT CLI

مشاهده منبع در GitHub

OpenThread دستورات TCP را برای استفاده با شبکه Thread برای آزمایش ارتباط همتا به همتا بین نقاط پایانی 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 ارائه شده توسط tcp CLI. برای نامشخص کردن نمونه شنونده TCP و نمونه پایانی TCP، دستور tcp deinit را صادر کنید.

bind

برای اتصال به مثال نقطه پایانی TCP پس از اینکه ماژول TCP را مقداردهی کردید، یک دستور tcp bind را اجرا کنید تا یک آدرس IPv6 و یک پورت به نقطه پایانی TCP اختصاص دهید. این نقطه پایانی را برای ارتباط متصل می کند. تخصیص آدرس و پورت IPv6 به عنوان "نامگذاری نقطه پایانی" نیز گفته می شود.

دستور listen

برای استفاده از نمونه شنونده TCP هنگامی که ماژول TCP را مقداردهی اولیه کردید، یک دستور tcp listen را اجرا کنید و آدرس IPv6 و پورت گوش دادن را مشخص کنید.

برای جلوگیری از گوش دادن مثال TCP listener برای اتصالات 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. در گره 1، ماژول TCP CLI را مقداردهی اولیه کنید، سپس با استفاده از نمونه شنونده TCP به اتصالات ورودی گوش دهید.

    tcp init
    tcp listen :: 30000
    

    استفاده از :: نشان می دهد که listen باید از آدرس IPv6 نامشخص استفاده کند، بنابراین پشته TCP/IPv6 آدرس IPv6 را اختصاص می دهد. پورت 30000 است.

  2. در Node 2، ماژول TCP CLI را مقداردهی اولیه کنید، به گره 1 متصل شوید و سپس یک پیام ساده ارسال کنید.

    tcp init
    tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
    tcp send hello
    

تایید

بر اساس مراحل مثالی که در بالا نشان داده شده است، خروجی زیر انتظار می رود:

  • بعد از اینکه Node 2 دستور tcp connect اجرا کرد، Node 2 باید پیام TCP: Connection established .
  • سپس گره 1 باید پیام ها را دریافت کند (به عنوان مثال آدرس IPv6 و پورت):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • بعد از اینکه Node 2 دستور tcp send اجرا کرد، Node 1 باید پیام TCP: Received 5 bytes: hello دریافت کند.