06-05-2021, 01:36 PM
قبل از هر چیز باید بدانیم که این سیستم عامل برنامه ها نیستند که بایکدیگر صحبت می کنند بلکه این پردازش ها(Processes) هستند که عمل ارتباط با یکدیگر را انجام میدهند.به طور کلی پردازش ها برنامه هایی هستند که درون و بین یک سیستم انتهایی در حال اجرا و پردازش هستند و هنگامی که بر روی یک سیستم در حال اجرا می باشند آنها میتوانند با یکدیگر و با دیگر پردازش های ما بین خود ارتباط برقرار کنند و ارتباط این پردازش ها از طریق مبادله پیام می باشد. در طی یک فرآیند ارتباطی بین یک جفت پردازش آن پردازشی که پیش قدم در ارتباط است را پردازش Client(سرویس گیرنده) و پردازشی را که در حال انتظار جهت اتصال و آغاز فرآیند مبادله و ارتباط است را پردازش Server(سرویس دهنده) می گویند. یک پردازشگر پیام های ارسالی و یا دریافتی خود را از طریق یک نرم افزار واسط شبکه که اصطلاحا به آن سوکت گفته میشود از درون شبکه عبور می دهند.برای فهم بهتر این قضیه پردازش ها را همانند یک خانه در نظر بگیرید و سوکت را درب ورودی خانه، هنگامی که یک پردازشگر می خواهد پیامی را به سوی پردازشگر دیگری ارسال کند پیام های خود را از طریق درب ورودی و خروجی خانه(سوکت) خارج میکند و هنگامی که پیام وارد سیستم انتهایی مقصد میشود پیام از درون سوکت پردازش تحویل گرفته میشود. چندین نوع سوکت داریم که دو نوع آن بیشتر دارای اهمیت می باشد نوع اول سوکت های Stream که مبتنی بر پروتکل TCP کار میکنند که به Connection Oriented معروفند یعنی قبل ازمبادله داده ها باید یک اتصال مطمئن برقرار شود که داده ها با یک نظم و ترتیب خاصی ارسال و دریافت شوند و تضمینی برای رسیدن داده ها به مقصد وجود داشته باشد از این نوع سوکت برای ارتباط پروتکل هایی همانند FTPو HTTP ,SMTP استفاده میشود. نوع دوم سوکت های Datagram هستند که مبتنی بر پروتکل UDP کار میکنند که بهConnection less معروف هستند یعنی قبل از مبادله داده هیچ ارتباطی برقرار نمی شود و فقط سرعت در این ارتباط ملاک می باشد و تضمینی برای رسیدن داده ها ،صحت داده ها و ترتیب داده وجود ندارد. از این نوع بیشتر برای انتقال صدا و تصویر استفاده میشود.