تعیین Net ID و Host ID در آدرسهای IP
آدرس IP
سیستمها برای ارتباط با هم از آدرس IP استفاده میکنند. آدرس آیپی در لایه سوم مدل OSI به بستههای اطلاعاتی اضافه میشود. هر آدرس IP از 32 بیت تشکیل شده است. این بیتها را میتوان برای سهولت استفاده انسانی به چهار قسمت تقسیم کرد. به هر کدام از این قسمتها Octet گفته میشود. به مثال زیر توجه کنید:
این آدرس آیپی توسط سیستمها استفاده میشود اما برای انسانها استفاده از دادههای دودویی سخت است (زبان کامپیوترها دودویی است اما زبان انسانها دیسمال یا دهدهی است.)بنابراین این آدرس آیپی را به چهار قسمت تقسیم میکنیم.
حالا کار با این آدرس شاید کمی راحتتر باشد امّا همچنان از اعداد دودویی استفاده شده است. بنابراین یک پله کار را راحتتر میکنیم و این اعداد دودویی را به اعداد دسیمال یا دهدهی تبدیل میکنیم.
پس از تبدیل به آدرس آیپی بالا میرسیم که استفاده از آن برای انسان بسیار راحتتر است. در واقع هشت بیت هشت بیت از آدرس آیپی جدا میکنیم و معادل دهدهی آن را مینویسیم به هر کدام از این بخشها اُکتت گفته میشود.
تعیین Net ID و Host ID با استفاده از قوانین کلاسها
کلاسبندی آدرسهای IP
فرض کنید بخواهید آدرس خانهای را بیابید یا آدرس خانه خود را بنویسید. یک مثال به صورت زیر است:
شیراز، میدان شهدا، خیابان سینا، پلاک 19
این آدرس از دو بخش تشکیل شده است. بخش اول شیراز، میدان شهدا، خیابان سینا و بخش دوم پلاک 19. اگر همسایه شما هم بخواهد به کسی آدرس بدهد، آدرس اینگونه خواهد بود:
شیراز، میدان شهدا، خیابان سینا، پلاک 20
همانطور که میبینید آدرسها تا جایی با هم مشابه هستند و تنها در پلاک با هم تفاوت دارند. همین مسئله در شبکههای کامپیوتری هم صادق است. به بخش اول آدرس Net ID و به بخش دوم آدرس Host ID میگویند. کامپیوترهای با Net Id یکسان در یک شبکه هستند و شیوه اتصال آنها به هم متفاوت از شیوه اتصال کامپیوترهایی است که در شبکههای مختلف وجود دارند بنابراین باید Net Id و Host ID را در یک آدرس آیپی تعیین کنیم. برای تعیین این قسمتها، آدرسهای آیدی به کلاسهای مختلفی تقسیمبندی میشوند. برای کلاسبندی آدرسهای آیپی تنها از اُکتت اول استفاده میشود. اگر اولین بیت اُکتت اول از سمت چپ صفر باشد، آنگاه آدرس آیپی از نوع کلاس A خواهد بود.
آدرسهای آیپی از نوع کلاس A دارای حداقل مقدار 0 0000000 میباشد که معادل دهدهی آن 0 است. این نوع آدرسها دارای بیشینه مقدار 0 1111111 میباشند که معادل دهدهی آن 127 است. در این نوع آدرسها اکتت اول Net ID و سه اکتت بعدی Host ID خواهد بود. به صورت زیر:
اگر اولین بیت از سمت چپ یک باشد و به دنبال آن صفر بیاید، آنگاه آدرس از نوع کلاس B خواهد بود.
Example: 10XXXXXX
آدرسهای آیپی از نوع کلاس B دارای حداقل مقدار 10 000000 میباشد که معادل دهدهی آن 128 است. این نوع آدرسها دارای بیشینه مقدار 10111111 میباشند که معادل دهدهی آن 191 است. در این نوع آدرسها اکتت اول و دوم Net ID و دو اکتت بعدی Host ID خواهند بود. به صورت زیر:
اگر اولین و دومین بیت از سمت چپ یک باشند و به دنبال آنها صفر بیاید، آنگاه آدرس از نوع کلاس C است.
Example: 110XXXXX
آدرسهای آیپی از نوع کلاس C دارای حداقل مقدار 110 00000 میباشند که معادل دهدهی آن 192 است. این نوع آدرسها دارای بیشینه مقدار 110 11111 میباشند که معادل دهدهی آن 223 است. در این نوع آدرسها سه اکتت اول Net ID و دو اکتت بعدی Host ID خواهند بود. به صورت زیر:
اگر اولین، دومین و سومین بیت از سمت چپ یک باشند و به دنبال آنها صفر بیاید، آنگاه آدرس از نوع کلاس D است.
Example: 1110XXXX
آدرسهای آیپی از نوع کلاس D دارای حداقل مقدار 1110 0000 میباشند که معادل دهدهی آن 224 است. این نوع آدرسها دارای بیشینه مقدار 1110 1111 میباشند که معادل دهدهی آن 239 است. در این نوع آدرسها Net ID و Host ID معنا ندارد.
اگر اولین، دومین، سومین و چهارمین بیت از سمت چپ یک باشند آنگاه آدرس از نوع کلاس E است.
Example: 1111XXXX
آدرسهای آیپی از نوع کلاس E دارای حداقل مقدار 11110000 میباشند که معادل دهدهی آن 240 است. این نوع آدرسها دارای بیشینه مقدار 11111111 میباشند که معادل دهدهی آن 255 است. در این نوع آدرسها Net ID و Host ID معنا ندارد.
Unicaste و Multicastو Broadcast
اگر بسته اطلاعاتی از یک کامپیوتر به کامپیوتر دیگر انتقال یابد، ارتباط از نوع Unicast است.
اگر بسته اطلاعاتی از یک کامپیوتر به چندکامپیوتر دیگر منتقل شود، (یا از چند کامپیوتر به چند کامپیوتر دیگر منتقل شود) ارتباط از نوع Multicast است.
اگر بسته اطلاعاتی از یک کامپیوتر به تمام کامپیوترهای دیگر شبکه منتقل شود، ارتباط از نوع Broadcast است.
برای ارتباطات Unicast از آدرسهای کلاس Aو Bو C استفاده میشود. برای ارتباطات Multicast از آدرسهای کلاس D استفاده میشود. و از آدرسهای کلاس E تنها برای انجام امور تحقیقاتی در IETF استفاده میشود و هیچ کامپیوتری در شبکه نیایستی از آدرسهای کلاس E استفاده کند.
نکته: Broadcast دو نوع دارد:
* Directed Broadcast
برای ایجاد یک پیام به صورت Local Broadcast تمام بیتهای آدرس یک میشود در این صورت آدرس برودکست به صورت 255.255.255.255 خواهد بود.
برای ایجاد پیام به صورت Directed Broadcast تمام بیتهای Host یک میشود در این صورت برای آدرس 192.168.2.1 که از نوع آدرسهای کلاس C و به صورت N.N.N.H است، Direcred Broadcast به صورت 192.168.2.255 خواهد بود.
یک نکته دربارهی آدرسهای کلاس A
برای آدرسهای کلاس A میتوان یک نکته را ذکر کرد. این آدرسها به صورت N.H.H.H می باشند بنابراین هشت بیت اول این نوع آدرسها Net ID میباشد. از آنجایی که کلاس بندی براساس هشت بیت اول آدرس انجام میشود و آدرسهای کلاس A به صورت 0XXXXXXX شروع میشوند بنابراین این نوع را میتوان از 0 (مقدار مینیمم)تا 127 (مقدار ماکزیمم) آدرسدهی کرد. نکته اینجاست که اگر تمام بیتهای این نوع آدرسها صفر باشد در آن صورت آدرس به صورت 0.0.0.0 خواهد شد و این آدرس نباید به یک کامپیوتر داده شود
آدرس به صورت 0.0.0.0/8 برای Self Identification و آدرس به صورت 0.0.0.0/0 برای Default Route استفاده میشود.
از سوی دیگر آدرسهایی که با 127
شروع میشوند برای استفاده به صورت Loopback Testing میباشد. برای مثال اگر از روی کامپیوتر خود آدرس 127.0.0.1 را پینگ کنید، پاسخهایی به درخواست شما داده میشود. در واقع loop back برای تست استفاده میشود. زمانی که شما این آدرس را پینگ میکنید، داده از لایه اول TCP/IP شروع به حرکت کرده و تا لایه دوم TCP/IP یا لایه سوم OSI پیش میرود اما داده به لایه دوم برای فریمبندی و مراحل بعد از آن منتقل نمیشود بلکه به لایه اول در همان کامپیوتر تحویل داده میشود.
پس نتیجه میگیریم که آدرسهای کلاس A از 1 تا 126 قابلیت آدرسدهی دارند.
تعداد آدرسهای موجود در کلاسهای مختلف
میخواهیم تعداد آدرسهای موجود در هر کلاس را بیابیم. تعداد آدرسهای هر کلاس منهای دو میشود(یکی Net ID و دیگری Broadcast)
برای درک درست Net ID و Broadcast مثالی واقعی را بررسی میکنیم. فرض کنید شبکهی ما یک خیابان باشد. میخواهیم به هر خانه در این خیابان پلاکی بدهیم تا پستچی بتواند نامهها را به هر خانه به صورت صحیح برساند. همانطور که گفتیم، نمیتوان Net ID را به یک کامپیوتر نسبت داد. اگر Net ID را آدرس کوچه بدانیم، سوالی که میتوان پرسید این است که آیا امکان دارد نام یک کوچه به یک خانه نسبت داده شود؟ جواب منفی است.
قبلا گفتیم که آدرس Broadcast را نمیتوان به یک سیستم نسبت داد. فرض کنید بخواهیم به تمامی خانههای یک خیابان پیامی فوری برسانیم. چه راهحلی به ذهنتان میرسد؟ یک راهحل ایناست که پیام را درب منزل هرکدام به آنها برسانیم! راهحل دیگر آن است که همه را به یک خط مشترک اضطراری وصل کنیم در اینصورت هرگاه نیاز به ارسال پیامی اضطراری باشد که باید به دست همهی ساکنان خیابان برسد، به سادگی این عمل انجام میشود. و این همان کاری است که Broadcast انجام میدهد. Broadcast را میتوان آدرس همان تلفن اضطراری دانست که تمامی خیابانها به آن مجهزند! طبیعی است که این آدرس به هیچ منزلی منتسب نمیشود.
بنابراین در هر کلاس، تعداد آدرسهای موجود را باید منهای دو کرد تا تعداد آدرسهای قابل استفاده به دست آید.
به شکل زیر توجه کنید:
Class A | N.H.H.H | (2 ^ 24) - 2 |
---|---|---|
Class B | N.N.H.H | (2 ^ 16) - 2 |
Class C | N.N.N.H | (2 ^ 8) - 2 |
تقسیمبندی آدرسها براساس کلاس آنها (برای مشخص شدن Net ID و Host ID)دارای نقاط ضعفی است. فرض کنید تعداد بیتهای مربوط به Net ID مضربی از عدد 8 نباشد. در اینصورت برای مشخص کردن Net ID و Host ID به مشکل خواهیم خورد و اینجاست که CIDR(Class less Interdomain Routing) وارد میشود.
تعیین Net ID و Host ID با استفاده از CIDR
یکی دیگر از روشهای تعیین Net ID و Host ID، استفاده از CDIR است. CIDR مخفف Class less Interdomain Routing می باشد. فرض کنید آدرس 129.168.1.1 را داشته باشیم. اگر تعداد بیتهای Net ID برای این آدرس 24 باشد، آنگاه نمایش CIDR آن به صورت زیر خواهد بود:
همانطور که میبینید بیتهای مربوط به آدرس شبکه به صورت یک اسلش و تعداد بیتها مشخص شده است.
تعیین Net ID و Host ID با استفاده از SubNet Mask
روشی دیگر برای مشخص کردن Net ID و Host ID استفاده از SubNet Mask است. SubNet Mask ساختاری مشابه آدرس آیپی دارد. هرجا که Net Mask یک باشد، بیت منتاظر با آن در آدرس آیپی مربوط به Net ID است و هر جا که Net Mask صفر باشد، بیت متناظر با آن در آیپی Host ID خواهد بود. مثال:
اگر به SubNet Mask توجه کنید، درمییابید که تمام بیتهای اکتت اول یک بودهاند پس تمام بیتهای متناظربا آن در آیپی، Host ID هستند. همین قاعده برای اکتتهای دوم و سوم نیز صدق میکند. اما تمام بیتهای اکتت چهارم SubNet Mask صفر هستند بنابراین اکتت متناظر با آن در آیپی Host ID خواهد بود.
مثال:
اگر بخواهیم Host ID و Net ID را برای این مثال بیابیم میبایست به SubNet Mask توجه کنیم. تمام بیتها در اکتتهای اول و دوم یک هستند بنابراین اکتتهای متناظر در آیپی Net ID خواهند بود. اما در اکتت سوم SubNet Mask تنها بیتهای اول و دوم از چپ یک هستند. اگر اکتت سوم Subnet Mask را به صورت دودویی بنویسیم آنگاه خواهیم داشت:
همانطور که میبینید تنها بیتهای اول و دوم از چپ برای اکتت سوم SubNet Mask یک است پس بیتهای متناظر با آن در آیپی Net ID خواهند بود. اگر اکتت سوم آدرس آیپی را به صورت دودویی بنویسیم آنگاه خواهیم داشت:
<----------> <--------->
Net ID Host ID
برای مشخص کردن NET ADDRESS تمام بیتهای مربوط به Host ID را برابر صفر قرار میدهیم و برای مشخص کردن BROADCAST ADDRESS(DIRECTED BROADCAST ) تمام بیتهای مربوط به Host ID را برابر یک قرار میدهیم.
این دو مورد را برای مثال بالا تعیین میکنیم.
Directed Broadcast Address: 172.234.63.255