در تصویر زیر هفت لایه OSI یا مدل مرجع OSI را میبینید و همچنین وظیفه هر لایه به صورت تصویری و به صورت ویژه که کار هر لایه را نشان داده است اما در لایه سوم لایه ای است به نام لایه شبکه یا NETWORK که در مدل TCP/IP متناظر این لایه لایه ای هست به نام " لایه اینترنت یا INTERNET "، وظیفه این لایه مسئولیت آدرس دهی و همچنین بسته بندی و Routing داده هاست .
این لایه که از مهمترین لایه های مدل TCP/IP هست دارای چند پروتکل است که در مطالب قبلی تشریح گردید و در این مطلب سعی میکنم در مورد پروتکل IP یا (Internet Protocol) که از مهمترین پروتکل ها در حوزه Network است صحبت کنم و در ادامه از ایرادات و نظرات شما استفاده کنم.
آدرس IP یا (Internet Protocol)
آدرس آی پی Logical Address هست و قابل تغییر هست و تعیین میکنه سیستم در چه شبکه ای قرار خواهد گرفت کلاً هر دستگاه یا Device ای که در شبکه بخواهد کار کند دارای IP هست.امروزه IP را در دو ورژن کار میکند یکی ورژن 4 که خیلی آشناهستیم باهاش و دیگری ورژن 6 در مورد ورژن 6 میتونید به لینک های زیر اثر خانم مهندس حسین زاده مراجعه کنید
شاید بپرسید 4 چیه پس 1 و 2 و اینا کجا هستند قبلاً ورژن های مختلفی بود ولی اصلاحات انجام گرفت و بلاخره در ورژن 4 ثابت شد اما ورژن 6 زمانی اومد که انقدر تعداد سیستم ها و آدرس دهی ها زیاد شده که در ورژن 4 نمیگنجید برای همین باید یک عدد بزرگتر رو برای آدرس دهی انتخاب میکردیم به نام ورژن 6 اما بریم سر اصل مطلب.IP Address ها بصورت دسیمال(Decimal) به صورت 4 عدد (هرکدام از 0 تا 255 می تواند مقدار گیرد) که هر کدام از این اعداد با نقطه یا DOT از هم جدا شده اند به عنوان مثال:
192.168.0.1
نمایانگر یک آدرس IP است.نکته:عدد باینری که بیت سمت راست ان صفر هست حتماً آن عدد زوج است و اگر بیت سمت راست آن یک باشد حتماً آن عدد فرد است.
ساختار آدرس های IP در پروتکل TCP IP
آدرس آی پی ورژن چهار 32 بیت است و این 32 بیت برای اینکه ما انسانها و خود سیستم ها راحت تر با این آدرس کار کنند در قالب 4 بایت استفاده میشه و به هر بایت که هشت بیت هست یک Octet گفته میشود و بین این octet ها یا بایت ها توسط یک نقطه از یکدیگر جدا میشوند . 11000000. 10101000. 00000000. 00001010 این عدد باینری معادل آی پی 10.0.168.192
کار آی پی هم اینه که قراره به ما بگه این کامپیوتر متعلق به چه شبکه ای هست و تو اون شبکه شماره اش چیه ، خود آی پی هم از دو بخش تشکیل میشه یه بخش که شماره شبکه هست بهش میگن NetId یا (Network Identifier)و بخش دیگه که شماره اون کامپیوتر هست بهش میگن HostId یا (Host Identifier)اما تفکیک این دو بخش دارای یه قانون بسیار ساده هست به نام کلاس بندی بنابر این با این کلاس بندی شبکه هایی با سایز های مختلف ایجاد کردند و به ما این امکان رو میدن که آدرس های IPرو برای شبکه هامون اختصاص بدیم.
معرفی کلاس های IP
IP Address ها کلاً به 5 قسمت یا 5 کلاس مختلف تقسیم میشن A , B , C , D , E که کلاس های D و E مصارف خاصی را دارند که در انتهای مطلب خدمتتون عرض میکنم.
- کلاس A :بزرگترین شبکه از نظر آدرس دهی محسوب میشه Octet اول شماره شبکه و سه Octet باقی مونده تعداد host ها را معین میکنه به تصویر زیر نگاه نید
در تصویر فوق جدولی را مشاهده میکنید که به ازاء هر بیت یک عدد در بالای آن قرار گرفته است اگر بیتی یک باشد عدد بالای آن را حساب میکنیم و اگر بیتی صفر بود عدد بالای آن محاسبه نمیشود.پس برای محاسبه اینگونه عمل میکنیم :
01111111 = 0 + 64 + 32+ 16+ 8+ 4+ 2+ 1 = 127
بیت اول Octet اول همواره صفر است (یعنی در هفت بیت میتوان متغیر باشد ) و 24 بیت برای Host Id باقی میماند در تصویر فوق هر X نمایانگر یک octet یا 8 بیت است اما در کلاس A آی پی که net id تماماً صفر باشد نداریم و به آن آی پی صفر میگویند ، و اگر در Net Id تمام بیت ها را یک کنیم (به جز بیت اول که همواره صفر است) به عدد 127 میرسیم. مانند مثال زیر
0.1.1.1.1.1.1.1 = 127
همچنین اگر بخواهیم تمام کلاس ها را محدوده بندی کنیم به صورت تصویر زیر است
ولی شاید با خود بگویید چرا در تصویر فوق کلاس A از 1 تا 126 است در صورتی که می بایست تا 127 باشد؟ در پاسخ به این سوال باید بگویم 127 آدرسی است که به عنوان IP نمیتوان در سیستم ها استفاده نمود 127 آدرسی است که به آن Loopback Address گفته میشود و برای تست و سلامتی کارت شبکه مورد استفاده است .
خب ما گفتیم که هر آدرس IP به دو قسمت تقسیم شده است NET id و Host Id که در کلاس های آی پی که به آن Full Address نیز گفته میشود قوانین مربوط به آن همواره محفوظ باقی می ماند اما اگر بخواهیم بفهمیم که دو آدرس آی پی در یک شبکه هستند یا خیر فقط کافی است بفهمیم که NetId های آنها یکی هست یا خیر اگر یکی بود در یک شبکه هستند.
اما ما گفتیم در کلاس A تعداد بیت هایی که برای HostId می ماند 24 است و به عبارتی 2 به توان 24 آدرس آی پی میتواند برای Host ها در نظر گرفته شود چرا 2به توان 24 ؟ برای اینکه ما فقط دو حالت 0 یا 1 را میتوانیم در نظر بگیریم نتیجه 2 به توان 24 میشود 16,777,216 البته نکته ای که این وسط هست این عدد باید منهای دو شود یعنی 16,777,214 اما این دو تا آی پی کجا مورد استفاده قرار میگیرند . اگر تمام HostId ها برابر با 1 باشد (BroadCast) و اگر تمام hostId ها برابر با 0 شود (یعنی خود Network Number) پس آدرس ابتدا و انتهایی هر HostID نمیتواندبه عنوان آدرس معتبر برای سیستم ها باشند .
- کلاس B : در این کلاس دو تا octet اول شماره شبکه هست و دوتا octet باقی مانده HostId هستند همانند کلاس A این کلاس نیز دارای نشانه ای هست ، دو بیت اول Octet اول با 10 شروع می شود و نمیتوان این دو بیت را تغییر داد ، بنا بر این Octet اول فقط 6 بیت داریم و در مجموع برای Netid ما از 14 بیت میتوانیم استفاده کنیم و برای Hostid این تعداد به 16 میرسد. بنابر این دو به توان 16 البته منهای دو میشود 65.534 عدد آی پی مورد استفاده برای سیستم های داخل شبکه پس میبینیم که در کلاس B تعداد آی پی های مورد استفاده به مراتب کمتر از کلاس A می باشد.
اگر دو بیت octet اول را که به صورت ثابت 10راقرار دهیم آخرین عددی که میتوان قرار داد برابر است با
10111111 = 128+ 0+ 32+ 16+ 8+ 4+ 2+ 1 = 191
- کلاس C : حتماً حدس زده اید که این بار سه تا Octet اول مربوط به NetId یا شماره شبکه هست و فقط Octet آخری مربوط به HostId هست و این بار سه بیت اول Octet اول 110 هست و این نشانه ای است که فقط مربوط به کلاس C است و در octet اول فقط 5 بیت میتواند متغیر باشد در این کلاس تعداد بیت های قسمت Netid به 21 میرسد و تعداد Hostid به دو به توان 8 منهای دو 254 آدرس است.
معمولاً در شبکه های کوچک از این آدرس استفاده میشود و حداکثر IP هایی که در این شبکه میتوان به کلاینت ها اختصاص داد 254 عدد است.نکته : فقط از octet اول میتوان نوع کلاس را معین کرد
- کلاس D : آدرس کلاس D برای Multicasting استفاده میشود و در کلاس D چهارمین بیت از Octet اول صفر میباشد البته 4 بیت اول این Octet به ترتیب 1110 است و این چهار بیت را نمیتوان تغییر داد و این مشخصه مربوط به این کلاس می باشد ، ضمناً محدوده آدرس دهی این کلاس نیز در تصویر زیر مشاهده میشود.
11101111= 128+64+32+0+8+4+2+1=239
Multicast چون یک گروه از کامپیوتر ها را شامل میشود بنابر این اگر بخواهیم بگوییم Netid یا hostid این کلمه برای این کلاس بی معنی است
- کلاس E : در این کلاس وضعیت چهار بیت اول 1111 است این کلاس برای کار های تحقیقاتی و تجربی محیا شده است و ما نمیتوانیم از این آدرس استفاده کنیم و برای اینکه یادمان باشد میتوان گفت این کلاس Exprimental است.
SubnetMask چیست؟
سیستم ها برای تشخیص تعلق یا عدم تعلق به یک شبکه از مفهومی به نام Subnet Mask استفاده می کند. به این صورت که تمام بیت های Network را 1 و تمام بیت های Host را 0 در نظر می گیرد تا Subnet mask را بسازد. در نظر داشته باشید که هر کلاسی که ما میتونیم ازشون به عنوان یک آدرس استفاده کنیم یک SubnetMask استاندارد داره به عبارت دیگر هر ip دارای یک SubnetMask است و برای کلاس هایی که در بالا گفته شد این SubnetMask ها به صورت استاندارد زیر هستند:
Standard Subnet Masks: Class A : 255.0.0.0 Class B : 255.255.0.0 Class C: 255.255.255.0
نکته : IP هادر دو صورت قابل نمایش هستند
- subnet mask format
- prefix format
در subnet mask format، آی پی مربوطه را به صورت یک ip به همراه subnet mask آن به صورت جداگانه نمایش می دهیم. یعنی یک عدد که IP را نشان میدهد و عددی دیگر یا IP دیگر subnet mask را به عنوان مثال:
IP: 192.168..1.2 Subnet mask: 255.255.255.0
در prefix format آی پی و subnet mask آن را با هم در یک ip نشان میدهید ، یعنی بعد از ip ، یک / (که جداکننده Ip از عدد مربوط به subnet mask هست) قرار میدهیم و سپس یک عدد نوشته میشود که این عدد تعداد 1 هایی که در subnet mask همان ip داریم می باشد به طور مثال:
192.168.1.2/24
چطور SubnetMask آدرس آی پی را متوجه شویم ؟
توی Run دستور ncpa.cpl رو وارد کنید تا به قسمت تنظیمات کارت شبکه خودتون وارد بشید و از اونجا از یکی از کارت شبکه هاتون یا روی گزینه Local Area Connection راست کلیک کرده و properties بگیرید و وارد تنظیمات IP ورژن 4 بشید. بعد از این که 4 Octet آی پی های خوتون رو وارد کردید کلید TAB رو بزنید تا به صورت خودکار Subnet mask آی پی خودتون رو مشاهده کنید.
اما سوالی مطرح میشه اینجا حتماً دیدید موقعی که دارید برای کارت شبکتون آدرس IP تنظیم میکنید این SubnetMask نسبت به نوع IP شما Set میشه و نیازی به تایپ نمودن نیست ولی اگر دقت کنید این SubnetMask به صورت ReadOnly نیست که نشه تغییرش داد ولی اگر میشه تغییرش داد تکلیف چیه ؟
آیا اون سیستم در شبکه باقی میمونه ؟ اصلاً چرا میشه تغییرش داد؟ در پاسخ به این سوال باید گفت : ما میتونم اون استاندارد رو تغییر بدیم یعنی فراخور نیازمون SubnetMask رو دستکاری میکنیم تا بتونیم اون شبکه رو به رنج های کوچکتر بشکنیم و از یک شبکه چندین شبکه درست کنیم به این عملیات subnetting گفته میشود .
نویسنده : فرهاد خانلری
منبع : جزیره شبکه و زیرساخت وب سایت توسینسو