مرور اجمالی از برنامه نویسی سوکت برای شبکه های کامپیوتری

یک سوکت یکی از اساسی ترین فن آوری های برنامه نویسی شبکه کامپیوتری است. سوکتها اجازه می دهد برنامه های کاربردی نرم افزارهای شبکه با استفاده از سازوکارهای استاندارد ساخته شده در سخت افزار شبکه و سیستم عامل ارتباط برقرار کنند.

اگر چه ممکن است فقط یکی دیگر از ویژگی های توسعه نرم افزار اینترنت باشد، فناوری سوکت به مدت طولانی قبل از وب وجود داشته است. و بسیاری از برنامه های محبوب نرم افزار شبکه امروز، بر روی سوکت ها تکیه می کنند.

چه سوکت ها می توانند برای شبکه شما انجام دهند

یک سوکت نشان دهنده یک اتصال واحد بین دقیق دو قطعه نرم افزار (اتصال به اصطلاح نقطه به نقطه ) است. بیش از دو قطعه نرم افزار می توانند با استفاده از چندین سوکت با سرویس گیرنده / سرور یا سیستم های توزیع شده ارتباط برقرار کنند. به عنوان مثال، بسیاری از مرورگرهای وب می توانند به طور همزمان با یک سرور وب واحد از طریق یک گروه از سوکت های ساخته شده روی سرور ارتباط برقرار کنند.

نرم افزار مبتنی بر سوکت معمولا بر روی دو کامپیوتر جداگانه در شبکه اجرا می شود، اما سوکت ها نیز می توانند برای ارتباط به صورت محلی ( اینتر پروسس ) در یک کامپیوتر واحد استفاده شوند. سوکت دو طرفه است ، به این معنی که هر دو طرف از اتصال می توانند هر دو فرستادن و دریافت داده ها را داشته باشند. گاهی اوقات یک برنامه کاربردی که ارتباط برقرار می کند، "مشتری" و برنامه دیگری "سرور" نامیده می شود، اما این اصطلاحات منجر به سردرگمی در همتراز سازی شبکه می شود و به طور کلی باید اجتناب شود.

API های سوکت و کتابخانه ها

چندین کتابخانه ای که رابط برنامه نویسی نرم افزار استاندارد را اجرا می کنند (API ها) در اینترنت وجود دارد. اولین بسته اصلی - کتابخانه سوکت Berkeley هنوز در سیستم های یونیکس به طور گسترده ای استفاده می شود. یکی دیگر از API های بسیار رایج، کتابخانه Windows Sockets (WinSock) برای سیستم عامل های مایکروسافت است. API های سوکت نسبت به سایر فناوری های کامپیوتری کاملا بالغ شده اند: WinSock از سال 1993 و سوکت های برکلی از سال 1982 استفاده شده است.

API های سوکت نسبتا کوچک و ساده هستند. بسیاری از توابع شبیه به آنهایی هستند که در دستورات ورودی / خروجی فایل مانند read () ، write () و close () . عملکرد واقعی تماس برای استفاده بستگی به زبان برنامه نویسی و سوکت کتابخانه انتخاب شده است.

انواع رابط سوکت

رابط های سوکت را می توان به سه دسته تقسیم کرد:

  • سوکت های جریان ، شایع ترین نوع، نیازمند این است که دو طرف ارتباط دهنده ابتدا یک اتصال سوکت ایجاد کنند، پس از آن هرگونه داده ای که از طریق آن اتصال انجام می شود، تضمین می شود که به همان ترتیبی که فرستاده می شود، وارد شود - به اصطلاح برنامه نویسی اتصال مدل.
  • سوکت های دیتاگرام معناشناسی "ارتباط کمتر" را ارائه می دهند. با datagrams، اتصالات به جای جریان صحیح به صورت ضمنی هستند. هر دو طرف به سادگی datagram ها را به عنوان مورد نیاز ارسال می کنند و منتظر پاسخ دیگران می باشند. پیام ها می توانند در انتقال از دست رفته یا دریافت نشده از نظم، اما مسئولیت برنامه و نه سوکت برای مقابله با این مشکلات است. پیاده سازی سوکت های دیتاگرام می تواند برخی از برنامه های کاربردی افزایش عملکرد و انعطاف پذیری بیشتری نسبت به استفاده از سوکت های جریان را به همراه داشته باشد، و توجیه استفاده آنها در بعضی از شرایط را دارد.
  • نوع سوم سوکت - سوکت خام - از پشتیبانی داخلی ساخته شده در کتابخانه برای پروتکل های استاندارد مانند TCP و UDP جلوگیری می کند . سوکت های خام برای توسعه پروتکل سطح پایین سفارشی استفاده می شود.

پشتیبانی سوکت در پروتکل های شبکه

سوکت های شبکه مدرن به طور معمول در ارتباط با پروتکل های اینترنت - IP، TCP و UDP استفاده می شود. کتابخانه ها که سوکت را برای پروتکل اینترنت اجرا می کنند از TCP برای جریان استفاده می کند، UDP برای datagrams و خود IP برای سوکت های خام.

برای برقراری ارتباط در اینترنت، کتابخانه های سوکت IP از آدرس IP برای شناسایی کامپیوترهای خاص استفاده می کنند. بسیاری از بخش های اینترنت با خدمات نامگذاری کار می کنند، به طوری که کاربران و برنامه نویسان سوکت می توانند با نام رایانه ( به عنوان مثال "thiscomputer.wireless.about.com") به جای آدرس ( به عنوان مثال ، 208.185.127.40) با کامپیوتر کار کنند. سوکت های جریان و دیتاگرام همچنین از شماره های پورت IP برای تشخیص برنامه های متعدد از یکدیگر استفاده می کنند. به عنوان مثال، مرورگرهای وب در اینترنت می دانند که پورت 80 را به عنوان پیش فرض برای ارتباطات سوکت با سرورهای وب استفاده می کنند.