IWARP
iWARP یک پروتکل شبکه کامپیوتری است که دسترسی مستقیم به حافظه از راه دور (RDMA) را برای انتقال بهینه داده‌ها از طریق شبکه‌های پروتکل اینترنتی پیاده‌سازی می‌کند. برخلاف ادعای برخی منابع، iWARP مخفف واژه خاصی نیست.
از آنجایی که iWARP بر روی پروتکل‌های مسیریابی آگاه از ازدحام استاندارد کارگروه مهندسی اینترنت (IETF) مانند پروتکل کنترل انتقال (TCP) و پروتکل انتقال کنترل جریان (SCTP) لایه‌بندی شده است، نیاز به ملزومات کمی دارد و می‌تواند با موفقیت در طیف وسیعی از محیط‌ها به کار گرفته شود.
در سال ۲۰۰۷، IETF پنج درخواست نظر (RFC) را منتشر کرد که iWARP را چنین تعریف می‌کردند:این RFCها برمبنای جزئیات کنسرسیوم RDMA برای RDMA روی TCP هستند. جزئیات کنسرسیوم RDMA از استانداردهای قبلی RDMA، از جمله معماری رابط مجازی (VIA) و اینفینی‌باند (IB) قرار دارد تاثیر گرفته است.
از سال ۲۰۰۷، IETF سه RFC دیگر منتشر کرده است که iWARP را حفظ و گسترش می‌دهند:مؤلفه اصلی در پروتکل iWARP، پروتکل جایگذاری مستقیم داده (DDP) است که امکان انتقال بدون کپی را فراهم می‌کند. DDP خود انتقال را انجام نمی‌دهد، بلکه پروتکل مبنا (TCP یا SCTP) این انتقال را انجام می‌دهد.
با این حال، TCP حریم پیام‌ها را نقض می‌کند و داده‌ها را به صورت دنباله‌ای از بایت‌ها بدون توجه به پروتکل واحدهای داده (PDU) ارسال می‌کند. در این رابطه، خود DDP ممکن است برای SCTP مناسب‌تر باشد، و از این رو IETF یک RDMA استاندارد را بر روی SCTP پیشنهاد کرده است. برای اجرای DDP روی TCP نیاز به ایجاد تغییری است که به عنوان marker PDU aligned (MPA) شناخته می‌شود تا مرزهای پیام‌ها را تضمین کند.
علاوه بر این، DDP برای دسترسی مستقیم در نظر گرفته نشده است، بلکه یک پروتکل RDMA جداگانه (RDMAP) خدمات خواندن و نوشتن داده‌ها را فراهم می‌کند. بنابراین، کل جزئیات RDMA روی TCP در واقع RDMAP روی DDP بر روی MPA/TCP یا SCTP است. تمامی این پروتکل‌ها به قابل پیاده‌سازی به شکل سخت‌افزاری هستند.
برخلاف iWARP، IB فقط ارتباطات متصل قابل اعتماد دارد چراکه این تنها سرویسی است که TCP و SCTP ارائه می‌کنند. مشخصات iWARP سایر ویژگی‌های IB مانند عملیات‌های Send with Immediate Data را حذف می‌کند. به واسطهRFC 7306 IETF در تلاش است تا این حذفیات را کاهش دهد.
از آنجا که پیاده‌سازی کرنلی پشته TCP می‌تواند به عنوان یک گلوگاه دیده شود، این پروتکل معمولاً در کنترلرهای رابط شبکه RDMA سخت‌افزاری (rNIC) پیاده‌سازی می شود. از آنجایی که از دست دادن داده‌های ساده در محیط‌های شبکه‌ای زوج شده محکم نادر است، مکانیسم‌های تصحیح خطای TCP ممکن است توسط نرم‌افزار انجام شود، در حالی که ارتباطاتی که اغلب انجام می‌شوند کاملاً توسط منطق تعبیه‌شده در rNIC مدیریت می‌شوند. به طور مشابه، ارتباطات اغلب به طور کامل توسط نرم افزار برقرار شده و سپس به سخت‌افزار واگذار می‌شوند. علاوه بر این، رسیدگی به جزئیات پروتکل خاص iWARP غالباً از پیاده سازی TCP مجزاست و rNICها را قادر می‌کند که هم به عنوان تخلیه RDMA و هم تخلیه TCP (در پشتیبانی از برنامه‌های کاربردی TCP/IP مبتنی بر سوکت‌های سنتی) استفاده شوند. قسمتی از پیاده‌سازی سخت‌افزاری که برای پیاده سازی پروتکل TCP استفاده می‌شود به عنوان موتور بارگذاری جانبی TCP(TOE) شناخته می‌شود.
خود TOE از کپی در سمت دریافت جلوگیری نمی‌کند و باید با سخت‌افزار RDMA ترکیب شده تا نتایج بدون کپی حاصل شود. مشخصات RDMA / TCP مجموعه‌ای از پروتکل‌های سیمی گوناگون است که برای پیاده‌سازی در سخت‌افزار در نظر گرفته شده است (اگرچه به نظر می‌رسد شبیه‌سازی نرم‌افزاری آن در جهت سازگاری اما بدون مزایای عملکردی امکان‌پذیر است).
iWARP یک پروتکل است، نه یک پیاده سازی، اما رفتار پروتکل را بر حسب عملیات قانونی برای پروتکل که به عنوان افعال(Verbs) شناخته می شود تعریف می‌کند. به این ترتیب، iWARP هیچ رابط برنامه‌نویسی استاندارد واحدی ندارد. با این حال، رابط های برنامه نویسی مطابقت بسیار نزدیک با افعال دارند.
چندین رابط برنامه نویسی پیشنهاد شده است که از جمله آنها می‌توان OpenFabrics Verbs، Network Direct، uDAPL، kDAPL، IT-API و RNICPI را نام برد. پیاده‌سازی برخی از این رابط‌ها برای پلتفرم‌های مختلف از جمله ویندوز و لینوکس موجود هستند.
سرویس‌های شبکه‌ای پیاده‌سازی شده روی iWARP شامل مواردی است که در OpenFabrics Enterprise Distribution (OFED) توسط OpenFabrics Alliance برای سیستم‌های عامل لینوکس و توسط Microsoft Windows از طریق Network Direct ارائه شده‌اند.تعدادی از فروشندگان مشهور تجهیزات مجهز به iWarp عبارتند از: