شبکه را آسان بیاموزیم – قسمت اول- آدرس دهی در شبکه – IPv4 Addressing

comments0 نظر views بازدید
4.6521739130435 از 5
از 23 رای
(رای دهید)

در این بخش قصد داریم در مورد آدرس دهی در شبکه صحبت کنیم و نکات و موارد مهم و کلیدی مربوط به آن را مطرح کنیم، ضمنا در هر بخش با ارائه مثالهای مرتبط سعی خواهیم داشت نکات بصورت کامل و قابل درک بیان شود.

ممکن است فکر کنید آدرس دهی IP در یک شبکه کار ساده و بی اهمیتی می باشد و به راحتی می توان به یک اینترفیس یا کارت شبکه بر روی یک کامپیوتر و یا تجهیزات دیگر آدرس IP اختصاص داد و همین که آدرس ها بتوانند با یکدیگر ارتباط برقرار کنند، و به اصطلاح Ping بین آنها را دریافت کردید کار تمام است و دیگر نیازی به فکر کردن در مورد نحوه محاسبه آدرسها و همچنین دقت در مصرف آدرسها نیست. اما نکته مهم در اینجاست که اگر هدفمان ایجاد یک شبکه هرچند کوچک و محدود می باشد و یا اینکه می خواهیم در طراحی شبکه های خود از ابتدا منطق و مفهوم آدرس دهی را رعایت کنیم و بتوانیم با گذشت زمان در محاسبه و طراحی آدرس دهی تجربه و مهارت پیدا کنیم از همان آغاز باید مفاهیم مربوط به آن را در نظر گرفته و رعایت کنیم.

قبل از آشنایی با نحوه صحیح محاسبه آدرس دهی IP در شبکه، می باید در مورد ساختار و مکانیزم عملکرد آدرس IP در شبکه توضیحاتی را مطرح کنیم.

همانطور که می دانید سیستم های اطلاعاتی و کامپیوتری محاسبات را بر اساس اعداد بصورت باینری انجام می دهند که شامل 0 و 1 می باشد، از مجموع صفرها و یک های موجود در یک عدد باینری می توانیم عملیات مورد نظر و یا اعداد دسیمال یا هگزادسیمال مورد نظر را استخراج کنیم. در آدرس دهی IP نسخه چهار یا همان IPv4 مجموع تعداد صفرها و یا یک هایی که در ساختار آدرس وجود دارند در مجموع تعداد 32 عدد باینری یا 32 صفر و یا یک می باشد به همین دلیل به آن یک آدرس 32 بیتی می گوئیم. شاید در مورد آدرس دهی از نوع IP نسخه شش یا همان IPv6 نیز زیاد شنیده باشید، این نوع آدرس دهی نیز در حال حاضر بسیار مورد استفاده و کاربردی می باشد و حتما در بخشهای بعدی پس از آشنایی با آدرس دهی از نوع IPv4 به آن خواهیم پرداخت.

همانطور که در بالا اشاره شد، آدرس دهی IPv4 با استفاده از 32 bit انجام می شود با توجه به این امر سوالات زیر در ذهن ما ایجاد می شود:

  • آیا این 32 بیت همگی در کنار هم قرار میگیرند؟
  • آیا آدرس IPv4 از یک قسمت کلی تشکیل شده یا از چند بخش تشکیل می شود؟
  • آیا راهی برای به خاطر سپاری آن برای ما وجود دارد؟
  • آیا در این نوع آدرس دهی راهی برای جداسازی منطقی آدرس ها از یکدیگر وجود دارد؟
  • آیا می توانیم ارتباط بین بازه آدرس های مختلف را کنترل کنیم؟
  • آیا دسترسی از یک بازه آدرس به یک بازه آدرس در محل دیگر امکانپذیر است؟
  • و سوالاتی از این قبیل …

