پرش به محتویات

پشته اتصالات نزدیک

این صفحه نحوه استفاده Mycel از Google Nearby Connections برای شبکه مش محلی را مستند می‌کند.


نمای کلی

انتقال محلی اصلی Mycel از Google Nearby Connections API استفاده می‌کند که ارائه می‌دهد:

  • بلوتوث کم‌مصرف (BLE) برای کشف
  • Wi-Fi Direct برای انتقال داده پرسرعت
  • انتخاب خودکار رسانه بر اساس شرایط

این پایه شبکه مش آفلاین Mycel است.


نحوه کار

استراتژی اتصال

Mycel از استراتژی P2P_CLUSTER استفاده می‌کند:

  • همه دستگاه‌ها می‌توانند یکدیگر را کشف و متصل شوند
  • هیچ سلسله‌مراتب ارباب/بنده نیست
  • پشتیبانی از چندین اتصال همزمان
  • بهینه‌شده برای توپولوژی‌های مش

جریان کشف

۱. برنامه شروع می‌شود → شروع تبلیغ + کشف
۲. دستگاه نزدیک پیدا شد → درخواست اتصال
۳. هر دو دستگاه قبول کردند → کانال رمزنگاری‌شده برقرار شد
۴. آماده برای تبادل پیام

انتقال داده

پس از اتصال، دستگاه‌ها می‌توانند:

  • بسته‌های DTN (پیام‌های رمزنگاری‌شده) ارسال کنند
  • اطلاعات مسیریابی تبادل کنند
  • پیام‌ها را برای کاربران دیگر رله کنند

مشخصات فیزیکی

ویژگی مقدار معمول توضیحات
برد کشف BLE ۳۰-۵۰ متر خط دید، بسته به دستگاه متفاوت است
برد Wi-Fi Direct تا ۲۰۰ متر وقتی در دسترس باشد
اسلات‌های اتصال ۴ در هر دستگاه محدودیت قابل تنظیم
زمان دست‌دهی ۲-۵ ثانیه بسته به دستگاه

برد متفاوت است

برد واقعی به سخت‌افزار دستگاه، موانع، تداخل، و وضعیت باتری بستگی دارد. محیط‌های داخلی معمولاً برد کوتاه‌تری دارند.


نیازمندی‌ها

نیازمندی‌های دستگاه

نیازمندی جزئیات
نسخه اندروید ۸.۰+ (API 26+)، ویژگی‌های کامل در ۱۰+
Google Play Services لازم (API نزدیک را ارائه می‌دهد)
بلوتوث باید فعال باشد
موقعیت مجوز برای اسکن BLE لازم است
وای‌فای باید برای بهترین عملکرد فعال باشد

محدودیت هواوی

دستگاه‌های هواوی تولید شده بعد از ۲۰۱۹ معمولاً Google Play Services ندارند و نمی‌توانند Mycel را اجرا کنند. این یک محدودیت اساسی است.


پشته انتقال

اتصالات نزدیک به صورت داخلی چندین رسانه را مدیریت می‌کند:

رسانه استفاده برای کنترل توسط
BLE کشف، بارهای کوچک GMS
Wi-Fi Direct انتقال داده بزرگ GMS
WiFi Aware کشف سریع (اگر در دسترس) GMS
بلوتوث کلاسیک جایگزین GMS

Mycel کنترل نمی‌کند کدام رسانه استفاده شود - Google Play Services این تصمیمات را به طور خودکار بر اساس این موارد می‌گیرد:

  • قابلیت‌های دستگاه
  • قدرت سیگنال
  • وضعیت توان
  • اندازه داده

سیستم خودترمیمی

Mycel شامل مکانیزم‌های بازیابی خودکار است:

نگهبان

یک نگهبان پس‌زمینه سلامت اتصال را نظارت می‌کند:

بررسی فاصله عمل
توقف کشف ۳۰ ثانیه راه‌اندازی مجدد کشف
تایم‌اوت اتصال ۶۰ ثانیه تلاش برای اتصال مجدد
سلامت جلسه مداوم پاکسازی جلسات مرده

تشدید بازیابی

وقتی اتصالات ناموفق می‌شوند، Mycel از سطوح بازیابی عبور می‌کند:

  1. تلاش مجدد صف - تلاش مجدد انتقال‌های در انتظار
  2. پرش اتصال - قطع و اتصال مجدد
  3. تغییر بلوتوث - بازنشانی وضعیت بلوتوث
  4. راه‌اندازی مجدد سرویس - راه‌اندازی مجدد سرویس مش
  5. راه‌اندازی مجدد دستگاه - درخواست از کاربر (آخرین راه‌حل)

