پروتکل سوکت های مستقیم
پروتکل مستقیم سوکت (SDP) پروتکلی است که از قید و بند پروتکلهای حمل و نقل رها بوده و به منظور پشتیبانی از سوکتهای استریم (جریان) روی شبکههای با دسترسی مستقیم به حافظه از راه دور (RDMA) طراحی شده است. SDP در ابتدا توسط گروه کاری نرم افزار (SWG) انجمن تجارت InfiniBand تعریف شد. اگرچه SDP به طور خاص برای InfiniBand (IB) طراحی شده بود، [1] اما در حال حاضر توسط OpenFabrics Alliance نگهداری میشود.
پروتکل ویرایش
SDP یک پروتکل سیم پروتکل استاندارد را بر روی یک بافت RDMA تعریف میکند تا از سوکتهای جریانی (SOCK_STREAM) پشتیبانی کند. SDP از ویژگیهای مختلف شبکه RDMA برای انتقال دادههای بدون کپی با عملکرد بالا استفاده میکند. SDP یک مشخصه سطح سیمپروتکل خالص است و به جزئیات هیچ API یا پیادهسازی سوکتی نمیپردازد.
هدف از پروتکل مستقیم سوکتها (SDP) ارائه یک جایگزین شتاببخش RDMA برای پروتکل TCP روی پروتکل IP است. این هدف به گونهای است که برای برنامهها شفاف باشد.
سولاریس ۱۰ و سولاریس ۱۱ اکسپرس از SDP پشتیبانی می کنند. چندین نسخه دیگر از سیستم عامل یونیکس نیز قصد دارند از پروتکل سوکت مستقیم پشتیبانی کنند. ویندوز زیرسیستم به نام Winsock Direct را ارائه می دهد که می تواند برای پشتیبانی از SDP استفاده شود. [۱]
پشتیبانی از SDP برای برنامههای کاربردی مستقر در سیستمعاملهای Solaris و Linux (OFED 1.4.2 و 1.5) در نسخه ۷ JDK پلتفرم جاوا، نسخه استاندارد (جولای ۲۰۱۱) معرفی شد. پایگاه داده اوراکل ۱۱g از اتصال روی SDP پشتیبانی میکند.[۱][۲]
پروتکل مستقیم سوکت (SDP) تنها با سوکت های استریم (جریان) کار می کند و در صورت نصب در سیستم، از پشته TCP سیستم عامل برای برقراری ارتباط استریم بین هر نقطه پایانی روی fabric RDMA صرف نظر می کند. سایر انواع سوکت (مانند دیتاگرام، خام، بسته و غیره) توسط پشته IP لینوکس پشتیبانی می شوند و روی رابط های IP استاندارد (یعنی IPoIB روی fabric های InfiniBand) عمل می کنند. پشته IP هیچ وابستگی به پشته SDP ندارد، با این حال پشته SDP برای انتساب IP محلی و تفکیک آدرس IP برای شناسایی نقاط نهایی به درایورهای IP وابسته است.
شرکت مخابراتی استرالیا، تلstra، از پروتکل SDP روی پلتفرم ۳G خود به نام Next G برای ارائه تلویزیون همراه به صورت استریم استفاده می کند.
این پروتکل در آخرین نسخههای OFED منسوخ شده [۱] یا پشتیبانی نمیشود، بنابراین به دنبال جایگزینهایی باشید. احتمالا جایگزینهای مناسب RSocket یا Winsock و غیره باشند.