پاسخ به این سوالات در بخش های بعدی برای شما امکانپذیر خواهد بود، الیته اگر در حال حاضر پاسخ ها را می دانید، جهت یادآوری مطالب مربوطه ادامه مطلب را مطالعه نمائید.

نوع محاسبه و نوع نمایش آدرس IPv4 توسط سیستم های اطلاعاتی با یکدیگر کاملا متفاوت است، به این معنی که اعدادی که ما در بخش آدرس IP بر روی یک سیسنم مشاهده می کنیم بصورت نمایش اعداد از نوع دسیمال می باشد در صورتی که اعداد متناظری که سیستم جهت محاسبه آن آدرس مورد استفاده قرار می دهد از نوع باینری می باشد. به عنوان مثال در صورتی که ما عدد 5 را که بصورت دسیمال می باشد در نظر بگیریم، این عدد برای یک سیستم اطلاعاتی و کامپیوتری بصورت 101 معنا خواهد داشت.

به همین دلیل قبل از آغاز اشاره به آدرس های IP به بخش های تشکیل دهنده و اجزای آن اشاره می کنیم. همانطور که گفتیم اعداد باینری یا همان صفر و یک های حاضر در آدرس IPv4 در مجموع 32 عدد یا از به شکلی که از این پس به آن اشاره می کنیم 32 بیت می باشد. این مجموع 32 بیت باینری در آدرس IPv4 به چهار دسته کوچکتر که هر دسته شامل هشت بیت می باشد تقسیم شده و با استفاده از نقطه یا همان Dot از یکدیگر جدا می شوند، به دسته های کوچکتری تقسیم میشوند که هر کدام از این دسته ها یک Octet نامیده می شوند. بنابر این یک آدرس IPv4 آدرسی 32 بیتی می باشد که از چهار Octet تشکیل شده است.

هرکدام از Octet ها دارای هشت بیت می باشد و هر کدام از بیتها می تواند صفر و یا یک باشد، به این ترتیب اگر تمامی اعداد در این هشت بیت همگی صفر باشند Octet به این صورت 00000000 خواهد بود و اگر همگی یک باشند Octet به این صورت 11111111 خواهد بود. به این ترتیب با قرار گرفتن صفر در تمامی بیتهای موجود در Octet کوچکترین عدد ایجاد می شود و با قرار گرفتن یک در تمامی بیتهای موجود در Octet بزرگترین عدد قابل ارائه در یک Octet ایجاد میگردد. بنا براین تا به اینجای کار کوچکترین و بزرگترین اعداد قابل استفاده در یک Octet را معرفی کردیم:

00000000

11111111

یک آدرس IPv4 می تواند بصورت زیر مشخص شود، در این مثال هر X می تواند یا 0 باشد یا 1

XXXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

توجه داشته باشید که هر هشت بیت از این آدرس 32 بیتی در یک بخش با عنوان Octet قرار میگیرد و هر کدام از این بخش ها با استفاده از Dot از یکدیگر جدا میشوند.  .

بعنوان مثال در اینجا یک آدرس IPv4 بصورت باینری را نمایش داده ایم

 10110100.11110011.11011101.11000101

شاید تعجب کرده باشید و شاید پیش خودتان بگوئید اگر بخواهیم به این شکل آدرس های IP را در سیستم وارد کنیم و یا اینکه بخواهیم به خاطر بسپاریم بسیار سخت و مدیریت و کنترل آدرسها بسیار دشوار خواهد بود. برای اینکه این مشکل پیش نیاید در نمایش و استفاده از آدرس های IPv4 از معادل عددی دسیمال این اعداد باینری استفاده می کنیم. حال چگونه این اعداد باینری را به اعداد دسیمال تبدیل کنیم؟

