سیگنال ها و پروتکل ها
کامپیوتر های موجود در یک شبکه به طرق مختلفی می توانند با همدیگر ارتباط برقرار کنند اما بخش بزرگی از این فرآیند ربطی به ماهیت داده هایی که از طریق رسانه شبکه عبور می کند ندارد . قبل از اینکه داده هایی که کامپیوتر فرستنده تولید کرده است به کابل یا نوع دیگری از رسانه برسد به سیگنال هایی که متناسب با آن رسانه می باشد تجزیه می شود.این سیگنال ها ممکن است مثلا برای سیم های مسی ولتاژهای الکتریکی برای فیبر نوری پالس های نور و در شبکه های بی سیم امواج رادیویی و مادون قرمز باشند.این سیگنال ها کدی را تشکیل می دهند که رابط شبکه هر کامپیوتر گیرنده ای ٬آنرا به داده های باینری قابل درک با نرم افزار در حال اجرای روی آن کامپیوتر تبدیل می کند .
بعضی از شبکه ها متشکل از کامپیوتر های مشابهی هستند که دارای سیستم عامل و برنامه های یکسانی می باشند در صورتی که شبکه هایی هم وجود دارند که دارای سکوهای (platform) متفاوتی هستند و نرم افزارهایی را اجرا می کنند که کاملا با یکدیگر تفاوت دارند . ممکن است اینطور به نظر آید که برقراری ارتباط بین کامپیوترهای یکسان ساده تر از بین کامپیوتر های متفاوت است و البته در بعضی از موارد این نتیجه گیری صحیح می باشد. صرفنظر از نرم افزارهایی که در یک شبکه روی کامپیوترها اجرا می شود و صرفنظر از نوع آن کامپیوترها ، باید زبان مشترکی بین آنها وجود داشته باشد تا برقراری ارتباط میسر شود . این زبان مشترک پروتکل نامیده می شود و حتی در ساده ترین نوع تبادل اطلاعات ، کامپیوترها از تعداد زیادی از آنها استفاده می کنند.در واقع همانطور که برای اینکه دو نفر بتوانند با یکدیگر صحبت کنند باید از زبان مشترکی استفاده کنند کامپیوترها هم برای تبادل اطلاعات نیاز به یک یا چند پروتکل مشترک دارند .
یک پروتکل شبکه می تواند نسبتا ساده یا کاملا پیچیده باشد .در بعضی موارد پروتکل فقط یک کد است (مثلا الگویی از ولتاژهای الکتریکی ) که مقدار دودویی یک بیت را نشان می دهد و همانطور که می دانید این مقدار می تواند 0 یا 1 باشد. پروتکل های پیچیده تر شبکه می توانند سرویس هایی را ارائه دهند که بعضی از آنها در اینجا نام برده شده است:
اعلام دریافت بسته (packet acknowledgment) :که ارسال یک پیغام از طرف گیرنده به فرستنده مبنی بر دریافت یک یا چند بسته می باشد. یک بسته جزء بنیادی اطلاعات فرستاده شده روی یک شبکه محلی (LAN) می باشد.
بخش بندی (segmentation) : که در واقع به تقسیم کردن یک جریان داده طولانی به بخش های کوچکتر می باشد به صورتی که بتوان آنرا در داخل بسته ها ، روی یک شبکه انتقال داد .
کنترل جریان (flow control) : شامل پیغام هایی می باشد که از طرف گیرنده به فرستنده مبنی بر بالا یا پایین بردن سرعت انتقال داده فرستاده می شود .
تشخیص خطا (error detection) : شامل کدهای بخصوصی می باشد که در یک بسته وجود دارد و سیستم گیرنده از آنها برای اطمینان از اینکه داده های آن بسته سالم به مقصد رسیده است یا نه استفاده می کند .
تصحیح خطا (error correction) : پیغام هایی که توسط سیستم گیرنده تولید می شود و به اطلاع فرستنده می رسانند که بسته های معینی آسیب دیدند و باید دوباره فرستاده شوند .
فشرده سازی (data compression) : مکانیزمی است که در آن با حذف اطلاعات اضافه، مقدار داده ای را که باید از طریق شبکه فرستاده شود در حد امکان کم می کنند .
کدگذاری داده (data encryption) : مکانیزمی است برای محافظت از داده هایی که قرار است از طریق شبکه منتقل شود و در آن توسط کلیدی که سیستم گیرنده از آن مطلع است داده ها کد گذاری می شوند.
اغلب پروتکل ها بر مبنای استاندارد های عمومی می باشند که توسط یک کمیته مستقل تولید شده اند نه یک تولید کننده بخصوص. بدین صورت این تضمین وجود دارد که سیستم های مختلف می توانند از آنها به راحتی استفاده کنند .
معهذا هنوز تعدادی پروتکل وجود دارد که اختصاصی هستند و هرگز در بین عموم معرفی نشده اند مسئله مهمی که همیشه باید در نظر داشت این است که همه ی کامپیوتر های موجود در یک شبکه در طول فرآیند برقراری ارتباط و تبادل اطلاعات از پروتکل های گوناگون استفاده می کنند .کارهایی که پروتکل های مختلف در یک شبکه انجام می دهند در بخش هایی به نام لایه تقسیم می شوند که مدل OSI را تشکیل می دهند .
رابطه ی بین پروتکل ها
اغلب به مجموع پروتکل هایی که در لایه های مختلف مدل OSI وجود دارد پشته پروتکل اطلاق می شود .این مجموعه پروتکل ها به کمک همدیگر سرویس هایی را که یک برنامه بخصوص ممکن است نیاز داشته باشد ، ارائه می کنند و هیچ یک از آنها قابلیت انجام کار دیگری را ندارند به عنوان مثال اگر پروتکلی در یک لایه سرویس خاصی را ارائه می کند ، پروتکل های موجود در لایه های دیگر دقیقا آن سرویس خاص را ارائه تامین نمی کنند . نسبت به جهت جریان داده ها ، پروتکل های لایه های کنار همدیگر سرویس هایی را برای همدیگر تامین می کنند در یک شبکه ، اطلاعات از یک برنامه که در لایه بالایی پشته پروتکل قرار دارد سرچشمه می گیرد و متعاقبا لایه ها را به سمت پایین طی می کند .
پایین ترین بخش پشته پروتکل را رسانه شبکه تشکیل می دهد که وظیفه انتقال داده ها به کامپیوتر های دیگر موجود در شبکه را دارد .
وقتی داده ها از طریق شبکه به مقصد می رسند ، کامپیوتر گیرنده دقیقا عکس عملیاتی را که کامپیوتر فرستنده انجام داده است باید انجام دهد .
اطلاعات از لایه پایینی پشته به سمت برنامه گیرنده که در لایه بالایی قرار دارد عبور می کند و در هر لایه عملیاتی مشابه با آنچه در فرستنده در همان لایه انجام شده است ،اعمال می شود به عنوان مثال اگر پروتکلی در لایه سوم فرستنده مسئول کد گذاری اطلاعات می باشد ، همان پروتکل در لایه سوم گیرنده مسئول کد گشایی اطلاعات می باشد .به این صورت پروتکل های موجود در لایه های مختلف سیستم فرستنده با پروتکل های معادل خود که در همان لایه اولی در بخش گیرنده وجود دارند ارتباط بر قرار می کنند .شکل 2 این مطلب را نمایش می دهد.
تاریخچه پیدایش شبکه
در سال 1957 نخستین ماهواره، یعنی اسپوتنیک توسط اتحاد جماهیر شوروی سابق به فضا پرتاب شد. در همین دوران رقابت سختی از نظر تسلیحاتی بین دو ابرقدرت آن زمان جریان داشت و دنیا در دوران رقابت سختی از نظر تسلیحاتی بین دو ابر قدرت آن زمان جریان داشت و دنیا در دوران جنگ سرد به سر می برد. وزارت دفاع امریکا در واکنش به این اقدام رقیب نظامی خود، آژانس پروژه های تحقیقاتی پیشرفته یا آرپا (ARPA) را تاسیس کرد. یکی از پروژه های مهم این آژانس تامین ارتباطات در زمان جنگ جهانی احتمالی تعریف شده بود. در همین سال ها در مراکز تحقیقاتی غیر نظامی که بر امتداد دانشگاه ها بودند، تلاش برای اتصال کامپیوترها به یکدیگر در جریان بود. در آن زمان کامپیوتر های Mainframe از طریق ترمینال ها به کاربران سرویس می دادند. در اثر اهمیت یافتن این موضوع آژانس آرپا (ARPA) منابع مالی پروژه اتصال دو کامپیوتر از راه دور به یکدیگر را در دانشگاه MIT بر عهده گرفت. در اواخر سال 1960 اولین شبکه کامپیوتری بین چهار کامپیوتر که دو تای آنها در MIT، یکی در دانشگاه کالیفرنیا و دیگری در مرکز تحقیقاتی استنفورد قرار داشتند، راه اندازی شد. این شبکه آرپانت نامگذاری شد. در سال 1965 نخستین ارتباط راه دور بین دانشگاه MIT و یک مرکز دیگر نیز برقرار گردید.
در سال 1970 شرکت معتبر زیراکس یک مرکز تحقیقاتی در پالوآلتو تاسیس کرد. این مرکز در طول سال ها مهمترین فناوری های مرتبط با کامپیوتر را معرفی کرده است و از این نظریه به یک مرکز تحقیقاتی افسانه ای بدل گشته است. این مرکز تحقیقاتی که پارک (PARC) نیز نامیده می شود، به تحقیقات در زمینه شبکه های کامپیوتری پیوست. تا این سال ها شبکه آرپانت به امور نظامی اختصاص داشت، اما در سال 1927 به عموم معرفی شد. در این سال شبکه آرپانت مراکز کامپیوتری بسیاری از دانشگاه ها و مراکز تحقیقاتی را به هم متصل کرده بود. در سال 1927 نخستین نامه الکترونیکی از طریق شبکه منتقل گردید.
در این سال ها حرکتی غیر انتفاعی به نام MERIT که چندین دانشگاه بنیان گذار آن بوده اند، مشغول توسعه روش های اتصال کاربران ترمینال ها به کامپیوتر مرکزی یا میزبان بود. مهندسان پروژه MERIT در تلاش برای ایجاد ارتباط بین کامپیوتر ها، مجبور شدند تجهیزات لازم را خود طراحی کنند. آنان با طراحی تجهیزات واسطه برای مینی کامپیوتر DECPDP-11 نخستین بستر اصلی یا Backbone شبکه کامپیوتری را ساختند. تا سال ها نمونه های اصلاح شده این کامپیوتر با نام PCP یا Primary Communications Processor نقش میزبان را در شبکه ها ایفا می کرد. نخستین شبکه از این نوع که چندین ایالت را به هم متصل می کرد Michnet نام داشت.
روش اتصال کاربران به کامپیوتر میزبان در آن زمان به این صورت بود که یک نرم افزار خاص بر روی کامپیوتر مرکزی اجرا می شد. و ارتباط کاربران را برقرار می کرد. اما در سال 1976 نرم افزار جدیدی به نام Hermes عرضه شد که برای نخستین بار به کاربران اجازه می داد تا از طریق یک ترمینال به صورت تعاملی مستقیما به سیستم MERIT متصل شوند.این، نخستین باری بود که کاربران می توانستند در هنگام برقراری ارتباط از خود بپرسند: کدام میزبان؟
از وقایع مهم تاریخچه شبکه های کامپیوتری، ابداع روش سوئیچینگ بسته ای یا Packet Switching است. قبل از معرفی شدن این روش از سوئیچینگ مداری یا Circuit Switching برای تعیین مسیر ارتباطی استفاده می شد. اما در سال 1974 با پیدایش پروتکل ارتباطی TCP/IP از مفهوم Packet Switching استفاده گسترده تری شد. این پروتکل در سال 1982 جایگزین پروتکل NCP شد و به پروتکل استاندارد برای آرپانت تبدیل گشت. در همین زمان یک شاخه فرعی بنام MILnet در آرپانت همچنان از پروتکل قبلی پشتیبانی می کرد و به ارائه خدمات نظامی می پرداخت. با این تغییر و تحول، شبکه های زیادی به بخش تحقیقاتی این شبکه متصل شدند و آرپانت به اینترنت تبدیل گشت. در این سال ها حجم ارتباطات شبکه ای افزایش یافت و مفهوم ترافیک شبکه مطرح شد.
مفهوم شبکه
هسته اصلی سیستم های توزیع اطلاعات را شبکه های کامپیوتری تشکیل می دهند. مفهوم شبکه های کامپیوتری بر پایه اتصال کامپیوتر ها و دیگر تجهیزات سخت افزاری به یکدیگر برای ایجاد امکان ارتباط و تبادل اطلاعات استوار شده است. گروهی از کامپیوتر ها و دیگر تجهیزات متصل به هم را یک شبکه می نامند.
ساده ترین نوع شبکه با متصل کردن چند کامپیوتر به وسیله کابل های خاصی به وجود می آید . ممکن است یک چاپگر به یکی از کامپیوترها متصل باشد و با استفاده از این سیستم شبکه ٬ این چاپگر به اشتراک بقیه کامپیوترها نیز گذاشته شود . همچنین ممکن است چاپگر مستقیما به شبکه متصل شده باشد . سایر تجهیزات جانبی کامپیوتر نیز می توانند برای استفاده همه کاربران در یک شبکه به اشتراک گذاشته شوند . هر دستگاه با یک کابل به شبکه اتصال می یابد و دارای یک آدرس یگانه و منحمصر به فرد است ٬ که در شبکه با آن آدرس شناخته می شود . به همین دلیل اطلاعات دقیقا به همان کامپیوتری که مد نظر است فرستاده می شود و خطایی رخ نمی دهد . دسترسی به منابع به اشتراک گذاشته دارای ارزش بسیار زیادی است . یک منبع می تواند یک فایل ٬ متن ٬ چاپگر ٬ دیسک سخت ٬ مودم یا دسترسی به اینترنت باشد و حتی توانایی پردازش کامپیوترها نیز می تواند به اشتراک گذاشته شود . به اشتراک گذاشتن منابع بیان شده نوعی قابلیت سیستم عامل تحت شبکه است که به کاربر امکان دسترسی به اطلاعات موجود در سایر کامپیوترهای شبکه را می دهد . نکته مهم در این سیستم این است که سیستم عامل باید دارای امنیت باشد و باید بتواند در دسترسی به اطلاعات (به خصوص داده ها ) محدودیت ایجاد کند.