ردیابی همتا

Mycel یک دایرکتوری از همتایان کشف‌شده نگه می‌دارد:

  • ردیابی زمان‌های آخرین دیده شدن
  • نگهداری تاریخچه ۱ ساعته
  • اولویت دادن به همتایان اخیراً دیده شده برای اتصال مجدد

محدودیت‌های شناخته‌شده

وابستگی به GMS

Mycel به Google Play Services نیاز دارد. بدون آن:

  • API اتصالات نزدیک در دسترس نیست
  • برنامه نمی‌تواند کار کند
  • این بر ROM‌های سفارشی و برخی دستگاه‌های چینی تأثیر می‌گذارد

کشف پس‌زمینه

اندروید اسکن بلوتوث را در پس‌زمینه محدود می‌کند:

  • کد خطای 8034 ممکن است ظاهر شود
  • با سرویس پیش‌زمینه کاهش یافته
  • بهینه‌سازی باتری می‌تواند تداخل کند

پایداری چند دستگاه

مشکل شناخته‌شده فعلی:

  • اتصالات ۲ دستگاه: پایدار
  • اتصالات ۳+ دستگاه: می‌تواند ناپایدار باشد
  • در حال کار فعال روی آن

انتقال‌های جایگزین

BLE مستقل (غیرفعال)

Mycel قبلاً یک پیاده‌سازی BLE مستقل با استفاده از این موارد داشت:

  • L2CAP (API 29+) برای کانال‌های اتصال‌گرا
  • GATT برای پشتیبانی دستگاه‌های قدیمی

این به دلیل مشکلات خرابی پشته بلوتوث غیرفعال شد. اتصالات نزدیک در حال حاضر تنها انتقال محلی است.

WiFi Aware

WiFi Aware (NAN - شبکه آگاهی همسایه) برد و توان عملیاتی برتر نسبت به BLE ارائه می‌دهد:

ویژگی WiFi Aware BLE
برد ۵۰-۱۰۰ متر داخلی ۱۰-۳۰ متر معمول
توان عملیاتی ۱۰۰-۲۵۰+ Mbps ۱-۴ Mbps
توان بالاتر پایین‌تر
پشتیبانی دستگاه ~۷۰-۸۰٪ اندرویدهای مدرن تقریباً همگانی

اتصالات نزدیک به طور خودکار از WiFi Aware استفاده می‌کند وقتی هر دو دستگاه پشتیبانی کنند. نیازی به پیاده‌سازی اضافی نیست - گوگل انتخاب انتقال را به صورت داخلی مدیریت می‌کند.

یافته تحقیقاتی (ژانویه ۲۰۲۶)

پیاده‌سازی مستقل WiFi Aware ارزیابی شد و غیرضروری تشخیص داده شد. نزدیک از قبل انتخاب انتقال بهینه ارائه می‌دهد.


رفع اشکال

تشخیص‌ها

وضعیت نزدیک را در برنامه بررسی کنید:

  1. به تب آزمایشگاه مش بروید
  2. نزدیک را انتخاب کنید
  3. مشاهده کنید:
  4. همسایگان متصل
  5. جلسات فعال
  6. وضعیت کشف
  7. خطاهای اخیر

ابزارهای توسعه‌دهنده

با استفاده از CLI پل:

# تشخیص کامل
meshctl --serial DEVICE nearby diag

# وضعیت جلسات
meshctl --serial DEVICE nearby sessions

# وضعیت نگهبان
meshctl --serial DEVICE nearby watchdog

# اطلاعات کشف
meshctl --serial DEVICE nearby discovery

جهت‌گیری‌های آینده

ادغام LoRa

انتقال رادیویی برد بلند تحقیق و به عنوان امکان‌پذیر تأیید شده است:

  • ادغام از طریق اکوسیستم Meshtastic (مسیر پیشنهادی)
  • برد ۱-۱۵ کیلومتر با سخت‌افزار خارجی (۲۰-۴۰ دلار)
  • پهنای باند کم (~۳۶-۷۰۰ بایت/ثانیه بسته به تنظیمات)

انتقال LoRa را برای جزئیات کامل ببینید.

انتقال BLE خالص

فعال‌سازی مجدد BLE مستقل (خارج از نزدیک) ممکن است پس از رفع مشکلات پشته بلوتوث:

  • کاهش وابستگی به GMS
  • کنترل بهتر روی پارامترهای اتصال
  • مفید برای موارد استفاده خاص

همچنین ببینید: نمای کلی انتقال‌ها | انتقال Nostr