سوکت شبکه

**پریز شبکه** یا **کانال شبکه** یا **سوکت شبکه** (به انگلیسی: Network socket تلفظ ˈsäkit)، نقطه پایانی جریان ترافیک ارتباطات بین پردازشی در تمام طول یک شبکه رایانه‌ای است. امروزه، بیشترین ارتباطات بین رایانه‌ها بر پایه پروتکل اینترنت می‌باشند، بنابراین بیشترین کانالهای شبکه، **کانالهای اینترنت** هستند. کیستون نیز یک نوع خروجی برای اتصال رایانه با شبکه است.

پریزهای شبکه دو نوع است: پریز شبکه روکار و پریز شبکه توکار. پریزهای شبکه شکل‌های مختلفی دارند و در اندازه و ابعاد مختلف و در مکانهای خاص خود مورد استفاده قرار می‌گیرند. پریز شبکه و کامپیوتر با کابل‌های شبکه و لن به هم متصل می‌شوند.

یک کانال رابط برنامه‌نویسی نرم‌افزار (به انگلیسی: Socket Application Programming interface یا Socket API)، که اجازه می‌دهد یک برنامه کاربردی کانالهای شبکه را استفاده و مدیریت نماید، معمولاً توسط سیستم عامل ارائه می‌گردد. کانالهای اینترنت **رابط برنامه‌نویسی نرم‌افزار** معمولاً براساس استاندارد کانال برکلی (به انگلیسی: Berkeley sockets) هستند.

یک **نشانی کانال** ترکیبی از نشانی پروتکل اینترنت (IP) و شماره درگاه (Port Numebr) است، و بسیار شبیه به یک شماره تماس تلفنی است که ترکیبی از پیش شماره تماس و یک شماره داخلی که به پیش شماره افزوده گردیده است. بر پایه این نشانی، کانالهای اینترنت، بسته‌های اطلاعات دریافتی را به برنامه‌های کاربردی مرتبط یا پردازش و ریسه مناسب تحویل می‌دهند.

## انواع سوکت‌ها
اگر بخواهیم از نظر اهمیت انواع سوکت را معرفی کنیم دو نوع سوکت بیشتر وجود ندارد.(انواع دیگری هم هستند ولی کم اهمیت ترند). این دو نوع سوکت عبارتند از:
* سوکت‌های نوع استریم که سوکت‌های اتصال گرا (connection oriented) نامیده می‌شود.
* سوکت‌های نوع دیتاگرام که سوکت‌های بدون اتصال (connectionless) نامیده می‌شوند.

سوکت یک مفهوم انتزاعی از تعریف ارتباط در سطح برنامه‌نویسی است و برنامه‌نویس با تعریف سوکت عملا تمایل خود را برای مبادله داده‌ها به سیستم عامل اعلام کرده و بدون درگیر شدن با جزئیات پروتکل TCP یا UDP از سیستم عامل می‌خواهد تا فضا و منابع مورد نیاز را جهت برقراری یک ارتباط، ایجاد کند.
منظور از این جمله که "**سوکت یک مفهوم انتزاعی است**" آن است که چیزی به نام سوکت وجود خارجی ندارد، بلکه سیستم عامل آن را تجسم بخشیده است!

## سوکت‌های نوع استریم
روش ارسال برای سوکت‌های نوع استریم همان روش TCP است و بنابراین داده‌ها با رعایت ترتیب، با اطمینان صد در صد و با نظارت کافی بر خطاهای احتمالی مبادله می‌شوند. به عنوان مثال پروتکل انتقال فایل (FTP)، پروتکل انتقال صفحات ابرمتن (HTTP) یا پروتکل انتقال نامه‌های الکترونیکی (SMTP) همگی نیازمند برقراری یک ارتباط مطمئن و عاری از خطا هستند و طبعا از سوکت‌های **نوع استریم** بهره می‌برند.
سوکت‌های **نوع استریم** دقیقا بر روی پروتکل TCP بوده و طبیعتا قبل از مبادله داده‌ها باید یک اتصال به روش دست تکانی سه مرحله‌ای (Three Way Handshake) بین دو پروسهٔ نهایی برقرار بشود.

## سوکت‌های نوع دیتاگرام
سوکت نوع دیتاگرام نامطمئن است و هیچ‌گونه تضمینی در ترتیب جریان داده‌ها وجود ندارد. سوکت نوع دیتاگرام مبتنی بر پروتکل UDP است و بدون نیاز به برقراری هیچ ارتباط یا اتصال، داده‌ها مبادله می‌شوند و بنابراین تضمینی در رسیدن داده‌ها، صحت داده‌ها و حفظ ترتیب داده‌ها وجود ندارد ولی با تمام این مشکلات باز هم در برخی از کاربردها مثل انتقال صدا و تصویر مورد استفاده قرار می‌گیرد. تنها حُسن استفاده از سوکت‌های دیتاگرام، سرعت تحویل داده‌ها است.

## سوکت در شبکه
سوکت ترکیبی از پورت و IP آدرس است. به تعبیر تخصصی تر، سوکت نقطه انتهایی یک ارتباط دو طرفه بین دو برنامه در حال اجرا در شبکه است. سوکت به یک عدد پورت متصل می شود تا لایه TCP شبکه بتواند برنامه موردنظر برای ارسال اطلاعات را تشخیص دهد. از طریق کانال ارتباطی ایجاد شده توسط سوکت، داده هایی در طول شبکه ارسال و دریافت میشوند. زبانی که دو برنامه به وسیله آن از این کانال با هم مکاتبه میکنند نیز پروتکل نام دارد.

## جستارهای وابسته
* مجموعه پروتکل اینترنت
* بسته (فناوری اطلاعات)
* فهرست عددهای درگاه تی‌سی‌پی و یودی‌پی
* سوکت‌های برکلی

## منابع

اصول مهندسی اینترنت دکتر احسان ملکیان، ویراست دوم، چاپ سی و نهم

رده:ارتباطات بین پردازشی
رده:پروتکل‌های اینترنت
رده:پروتکل‌های لایه‌ای شبکه
رده:سوکت شبکه
رده:شبکه‌های رایانه‌ای
رده:معماری اینترنت