برنامهنویسی شبکه رایانهای شامل نوشتن برنامههای رایانهای است که پردازشها را قادر میسازد با یکدیگر در یک شبکه رایانه ارتباط برقرار کنند.[۱]
بهطور کلی، بسیاری از ارتباطات را میتوان به اتصال-محور و غیر اتصالگرا تقسیم کرد. این که آیا ارتباطات ارتباطی اتصال-محور است یا بدون اتصال، توسط پروتکل ارتباطات تعریف می شود، و نه توسط رابطهای کاربری برنامه(API). نمونههایی از پروتکلهای اتصال گرا شامل پروتکل انتقال کنترل شده(TCP) و تبادل ترتیبی بسته ها(SPX) هستند و نمونههایی از پروتکلهای بدون اتصال شامل پروتکل استفاده کنندهٔ دیتاگرام(UDP) , پروتکل IP خام و پروتکل تبادل بستهٔ میان شبکه ای (IPX) هستند.
برای ارتباطات اتصال-محور، طرفین ارتباطات معمولاً نقشهای متفاوتی دارند. یک طرف معمولاً منتظر اتصالات ورودی است. به این بخش معمولاً " سرور " گفته میشود. طرف دیگر شروع کننده ارتباط است. به این بخش معمولاً " مشتری " گفته میشود.
برای ارتباطات بیسیم، معمولاً یک طرف ("سرور") منتظر یک بسته دریافتی است، و طرف دیگر ("مشتری") معمولاً به عنوان یک فرستنده که یک بسته را بهصورت غیرمستقیم (هدایت نشده) به "سرور" ارسال میکند، شناخته میشود میشود.
برنامهنویسی شبکه بهطور سنتی لایههای مختلف مدل OSI / ISO را در بر میگیرد (بیشتر برنامهنویسی در سطح برنامه متعلق به L4 و بالاتر است). جدول زیر شامل نمونههایی از پروتکلهای محبوب متعلق به لایههای مختلف OSI / ISO و APIهای محبوب برای آنها میباشد.
لایه OSI / ISO | پروتکل | API |
---|---|---|
L3 (شبکه) | IP | سوکت خام |
L4 (حمل و نقل) | TCP، UDP، SCTP | سوکتهای برکلی |
L5 (جلسه) | TLS | OpenSSL |
L7 (برنامه) | HTTP | مختلف |
Network Programming involves writing programs that communicate with other programs across a computer network.
{{cite book}}
: نگهداری یادکرد:ربات:وضعیت نامعلوم پیوند اصلی (link)