نکته اول این است که در تبدیل اعداد باینری به دسیمال در آدرسهای IP از اعداد در مبنای دو استفاده می کنیم به این شکل که از حاصل ضرب عدد صفر یا یک در عدد دو به توان اعداد به ترتیب 0 تا 7 برای هر بیت بصورت جداگانه حاصل را بدست آورده و سپس مجموع اعداد بدست آمده را برای هر Octet بصورت جداگانه محاسبه می کنیم.

بنابر این اعداد 0 تا 7 را بعنوان توان در نظر میگیریم و عدد یک را در عدد دو که به ترتیب به توانهای ذکر شده در می آید ضرب میکنیم. به این شکل:

1

همانطور که در بالا مشاهده می کنید هر کدام از بیتها می تواند حاصل توان و ضرب نهایی به شکل بالا باشد.

در اولین bit حاصل ضرب 1 در دو به توان صفر عدد 1 می باشد.

در دومین bit حاصل ضرب 1 در دو به توان یک عدد 2 می باشد.

در سومین bit حاصل ضرب 1 در دو به توان دو عدد 4 می باشد.

در چهارمین bit حاصل ضرب 1 در دو به توان سه عدد 8 می باشد.

در پنجمین bit حاصل ضرب 1 در دو به توان چهار عدد 16 می باشد.

در ششمین bit حاصل ضرب 1 در دو به توان پنج عدد 32 می باشد.

در هفتمین bit حاصل ضرب 1 در دو به توان شش عدد 64 می باشد.

در هشتمین bit حاصل ضرب 1 در دو به توان هفت عدد 128 می باشد.

حال اگر این اعداد که به ازای هر کدام از bit های موجود در یک Octet با استفاده از عملیات بالا بدست آمده است را در کنار هم قرار دهیم، حاصل به شکل زیر خواهد بود:

2

همانطور که قبلا نیز اشاره کردیم به ازای هرbit  در یک Octet می توانیم یا عدد صفر داشته باشیم یا عدد یک. با بدست آمدن حاصل عملیاتی که در بخش قبل به آن اشاره کردیم و اینکه می توانیم در هر bit یا از صفر استفاده کنیم یا از یک، نتیجه محاسبات ما از این پس به این شکل خواهد بود که به ازای هر bit هر عددی که در آن با یک مشخص گردیده بود با توجه به جایگاه آن در Octet یعنی آن بیت در کجای Octet واقع شده است و به اصطلاح bit چندم می باشد، آن عدد یک را در عدد مشخص شده در بالا ضرب نموده و به ازای هر صفر نیز به همین شکل حاصل ضرب صفر در آن عدد در bit را که همان صفر خواهد بود در کنار هم قرار داده و حاصل هشت بیت را با هم جمع نموده و عدد بدست آمده عدد مربوط به آن Octet می باشد که در آدرس IP بعنوان یک Octet در نظر گرفته خواهد شد. به مثالهای زیر توجه نمائید:

در این مثال اعداد باینری موجود در هر Octet را بصورت جداگانه محاسبه می کنیم.

11010101.11101001.10001001.00001100

در Octet اول یعنی 11010101 به ازای هر عدد یک عدد مربوط به آن در جدول زیر را وارد می کنیم

3

در این Octet همانطور که مشاهده می نمائید از سمت چپ به راستbit اول  یک عدد 128 و bit دوم یک عدد 64 و زمانیکه به bit سوم می رسیم عدد صفر را مشاهده می کنیم به همین دلیل عددی که بدست خواهد آمد از حاصل ضرب صفر در عدد 32 خواهد بود که همان صفر است و bit چهارم یک عدد 16 وجود دارد، همچنین زمانی که به bit پنجم می رسیم عدد صفر را در آدرس مشاهد میکنیم که حاصل ضرب آن در عدد 8 همان صفر خواهد بود پس به ازای آن یک صفر در نظر می گیریم، bit ششم یک عدد 4 و bit هفتم نیز حاصل ضرب صفر در عدد 2 که صفر است خواهد بود و در نهایت در bit هشتم نیز یک عدد 1 در نظر خواهیم گرفت. در نهایت نتیجه محاسبات مربوط به این Octet به شکل زیر خواهد بود:

