اترنت از طریق USB

الگو:توضیح کوتاه الگو:بیشتر نیازمند منابع اترنت از طریق USB استفاده از یک اتصال USB به عنوان بخشی از یک شبکه اترنت است، که منجر به یک اتصال اترنت از طریق USB (به جای مثلاً PCI یا PCIe) می‌شود.

USB از طریق اترنت (که به آن USB از طریق شبکه یا USB از طریق IP نیز گفته می‌شود) سیستمی برای به اشتراک گذاری دستگاه‌های مبتنی بر USB از طریق اترنت، وای‌فای، یا اینترنت است که امکان دسترسی به دستگاه‌ها را از طریق یک شبکه فراهم می‌کند. این کار می‌تواند از طریق چندین دستگاه شبکه با استفاده از هاب‌های USB از طریق اترنت انجام شود.

پروتکل‌ها

[ویرایش]

پروتکل‌های متعددی برای شبکه‌سازی به سبک اترنت از طریق USB وجود دارد. استفاده از این پروتکل‌ها به منظور تبادل داده‌ها با دستگاه‌های USB به صورت مستقل از برنامه‌های خاص است، به جای پروتکل‌های تخصصی مانند ویدیو یا MTP (پروتکل انتقال مدیا). حتی اگر USB یک اترنت فیزیکی نباشد، پشته‌های شبکه‌ای همه سیستم‌عامل‌های بزرگ برای انتقال قاب‌های IEEE 802.3 تنظیم شده‌اند، بدون نیاز به یک حمل‌ونقل خاص زیرین.

پروتکل‌های اصلی صنعتی عبارتند از Remote NDIS (RNDIS، پروتکل فروشنده مایکروسافت)، مدل کنترل اترنت (ECM)، مدل شبیه‌سازی اترنت (EEM)، و مدل کنترل شبکه (NCM). سه مورد آخر بخشی از گروه بزرگتر پروتکل‌های کلاس دستگاه‌های ارتباطی (CDC) انجمن مجری‌های USB (USB-IF) هستند. آنها برای دانلود از USB-IF در دسترس هستند (به پیوند زیر مراجعه کنید). مشخصات RNDIS از وب‌سایت مایکروسافت در دسترس است. در مورد استانداردهای de facto، برخی استانداردها مانند ECM، استفاده از منابع USB را که سیستم‌های اولیه ندارند، مشخص می‌کنند. با این حال، تغییرات جزئی در زیرمجموعه‌های استاندارد امکان پیاده‌سازی عملی در چنین پلتفرم‌هایی را فراهم می‌کند. قابل توجه است که حتی برخی از مدرن‌ترین پلتفرم‌ها به تغییرات جزئی نیاز دارند و بنابراین پشتیبانی از این زیرمجموعه‌ها همچنان مورد نیاز است.

از این پروتکل‌ها، ECM را می‌توان به‌عنوان ساده‌ترین طبقه‌بندی کرد - قاب‌ها به سادگی بدون تغییر یکی یکی ارسال و دریافت می‌شوند. این استراتژی برای سیستم‌های USB 1.1 (فعلی در زمان انتشار پروتکل) با بسته‌های 64 بایتی رضایت‌بخش بود اما برای سیستم‌های USB 2.0 که از بسته‌های 512 بایتی استفاده می‌کنند، رضایت‌بخش نیست.

یک مشکل مهم این است که قاب‌های اترنت حدود 1500 بایت اندازه دارند - حدود 3 بسته USB 2.0، و 23 بسته USB 1.1. سیستم USB به این صورت کار می‌کند که هر بسته به‌عنوان یک انتقال ارسال می‌شود، مجموعه‌ای از بسته‌های با حداکثر طول که با یک بسته کوتاه یا یک ZLP (بسته صفر طول) خاص خاتمه می‌یابد. بعد از این، تاخیر باس وجود دارد، جایی که هیچ چیز ارسال نمی‌شود تا اینکه یک انتقال دیگر بتواند آغاز شود. این امر باعث کاهش اشغال باس می‌شود، به این معنی که هیچ چیز برای بخش‌های قابل توجهی از زمان باس ارسال نمی‌شود. یک فاصله هر 23 قاب قابل توجه نیست، اما یک فاصله هر سه قاب می‌تواند بسیار پرهزینه برای کارایی در نظر گرفته شود.

از آنجا که USB سریع‌تر شده است، دستگاه‌ها از داده‌های بیشتری استفاده می‌کنند و بنابراین اکنون تقاضا برای ارسال حجم زیادی از داده‌ها وجود دارد - یا برای ذخیره‌سازی روی دستگاه یا برای انتقال از طریق لینک‌های بی‌سیم (نگاه کنید به تکامل بلند مدت 3GPP).

این دستگاه‌های جدید هنوز هم بسیار کم‌قدرت‌تر از کامپیوترهای رومیزی هستند، بنابراین مسئله مدیریت دقیق داده‌ها برای به حداکثر رساندن استفاده از منابع DMA روی دستگاه و به حداقل رساندن (یا حذف) کپی کردن داده‌ها (بدون کپی) مطرح است. پروتکل NCM دارای مفاد مفصل برای این منظور است. برای مقایسه پروتکل‌ها به پیوند زیر مراجعه کنید.

درایور خاص لینوکس

[ویرایش]

ماژول USB-eth در لینوکس، کامپیوتری که آن را اجرا می‌کند را به گونه‌ای از دستگاه اترنت تبدیل می‌کند که از USB به عنوان محیط فیزیکی استفاده می‌کند. این یک رابط شبکه‌ای لینوکس ایجاد می‌کند، که می‌تواند به آن یک آدرس IP اختصاص داد و به گونه‌ای دیگر مانند یک رابط اترنت واقعی رفتار کرد. هر برنامه‌ای که روی رابط‌های اترنت واقعی کار می‌کند بدون نیاز به اصلاحات روی رابط‌های USB-اترنت کار می‌کند، زیرا هیچ تفاوتی بین استفاده از سخت‌افزار اترنت مناسب یا نامناسب وجود ندارد.[۱][۲]

در میزبان‌های لینوکس، ماژول هسته متناظر اترنت-از طریق USB به نام usbnet است. درایور شبکه Bahia[۳] یک درایور سبک usbnet در دسترس برای میزبان‌های Win32 است.

رویکرد این اجازه را می‌دهد که دستگاه‌های دارای سخت‌افزار ارتباطی بسیار محدود بر روی شبکه‌های IP کار کنند. هسته لینوکس برای iPAQ به طور انحصاری از این استراتژی ارتباطات استفاده می‌کند زیرا سخت‌افزار iPAQ نه یک پورت سریال (RS-232/RS-422) قابل دسترسی دارد و نه یک رابط شبکه اختصاصی.

منابع

[ویرایش]

الگو:فهرست منابع

پیوند به بیرون

[ویرایش]

الگو:USB

  1. Embedded.com—Linux-based USB Devices
  2. "How to Use USB Device Networking | Linux USB Network". developer.ridgerun.com (به انگلیسی). 13 August 2018. Retrieved 2022-10-17.
  3. BND—Bahia Network Driver