Picture of حسین نائیجی
حسین نائیجی

غرق در دنیای صفر و یک

IP Address چیست؟

سلام  به دوستان و همراهان گرامی تیم امنیتی عقاب سایبری  . در ادامه مجموعه آموزشی مقدمات شبکه قسمت پنجم در خدمت شما هستیم.

در این قسمت قرار هست تا مبحث مهمی تحت عنوان آدرس شبکه یا IP Address را خدمت شما عزیزان شرح دهیم. در دنیای دیجیتال ممکن است بارها و بارها آن را شنیده باشیم. اما در این مقاله قرار هست به صورت مفصل تر با آن آشنا شویم.  از لحاظ لغوی IP مخفف یا کوتاه شده ی internet Protocol است.  IP یک ادرس منحصر به فرد است. که به هر ماشین (node) فعال در شبکه اختصاص پیدا می کند و محل یا  Locationهر ماشین را در شبکه مشخص می کند. ساده تر می شود اینکه ادرس IP یک شناسه ای منحصر به فرد جهت شناسایی دستگاه ها روی اینترنت و شبکه محلی است. این آدرس اینترنتی امکان ارتباط بین دستگاه های مختلف را می دهد.

 این شناسه عددی به صورت منطقی یا (Logical) تعریف و اختصاص داده می شود. که تفاوت عمده ای با آدرس سخت افزاری یا Hardware Address که در کارت شبکه (NIC) تعریف می شود دارد.  که در مقاله ای دیگر نگاه مفصل تری به MAC Address که یک Hardware Address یا آدرس سخت افزاری است خواهیم داشت.

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

تا الان با جنبه های ساده IP آشنا شده اید. و الان نیاز دارید تا یکسری اصطلاحات و موارد پایه ای برای درک بهتر IP یاد بگیرید. که من آن را برایتان شرح خواهم داد. قبل از آغاز ماجراجویی نیاز است .چندین اصطلاح کاربردی را یاد بگیریم تا برای درک بهتر مطالب به ما کمک کند . سعی شده هر اصطلاح به صورت مختصر و کوتاه برسی شود تا مطالب سخت و گنگ نشود . اصطلاحات یا term از جمله Bit ، Byte ، Octet است که در ادامه با آن آشنا خواهید شد.

  • Bit : یک بیت (Bit) یک رقم دیجیتالی است که می تواند 0 یا 1 باشد.

  • Byte : هر 8 بیت یک بایت حساب می شود.

  • Octet : هر octet برابر با 8 بیت است ، یک عدد معمولی 8 بیتی که گاها با کلمه Byte جابه جا استفاده می شود. بین Byte و Octet تفاوت قائل شوید.  Octet عددی از 0 تا 255 را به صورت Decimal می سازد. اینکه دقیقا Decimal چیست آن را در ادامه بازگو خواهیم کرد پس نگران نباشید.

حالا نیاز است کمی تخصصی تر IP را برسی کنیم. IP ادرس از 32 بیت تشکیل شده که به چهار بخش در مبنای 10 تقسیم می شود که آن را آدرس ده دهی هم می نامند. هر بخش یک octet یا byte را می سازد. برای درک این مطلب یک مثال ساده می زنم ، 192.168.1.1 این یک آدرس اینترنتی است شاید با شکل و شمایل آن آشنا باشید . این آدرس را در نظر داشته باشید در قدم اول چهار قسمت را خواهید دید. که با یک نقطه (Dot) از هم جدا شدند در واقع هر قسمتی که با نقطه جدا شدند را octet می گویند. یعنی 192 یک octet و همچنین به ترتیب 168 و 1 و 1 هرکدام یک octet حساب می شوند. 

کمی دقیق تر محاسبه کنیم ، قبل تر گفتیم هر octet برابر با 8 بیت است. و IP متشکل از 32 بیت است شما اگر 32 را تقسیم بر 8 کنید به عدد 4 خواهید رسید. یعنی 4 octet که معادله آن (32 = 4 * 8) می شود. هر Octet می تواند عددی بین 0 تا 255 باشد. فعلا سخت نگیرید و نیازی نیست درگیر این اعداد شوید باید بیشتر خود را درگیر این مباحث کنید.

ما می توانیم آدرس اینترنتی یا IP را به سه روش نمایش دهیم :

  • Dotted-decimal, 172.16.30.56
  • Binary, 10101100.00010000.00011110.00111000
  • Hexadecimal, 10.1E.38

روش های بالا به ترتیب Hexadecimal ، Binary ، Decimal است. که روبه روی آن یک مثال از IP هم زده شده است. توجه کنید که هر کدام از روش های بالا یک آدرس IP مشابه اشاره دارند. در واقع 172.16.30.56 برابر است با 10101100.00010000.00011110.00111000 و 10.1E.38 ، فقط شکل نمایش آن متفاوت است.

بیشتر از این نیازی نیست درگیر این مسئله شویم. چراکه تبدیل هرکدام نیاز به محاسبه دارد که از حوصله این مقاله خارج است و مطالب را قطعا برایتان سخت و پیچیده می کند.

ادامه مبحث باید کمی جدی تر IP را برسی کنیم قبل از آن که وارد مبحث شویم بهتر است بدانید IP دو ورژن V4 و V6 دارد. IPv4 را قبل تر دیدید 192.168.1.1 یک نمومه IPv4 است. چندان نمی خواهد فعلا درگیر تفاوت عمده بین IPv4 و IPv6 شوید چراکه اول باید IPv4 را یاد بگیرید. چیزی که امروزه به صورت گسترده در حال استفاده است.

IP address classes

آدرس IP دارای پنج کلاس آدرس دهی است که شامل رنج IPهای معتبر است. نام این کلاس های به ترتیب از A تا E است که در تصویر زیر می توانید آن را ببینید.

هر کلاس نقش متفاوتی را در شبکه ها بازی می کند برای مثال برای شبکه های بزرگ از کلاس A و برای شبکه های متوسط و کوچک به ترتیب B و C استفاده می شود. برای این بتوانیم کلاس هر IP را مشخص کنیم باید به Octet اول آن آدرس IP نگاه کنیم . برای مثال به این آدرس 102.168.212.226 دقت کنید  ، Octet اول آن عددی بین 1 تا 126 است پس طبق عکس و کلاس بندی این آدرس در کلاس A قرار می گیرد.

اما کلاس D و  E چه کاربردی دارد؟ سوال به جائی است . طبق تصویر بالا ادرس در octet اول بین 224 تا 255 به کلاس  D و E در شبکه اختصاص پیدا کرده است. کلاس D (239-224) برای Multicast استفاده می شود. کلاس E (255-240) برای اهداف علمی استفاده می شود. و بیشتر از این نیاز نیست به جزئیات آن بپردازیم. 

Multicast , Unicast , Broadcast

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

به ترتیب زیر است :

  • Multicast
  • Unicast
  • Broadcast

Multicast چیست؟ 

در این ساختار ارتباطی ما یک ارتباط یک به چند را خواهیم داشت . یعنی کامپیوتر مبدا یا فرستنده با گروهی از سیستم های دریافت کننده ارتباط برقرار می کند .و شروع به ارسال و دریافت می کند. در کلاس بندی IP کلاس D را Multicast گویند.

Unicast چیست؟

در این ساختار ارتباطی ما یک ارتباط یک به یک را خواهیم داشت . کامپیوتر فرستنده با یک کامپیوتر دریافت کننده شروع به برقراری ارتباط و رد وبدل کردن بسته ها می کنند.

Broadcast چیست؟

در این ساختار ارتباطی ما یک ارتباط یک به همه را خواهیم داشت . یعنی کامپیوتر فرستنده بسته خود را برای تمامی Node های موجود در شبکه ارسال کند . فرض کنید در خانه در خواست خود را بدون مخاطب بلند بلند بیان کنید و کسانی که در اطرافتان هستند حرف شمارا بشنوند.

برای درک موارد توضیح داده شده بالا بهتر است نگاهی به عکس زیر بی اندازید.

IP Private and IP Public

IP Public

آی پی عمومی یا آی پی Public برای دسترسی مستقیم به اینترنت از یک دستگاه استفاده می شود. در واقع شما برای دسترسی به اینترنت نیاز به یک آی پی پابلیک یا عمومی دارید در واقع تمامی دستگاه هایی که در اینترنت قرار دارند. مثل یک سرور یا سرویس دهنده های ایمیل یا غیره برای ارائه سرویس نیازمند به یک آی پی عمومی هستند. در مقابل تمامی سیستم هایی که خواهان دریافت سرویس در سطح اینترنت هستند باید یک آدرس عمومی داشته باشند. حتی شما با یک  آیپی عمومی در حال خواندن این مقاله آموزشی هستید. آدرس آی پی عمومی یک آدرس منحصر به فرد است ، برای پیدا کردن آدرس عمومی تان می توانید در یک مرورگر مانند کروم این عبارت What is my IP را سرچ کنید.

IP Private

در مقابل آدرس عمومی ما یک آی پی خصوصی یا Private داریم. که گاهاً آنرا به عنوان آدرس آی پی محلی نیز می شناسند. آی پی پرایوت در شبکه های خصوصی استفاده می شود. و اینترنت هیچ درکی از این آدرس خصوصی ندارد . عملاً این آدرس ها مسیریابی نمی‌شود. برای پیدا کردن آدرس پرایوت یا خصوصی در سیستم عامل ویندوز می توانید از خط فرمان یا CMD استفاده کنید.

کلید ترکیبی Logo + R فشار دهید تا یک dialog box ظاهر شود و در کادر جستجو عبارت CMD تایپ کنید. حال در خط فرمان هستید و دستور ipconfig /all را تایپ کنید در قسمت کارت شبکه خود دنبال عنوانی به نام IPv4 Address بگردید.

IP Reserved

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

این IP های رزرو شده همان IP Private هستند. که قبل تر آن را برسی خواهیم کرد ، سوالی که مطرح میشود این است در کلاس بندی IP چه رنجی مخصوص IP های خصوصی است؟ در کلاس بندی IP در هر سه کلاس A , B , C یک رنج برای شبکه های داخلی رزور شده است.

در تصویر بالا کلاس A رنجی از 10.0.0.0 تا 10.255.255.255 است که برای IPهای خصوصی رزرو شده است.
در کلاس B هم رنجی از 172.16.0.0 تا 172.31.255.255 برای IPهای خصوصی رزرو شده است.
کلاس C ، رنجی از تا 192.168.0.0 تا 192.168.255.255 را برای IPهای خصوصی رزرو کرده است.

Loopback IP Addresses

IP آدرس از رنج 127.255.255.255 – 127.0.0.0 مربوط به آدرس Loopback است که برای عیب یابی کارت شبکه استفاده می شود. آدرس آن 127.0.0.1 است.

Subnet Mask

قبل از آن که وارد مبحث Subnet Mask شویم بهتر است یک مثال را بیان کنم.

خب محوریت مبحث ما IPv4 خواهد بود.  IP که متشکل است 32 بیت و دو بخش NetworkIDو HostIDتشکیل شده است. یک خانواده 5 نفره را در نظر بگیرید ، فامیلی آن ها به فرض قاسمی است. و هریک اعضای خانواده یک اسم مشخص دارند مثلا پدر خانواده حسن است که میشود حسن قاسمی. به ترتیب فرزندان علی و اصغر که فامیلی آن ها یکسان است. در IP آدرس قسمت Network برابر با همان فامیلی است که شمارا با همسایه تان که فامیلی اش حسن زاده است متمایز می کند. و همه اعضا را که اسم هایی متفاوتی را در خانواده قاسمی دارند را می توانیم یک host در نظر بگیریم.

این صرفا یک مثال ساده جهت تصویر سازی ذهنی بود تا کمی با این مبحث آشنا شوید. در واقع Subnet mask بخش HostIDو NetworkIDرا از هم جدا می کند.

قبل تر گفتیم IP آدرس یک نشانه 32 بیتی است و سه روش نمایش IP را هم ذکر کردیم .الان می خواهیم از روش های Decimal و Binary استفاده کنیم. هر Octet در حالت Decimal می تواند عددی بین 0 تا 255 باشد. هر  Octet دارای 8 بیت است برای اینکه  HostID و NetworkID در IP مشخص شود طبق کلاس بندی شده تعداد بیت های Network برابر با 1 قرار میگیرد و تعداد بیت های Host برابر با 0 قرار می گیرد.

به تصویر زیر دقت کنید.

همانطور در تصویر بالا مشاهده می کنید. در کلاس A هشت بیت اول یعنی Octet اول برابر با NetworkID است که باید برابر با 1 قرار بگیرد .که به صورت باینری می شود 11111111.00000000.00000000.00000000 ، هشت بیت Octet اول طبق کلاس A برابر است با 1 و بقیه بیت ها از Octet های دیگر برابر است با 0 که HostID را مشخص می کند.  در ادامه Subnet Mask برابر می شود با 255.0.0.0 چراکه اعداد باینری تبدیل به Decimal می شود .

تا همین قسمت کافی است هرچند می شود با جزئیات زیاد به مسئله پرداخت اما از حوصله این مقاله خارج است.