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

توجه: برای آشنایی کامل تر با شبکه های کامپیوتری و آمادگی برای برنامه نویسی شبکه، مطالب بخش آموزش شبکه را مطالعه کنید . در بخش آموزش شبکه به شرح مفاهیم پایه شبکه ، لایه های مدل مرجع OSI و پروتکل های مختلف مرتبط با شبکه پرداخته شده است.

در این جلسه به توضیح چگونگی عملکرد و دستورات پروتکل هاي مهم ارتباطی که در سطح وسیع برروي شبکه جهانی اینترنت و شبکه هاي بر مبناي مدل IP/TCP استفاده می شوند می پردازیم.

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

سوکت(Socket ) چیست؟

با یک بیان ساده می توان گفت که سوکت به ترکیب یک آدرس ماشین (IP) و یک شماره درگاه (Port)گفته می شود. در این تعریف اصطلاحاتی وجود دارد که ممکن است معناي آن را به درستی درك نکنید ولی در ادامه همین فصل به طور کامل با این مفاهیم آشنا خواهید شد.

در برقراري ارتباط بین کامپیوتر ها در یک شبکه دو چیز بسیار مهم است:

1 – آدرس ماشینی که می خواهیم اطلاعاتی از ان بگیریم یا به آن ارسال کنیم

2-  برنامه اي از آن ماشین که در خواست اطلاعات کرده یا اینکه می خواهیم اطلاعاتی از آن برنامه کسب کنیم

این دو یعنی آدرس ماشین و شماره برنامه به وسیله سوکت در شبکه مشخص می شوند.

سوکت های برکلی

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

WinSock چیست؟

WinSock یا Socket Windows یک واسط ( InterFace ) برنامه نویسی است که در غالب یکLibrary Link Dynamic   یا DLL  در سیستم عامل ویندوز براي برنامه نویسی شبکه و ساخت برنامه هایی که بتوانند با شبکه محاوره داشته باشند معرفی شده است از آنجایی که این کتابخانه به صورت استاندارد جهانی ساخت برنامه هاي شبکه ، ساخته شده است بنابرین در این کتاب مبناي آموزش بر روي این رویه ( WinSock ) قرار داده شده است.

اگر چه آموزش هاي این کتاب فقط بر مبناي سیستم عامل ویندوز نیست و برنامه هاي این کتاب و آموزش هاي آن شامل سیستم عامل هاي خانواده یونیکس و لینوکس نیز می باشد اما به دلیل مشترك بودن توابع موجود در این DLL و هدرهاي دیگر مبناي آموزش بر روي این DLL تمرکز دارد.

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

لایه ها

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

در این الگو وظایف مرتبط با هم بر عهده یک بخش گزارده شده است و هر بخش تشکیل یک لایه مجزا را داده است. لایه ها در این مدل به صورت پشته بر روي هم گذاشته شده اند و هر لایه فقط می تواند با لایه هاي مجاور خود در ارتباط باشند.

تعریف پروتکل

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

  • درخواست سرویس (Request)
  • اقدام لازم براي انجام سرویس (Introduction()
  • ارسال پاسخ سرویس (Response)
  • قبول درخواست (Confirm)

 

 انواع ارتباط لایه هاي متناظر در دو کامپیوتر

ارتباط مابین دو کامپیوتر می تواند به یکی از دو صورت زیر باشد:

  • اتصال گرا (Connection Oriented)
  • غیر اتصال گرا(Connection Less)

در سیستم اتصال گرا ابتدا درخواست اتصال ارسال شده و در صورت موافقت طرف مقابل ارتباط برقرار می شود ( مثل چیزي که در سیستم تلفن وجود دارد ) به این سیستم Stream Data نیز گفته می شود. اما در سیستم غیر اتصال گرا بدون نیاز به موافقت طرف مقابل بسته ها ارسال می شوند ( مانند سیستم پست) به این سیستم Datagram می گویند.