11010101

(1x128) + (1x64) + (0x32) + (1x16) + (0x8) + (1x4) + (0x2) + (1x1)

128 + 64 + 0 + 16 + 0 + 4 + 0 + 1

نتیجه این عملیات ساده عدد 213 خواهد بود.

حال به سراغ Octet دوم می رویم و به همین شکل اعداد باینری آن را به عدد دسیمال تبدیل می کنیم:

11101001

(1x128) + (1x64) + (1x32) + (0x16) + (1x8) + (0x4) + (0x2) + (1x1)

128 + 64 + 32 + 0 + 8 + 0 + 0 + 1

نتیجه این عملیات ساده نیز عدد 233 خواهد بود.

حال به سراغ Octet سوم می رویم و به همین شکل اعداد باینری آن را به عدد دسیمال تبدیل می کنیم.

10001001

(1x128) + (0x64) + (0x32) + (0x16) + (1x8) + (0x4) + (0x2) + (1x1)

128 + 0 + 0 + 0 + 8 + 0 + 0 + 1

نتیجه این عملیات ساده نیز عدد 137 خواهد بود.

حال به سراغ Octet چهارم می رویم و به همین شکل اعداد باینری آن را به عدد دسیمال تبدیل می کنیم.

00001100

(0x128) + (0x64) + (0x32) + (0x16) + (1x8) + (1x4) + (0x2) + (0x1)

0 + 0 + 0 + 0 + 8 + 4 + 0 + 0

نتیجه این عملیات ساده نیز عدد 12 خواهد بود.

در نهایت با بدست آوردن چهار Octet و با قرار دادن آنها در کنار هم می توانیم آدرس IPv4 را بصورت کامل در حالت Decimal در کنار یکدیگر داشته باشیم.

213.233.137.12

با مقایسه آدرس بدست آمده در حالت دسیمال با آدرس در حالت باینری می توانیم به راحتی و سهولت کار با آدرس های IPv4 در حالت دسیمال پی ببریم.

11010101.11101001.10001001.00001100                   213.233.137.12

11010101 = 213

11101001 = 233

10001001 = 137

00001100 = 12

با توجه به مواردی که به آنها اشاره نمودیم اگر اعداد باینری موجود در یک Octet  همگی در کوچکترین حالت ممکن یعنی صفر باشند عدد بدست آمده به شرح زیر عدد صفر خواهد بود:

00000000

(0x128) + (0x64) + (0x32) + (0x16) + (0x8) + (0x4) + (0x2) + (0x1)

0 + 0 + 0 + 0 + 0 + 0 + 0 + 0

حال اگر تمامی این اعداد را با یکدیگر جمع کنیم عدد بدست آمده 0 خواهد بود.

اگر اعداد باینری موجود در یک Octet همگی در بیشترین حالت یعنی عدد یک باشند عدد بدست آمده به شرح زیر 255 خواهد یود:

 11111111

(1x128) + (1x64) + (1x32) + (1x16) + (1x8) + (1x4) + (1x2) + (1x1)

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

حال اگر تمامی این اعداد را با یکدیگر جمع کنیم عدد بدست آمده 255 خواهد بود.

بنابر این کوچکترین و بزرگترین اعداد قابل استفاده در آدرس IPv4 به ترتیب اعداد 0 و 255 خواهد بود.

در بخشهای بعدی در مورد اجزای مختلف آدرس IPv4 و همچنین کلاسهای مختلف IPv4 صحبت خواهیم نمود.

Share

رای شما به "شبکه را آسان بیاموزیم – قسمت اول- آدرس دهی در شبکه – IPv4 Addressing" چیست؟

رای شما با موفقیت ثبت شد.

ثبت رای شما با پیغام خطا همراه بود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *