آموزش شبکه و آدرس دهی در شبکه (IPv4 Addressing)_بخش اول

آموزش شبکه و آدرس دهی در شبکه (IPv4 Addressing)_بخش اول

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

ممکن است فکر کنید آدرس دهی 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 همان طور که مشاهده می نمائید از سمت چپ به راستbi t اول  یک عدد 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 صحبت خواهیم نمود.

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

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

دیدگاه های این مطلب

هیچ نظری ارسال نشده است.

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

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