لایه اینترنت (internet) و پروتکل های آن : پروتکل ARP چیست؟ پروتکل ICMP چیست؟ IGMP چیست؟ همانطور که میدانید در هفت لایه OSI یا مدل مرجع OSI لايه ای وجود دارد به نام لایه شبکه یا NETWORK که در مدل TCP/IP متناظر این لایه لایه ای هست به نام " لایه اينترنت یا INTERNET "، وظیفه این لایه مسئولیت آدرس دهی و همچنین بسته بندی و Routing داده هاست . این لایه که از مهمترین لایه های مدل TCP/IP هست خودش چند تا پروتکل داره ولی قبل از اینکه اونا رو بگیم بریم ببینیم اینکه اصلاً پروتکل چیست؟
بطور کلی پروتکل ها قوانین و روالهایی برای ارتباط هستند یعنی در حقیقت این پروتکل هست که میگه به چه زبانی باید صحبت بشه که بین دو تا کامپیوتر ارتباط برقرار بشه ، مثلا ایران و گواتمالا زبان مشترک که ندارن !!! با پروتکل انگلیسی با هم صحبت میکنند که همدیگر رو درک کنند ، اینجا انگلیسی میشه پروتکل ، حالا در بعضی از کشورهای همسایه مثل افغانستان ما زبان مشترک فارسی داریم که پروتکل مشترک ما محسوب میشه و شما از پروتکل فارسی برای ارتباط استفاده میکنید .
-------------------------------------------------
برای دسترسی به مجموعه بهترین دوره های آموزش شبکه های کامپیوتری ( مبانی شبکه ، نتورک پلاس ، مانیتورینگ و ... ) مقدماتی تا پیشرفته با ارائه گواهینامه و فیلم رایگان همین الان کلیک کن
--------------------------------------------------
حالا شما فرض کن در شبکه هم همینطوره شما بر حسب نیاز هست که از یک پروتکل استفاده می کنید ، مثلا وقتی از یک وب سایت بازدید میکنید باید از پروتکل HTTP استفاده کنید که پروتکل وب هست واگر غیر ازاین باهاش صحبت کنید زبان شما برای اون مفهوم نیست ونمیتونی ارتباط برقرار کنی.در برقراری ارتباط بین شبکه ها هم پروتکل ها بر حسب نیاز استفاده میشن ، مثلا اگر شما میخاین اطلاعاتتون فشرده سازی بشن از پروتکل مربوطه استفاده میکنید و اگر هم نخاین استفاده نمیکنین ، پس نیاز نیست از هزاران پروتکل موجود استفاده کنید اگر کاری باهاشون ندارید .
اما بعضی از پروتکل ها هم هستن که همیشه مورد نیاز هستند ، مثلا در همون مثال صحبت کردن بین کشورها شما باید طی یک زمان خاص مکالمتون رو تموم کنید چون اگر زیاد طول بکشه جلسه به هم میخوره و باید این مدت زمان حرف زدن کنترل بشه ، که معادلش تو شبکه همون کنترل جریان هست که باید وجود داشته باشه و جزو پروتکل های ضروری محسوب میشه ، همچنین شما باید توی یک مکالمه کلمات رو درست ادا کنید فکر کن داری با وزیر یک کشور خارجی صحبت میکنی و بجای اینکه بگی How Are You میگی You Are How !!!!
میبینی این نیاز به یک پروتکل داره که خطای شمارو تشخیص بده و به شما اطلاع بده که تصیحش کنید.برای ارسال یک بسته اطلاعاتی هم بعضی پروتکل ها اجباری و بعضی اختیاری هستند و بر حسب لایه های OSI به ترتیب بر روی بسته های ارسالی توی شبکه اعمال میشن .در تصویر زیر پروتکل های مهم مدل TCP/IP که چهار لایه بودن رو میتونید ببینید :
همانطور که میبینید لایه اینترنت دارای چهار پروتکل هست که در زیر به این چهار پروتکل میپردازیم.
در مورد IP به زودی مقاله ای آماده میکنم و در سایت قرار میدم و لینکش رو در همینجا ویرایش میکنم ولی تا اون لحظه میتونم بگم این پروتکل مسئول آدرس دادن به داده ها هست به منظور ارسال به مقصد مورد نظر.
به صورت خلاصه این پروتکل مسئول مشخص کردن آدرس MAC که مخفف (Media Access Control) یا آداپتور شبکه بر روی کامپيوتر مقصد است. اما بپردازیم که وظیفه دقیق ARP چیه و چطوری کار میکنه.همانطور که در تصویر زیر میبینیم ما میتونیم این دستور رو از محیط CMD اجرا کنیم
خیلی ساده ادامه میدیم ببینیم این ARP چی کاره هست ؟ ببینید در واقع یک سیستم برای دریافت و ارسال داده ها از آدرس سخت افزاری یا MAC استفاده کند.اما چرا MAC چون این آدرس UNIC هست و در دنیا یه دونه ازش هست اما ما مگه میاییم MAC رو حفظ کنیم ؟ خب سخته حفظ کردنش اما در جدول ARP Table معادل تمام IP ها MAC هاشون قرار داره و قرار نیست ما اونا رو حفظ کنیم و کاری انجام بدیم این ARp خودش میاد انجام میده اما این جدول چه جوری پر میشه و کی کاملش میکنه جای بحث داره.
باز هم به زبان ساده میگم و خودمونی این پروسه یعنی پر شدن اون جدولب که مربوط به ARP هست یا به عبارتی تبدیل آدرس منطقی (از لایه ی network به آدرس MAC در لایه ی DataLink ) از طریق ارسال broadcast در داخل شبکه انجام می شه . به عبارتی ساده تر : سیستم ارسال کننده در داخل شبکه داد میزنه این آدرس IP برا کیه!؟؟؟ من آدرس MAC تو رو نیاز دارم !
broadcast که اسم دیگه اش میشه همه پخشی داخل کل شبکه برای همه فرستاده می شود و همه ی host ها یا همون کلاینت ها ، پیغام broadcast رو میگیرن بعدش کامپیوتری که IP ارسال شده برای اون هست در پاسخ ،میگه این IP برای منه و در این جواب آدرس MAC خودش رو می فرسته برای فرستنده هر ارسال پیام ابتدا اینجوری انجام میشه تا در نهایت جدول ها تکمیل میشن و دیگه نیازی به این داد و بیداد ها نیست و هر کسی MAC اون یکی رو میدونه اما این داستان جور دیگه ای هم میشه تعریفش کرد.
در صورتی که شما بخواهید با یک کامپیوتر دیگر که آی پی آن را میدانید ارتباط برقرار کنید و آن سیستم در یک محدوده شبکه یا Subnet باشد حتماً باید Mac address آن سیستم را بدانیم .حالا اگر این دو سیستم در یک Subnet بودند توسط پروتکل ARP آدرس Mac را به سیستم ما اعلام می کند و سیستمی که میخواهد ارتباط را برقرار کند Mac را در جدولی به نام ARP Table ذخیره میشه که این جدول در هر سیستمی به صورت جداگانه وجود دارد اما حالت دیگری وجود دارد به این صورت که اگر سیستم ما با سیستم مقابل که میخواهد ارتباط برقرار کند.
بر روی یک Subnet قرار نداشت یعنی اینکه کامپیوتر ما با کامپیوتر مقصد در یک شبکه نبود جدا بود یا یه جای دیگه بود یه جایی بود که بین من و اون دستگاهی به نام روتر Router وجود داشت حالا روتر چیبه هم به زودی راجع بهش مقاله ای تهیه میکنم ولی این نکته مهم هست که روتر ها Broadcast ها رو از خودشون عبود نمیدن چون اگر بخواد این اتفاق بیوفته کل شبکه قطع میشه به خاطر ترافیک بسیار بالایی که به وجود میاد پس این جدول ARP چجوری پر شه اگه نمیتونه دیگه Broadcast بفرسته؟
ابتدا سیستم مبدا Table خودش را می بیند و در صورتی که ازاین جدول راهی برای رسیدن به IP مقصد وجود داشته باشد چک میکند که اطلاعات باید به کدام روتر فرستاده شه که در این حالت Address mac را روتر مورد نظر را با توحه به داشتن IP اون پیدا می کنه و در Destination mac address آدرس مربوط به Router و در قسمت destination IP address مقصد سیستمی که می خواهد با آن ارتباط داشته باشد را ارسال می کند .البته نکات دیگری هم وجود دارد که بهتر است از این مقاله بخونید.
تصویر زیر هم دقیقاً ماجرای اون Broadcast رو تشریح میکنه که چه جوری پیغام همه پخشی ارسال میشه و در نهایت یکی جواب میده همراه با Mac Address خودش ، طیق تصویر زیر سیستم سمت چپ داد میزنه Mac Address کامپیوتری که IP اون 192.168.1.120 هست چیه به این نحوه میگن ARP Request که جوابش در مرحله بعد براش ارسال میشه که بهش میگن ARP Reply.
وظیفه این پروتکل ارائه گزارش خطا و عیب یابی در صورتی که اطلاعات به صورت صحیح توزیع نشن رو داره این سیستم گزارش خطا بر روی IPﻧﺼﺐ ﻣـﯽ ﺷه ﺗـﺎ در ﺻـﻮرت وقوع ﻫﺮ ﮔﻮﻧﻪ ﺧﻄﺎ ﺑﻪ ﻓﺮﺳﺘﻨﺪه ﭘﯿﺎم ﻣﻨﺎﺳﺐ رو ﺑﺪه که این گزارشات برای مدیران شبکه دارای اهمیت هست.البته میتونیم بگیم تعدادي از این پیغام ها بين دستگاه های شبكه مثل روترها ارسال و دریافت میشه تا این دستگاه ها بتونن همدیگه رو از بروز خطا مطلع کنند ، حالا اگر بخواهیم بدونیم این پیغام ها چیه باید بگم پیغام Echo یکی از مهم ترین اونا هست و دستور پرکاربرد PING که میتونید از این لینک اطلاعات بیشتری را برای خودتون به روز کنید. ضمناً دستور PING رو در محیط دوست داشتنی ( CMD (Command Promprt باید اجرا کرد.
مسئول مدیریت Multicasting در TCP/IP می باشد.میتوان موضوع بالا را کمی گسترش داد IGMP پروتکلی است که مسئولیت و مدیریت لیست اعضاء برای Multicasting IP ، در شبکه(NETWORK) را به عهده دار است.اما IP Multicasting چیست؟ پروسه ای است که طبق آن یک(Message) یا پیام ارسال میگردد برای گروهی انتخاب شده از گیرندگان که این گروه به نام Multicast نامیده می شود و IGMP لیست این اعضاء را نگهداری میکند.
برای Multicasting در یک شبکه(Network) ، گيرنده پیام حتماً بايد عضو Multicast Group باشد که این عضو بودن توسط IGMP انجام می شود.لازم به ذکر است این پروتکل دارای سه نسخه است ، IGMP v3 نیز نسخه جدیدتری نسبت به IGMP است.در مورد کار این پروتکل در مسیر یاب ها : هر 60 ثانيه يک روتر بعنوان IGMP Querier از Host ها دعوت می کند تا در صورت تمايل به عضويت گروه مورد نظرشان، درخواست خودشان را ارسال کنند.
اين دعوت به نشانی 224.0.0.1 (All-Hosts) فرستاده می شود ، نشانی 224.0.0.01 مربوط می شود به IP ها و کلاس های Ip که این آدرس کلاس D می باشد و مختص آدرس دهی Multicast در نظر گرفته شده است.در IGMP v1 روشی برای خروج از گروه وجود نداشت ، و تنها راه حل این بود که HOST عضویت خودش را تمدید نکند تا از گروه خارج شود ، در این هنگام به پيام عضویت روتر (Router) جواب نمیداد تا پس از 3 دقيقه Timeout شده و از گروه حذف و خارج شود.
در IGMP v2 که نسخه کامل شده V1 بود Host بوسيله ارسال Leave Group Message به آدرس 224.0.0.2 يا All-Routers Address در هر زمانی می تواند خروج خود را اعلام کند و اینگونه مشکل خروج خود را از گروه خواستار میشد و مشکل در نسخه اولیه برطرف گردید ضمن اینکه ورژن دوم این پروتکل در نوع Query ها نسبت به ورژن اول پیشی گرفت ، در IGMPv2 به يک گروه خاص هم ميتوان Query فرستاد.پیشتر گفتیم IGMP v3 نیز نسخه جدیدتری نسبت به IGMP است ، اما به دليل عملکرد خوب IGMP v2 و عدم نياز به خصوصيات پيچيده تر رشد ، استفاده از نسخه سوم در شبکه ها کند پیش میرود.
کارشناس ارشد شبکه مایکروسافت
فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود