این مقاله را به زبان دیگر ببینید:
Ip مخفف internet protocol میباشد. مهمترین وظیفه پروتکل IP آدرس دهی و مشخص کردن مبدا و مقصد یک packet میباشد. IP نیز همانند بسیاری از پروتکلهای دیگر در شبکه دارای ورژن و استانداردهای مختلفی هست.
در حال حاضر چیزی که خیلی در شبکههای کامپیوتری رایج است IPv4 میباشد. البته قرار بر این بود تا پایان سال ۲۰۲۲ میلادی در تمامی شبکههای کامپیوتری از IPv6 استفاده شود.
در واقع یکی از مشکلات بزرگ IPv4 تعداد کم آن نسبت به کامپیوترهای موجود در سراسر جهان میباشد. ساختار IPv4 با IPv6 متفاوت است. ساختار IPv4 متشکل از چهار بخش ۸ بیتی میباشد که بین هر ۸ بیت از آن یک علامت نقطه قرار میگیرد؛ یعنی در مجموع IPv4 یک آدرس ۳۲ بیتی میباشد.
یعنی در دنیای واقعی شما قادر خواهید بود 4,294,967,296 عدد IPv4 داشته باشید که به نسبت تعداد کامپیوترهای موجود در جهان این رقم بسیار کمی میباشد. IP Address متشکل از دو قسمت NetID و HostID هست.
NetID یا net id تعیین کننده رنج شبکه کامپیوتری شما میباشد و host id کامپیوتر شما را در یک شبکه کامپیوتری منحصر به فرد میسازد. بر خلاف داستانی که در بخشهای مختلف MAC Address داشتیم، در IP Address ممکن است مقدار net id و host id در یک IP Address یکی نباشد.
منظور من این است که در MAC Addressهای ۴۸ بیتی ما گفتیم متشکل از دو بخش OUI و Device id هست که هر کدام از این بخشها ۲۴ بیت هستند یعنی تعداد بیتهای آنها با یکدیگر برابر است. ولی در IP Address در بیشتر موارد net id و host id دارای تعداد بیت یکسانی نیستند.
Subnet mask
سوال مهم اینجاست که چه چیزی مشخص میکند که چند بیت از هر IP Address مربوط به host id و چند بیت آن مربوط به net id میباشد؟
در کنار هر IP Address مولفهی دیگری بنام subnet مشخص میشود که تعیین کننده بیتهای Net ID میباشد. در شبکههای کامپیوتری مدیر شبکه تعیین میکند که هر کامپیوتر چه IP Address با چه subnet خواهد داشت.
Subnet mask در واقع تعیین کننده این است که چه مقدار از یک IP Address متعلق به Net ID است. برای مثال شما در هنگام تنظیم IP بر روی کامپیوتر خود باید یک Subnet mask وارد کنید.
در صورتی که شما مقدار 255.255.255.0 را داخل این قسمت وارد کنید، این به این معناست که Net id شما شامل ۲۴ بیت و Host id شما شامل ۸ بیت میباشد. در بعضی از سیستمها این مقدار را بصورت /۲۴ نیز نشان میدهند.
یعنی مقدار بالا در برخی از سیستمها بصورت «192.168.100.1/24» نمایش داده میشوند. بعد از علامت «/» تعداد بیتهایی قرار میگیرد که متعلق به net id است. در واقع همه چیز به تبدیل اعداد دسیمال به باینری مربوط میباشد.
شما نمیتوانید هر Subnet mask کهع میخواهید داشته باشید. در واقع چون بیتها تک تک اضافه میشوند امکان این وجود ندارد هر Subnet mask را که میخواهید بسازید.
در جدول زیر من Subnet maskهای موجود برای IPv4 را برای شما نوشتهام:
Subnet mask |
Binary mask |
CIDR |
255.0.0.0 |
11111111.00000000.00000000.00000000 |
/8 |
255.128.0.0 |
11111111.10000000.00000000.00000000 |
/9 |
255.192.0.0 |
11111111.11000000.00000000.00000000 |
/10 |
255.224.0.0 |
11111111.11100000.00000000.00000000 |
/11 |
255.240.0.0 |
11111111.11110000.00000000.00000000 |
/12 |
255.248.0.0 |
11111111.11111000.00000000.00000000 |
/13 |
255.252.0.0 |
11111111.11111100.00000000.00000000 |
/14 |
255.254.0.0 |
11111111.11111110.00000000.00000000 |
/15 |
255.255.0.0 |
11111111.11111111.00000000.00000000 |
/16 |
255.255.128.0 |
11111111.11111111.10000000.00000000 |
/17 |
255.255.192.0 |
11111111.11111111.11000000.00000000 |
/18 |
255.255.224.0 |
11111111.11111111.11100000.00000000 |
/19 |
255.255.240.0 |
11111111.11111111.11110000.00000000 |
/20 |
255.255.248.0 |
11111111.11111111.11111000.00000000 |
/21 |
255.255.252.0 |
11111111.11111111.11111100.00000000 |
/22 |
255.255.254.0 |
11111111.11111111.11111110.00000000 |
/23 |
255.255.255.0 |
11111111.11111111.11111111.00000000 |
/24 |
255.255.255.128 |
11111111.11111111.11111111.10000000 |
/25 |
255.255.255.192 |
11111111.11111111.11111111.11000000 |
/26 |
255.255.255.224 |
11111111.11111111.11111111.11100000 |
/27 |
255.255.255.240 |
11111111.11111111.11111111.11110000 |
/28 |
255.255.255.248 |
11111111.11111111.11111111.11111000 |
/29 |
255.255.255.252 |
11111111.11111111.11111111.11111100 |
/30 |
255.255.255.254 |
11111111.11111111.11111111.11111110 |
/31 |
255.255.255.255 |
11111111.11111111.11111111.11111111 |
/32 |
در صورتی که شما در شبکه خود از Subnet mask 255.255.255.252 استفاده کنید، دو بیت برای host id باقی میماند و شما با این دو بیت میتوانید ۴ آیپی (IP) تولید نمایید.
در صورتی که شما در شبکه خود از Subnet mask 255.255.255.248 استفاده کنید، سه بیت برای host id خواهید داشت و شما با این سه بیت میتوانید ۸ ip تولید نمایید. و به همین صورت در صورتی که از subnet، /24 استفاده کنید میتوانید 256 ip در مجموع داشته باشید.
یعنی شما با در دست داشتن ۸ بیت میتوانید از ۰ تا ۲۵۵ عدد تولید کنید. یعنی در کل ما ۲۵۶ عدد از یک octet خواهیم داشت. در صورتی که تمامی بیتهای Host ID در یک IP Address برابر صفر باشد، به این IP Address، network id گفته میشود.
و در صورتی که تمامی بیتهای Host ID در یک IP Address برابر یک باشد، به این IP Address، broadcast ip گفته میشود. یعنی درست است که ما در کل با ۸ بیت توانایی ساخت ۲۵۶ IP Address را داریم ولی این تعداد را به Hostهای داخل شبکه نمیتوانیم اختصاص دهیم.
از این ۲۵۶ IP Address ما دو IP Address داریم که مربوط به Broadcast IP و Network ID میشود. در نتیجه از این 256 IP Address تنها 254 IP Address را میتوانیم به Hostهای داخل شبکه اختصاص دهیم.
یعنی شما اگر از subnet mask /30 استفاده کنید تنها دو Host در شبکه خود میتوانید داشته باشید.
IP Address version 6
اصلیترین دلیل تولید IPv6 این بود که در IPv4 محدودیت تعداد IP وجود داشت. البته IPv4 نواقص دیگری هم داشت که در IPv6 ما دیگر شاهد آن نبودیم.
IP در واقع آدرس logical استفاده شده در لایه سوم مدل فرضی OSI میباشد.