قبل از شروع توضیحات، ما 2 تا آیدی داریم، آیدی شبکه و آیدی کلاینت (منظور از کلاینت، کامپیوتر یا دستگاه فردی هست که داره از شبکه استفاده میکنه). هر دستگاهی که بخواد به یک شبکه (مثلا اینترنت) متصل بشه، نیاز داره که یک شناسه یکتا داشته باشه که اسمش رو میگذاریم آی پی (IP).
هر آی پی هم متشکل از 4 بخش هست که به نقطه از هم جدا شدن، مثلا 192.168.128.93
(اسم هر بخشش «اکتت» (octet) هست). سابنتمسک (subnet mask) هم که خب یک رشته 32 بیتی متشکل از اعداد هست که اون هم نظیر به نظیر آی پی، 4 بخش داره. از طرفی، 5 کلاس داریم (A, B, C, D, E) که هر آی پی، با توجه به رنج عددی هر اکتت، عضو یکی از این 5 تا کلاس هست.
0 - 127 => Class A => client.client.client.network
128 - 191 => Class B => client.client.network.network
192 - 223 => Class C => client.network.network.network
224 - 239 => Class D => MultipleCast Address
240 - 255 => Class E => Reserved
پس اگه یک آی پی با عدد بین 1 تا 126 شروع بشه (اعداد 0 و 127 جزو رزروها هستن) اون آی پی کلاس A هست، اگه با عدد 128 تا 192 شروع بشه کلاس B هست و اگه با 192 تا 223 شروع بشه کلاس C خواهد بود. این یعنی اینکه شما برای تشخیص کلاس آی پی فقط نیاز دارید که اکتت اول (سمت چپ ترین اکتت) رو نگاه بکنید.
خلاصه هر آی پی به یک کلاس تعلق میگیره که مبنی بر اون کلاس مشخص میشه که کدوم اکتت های این آی پی دارن به شناسه شبکه یا شناسه کلاینت اشاره میکنن. این رو هم اشاره بکنم که مثلا در کلاس A، ما 8 بیت برای شبکه (network) داریم، برای کلاس B ما 16 بیت برای شبکه داریم و به همین ترتیب، که اگه بخوام طبقه بندی بکنم به این شکل میشه:
11111111.00000000.00000000.00000000 (Class A, network part is 8 bits)
11111111.11111111.00000000.00000000 (Class B, network part is 16 bits)
11111111.11111111.11111111.00000000 (Class C, network part is 24 bits)
نکته: عموما کارت شبکه ها، میان چک میکنن که اگه آی پی مبدا و مقصد یک request رو با سابنتمسک چک میکنن و اگر برای جفتش سابنتمسک یکسان بود، کارت شبکه متوجه میشه که این یک درخواست در شبکه داخلی (local) هست و کلا درخواست رو به gateway نمیده که از شبکه داخلی خارج بشه.
حالا نحوه محاسبه سابنتمسک به این شکله: (بهش عملیات subnetting میگن، به این معنی که مبنی بر یک آی پی validی که داریم، میخوایم یک تعداد شبکه داخلی بسازیم. یعنی با یک آی پی، بشه چندین دستگاه رو توی یک شبکه داخلی (توسط سابنتی که براشون تنظیم شده) دید و بهشون دسترسی پیدا کرد)
مفروضات:
- آی پی:
192.168.128.93
- تعداد سابنت های مورد نیاز:
6
- اول باید تشخیص بدید که یک آی پی در چه کلاسی قرار میگیره. مثلا این آیپی "192.35.128.93" در کلاس C قرار میگیره.
- تعداد بیت ها رو در میاریم، مثلا توی کلاس C، ما 24 بیت داریم.
- فرمول:
Log2(Number of subnets + 2)
که خروجیش میشه تعداد بیت ها نهایی. که توی این مثال میشه Log2(6 + 2) = 3
. این به این معنی است که ما باید 3 بیت از بیت های 0
رو هم 1
بکنیم.
- محاسبات نهایی: از اونجایی که تشخیص دادیم آی پی مون در کلاس C قرار داره، تعداد بیت های فعلی میشن
11111111.11111111.11111111.00000000
، حالا توی پروسه سابنتیگ هم ما 3
بیت مازاد هم توی فرمول حساب کردیم که خروجی نهاییمون میشه: 11111111.11111111.11111111.11100000
که معادل دسیمال این عدد دودویی میشه: 255.255.255.224
که میشه همون سابنت مسکی که میخواستیم حساب کنیم.
نکته: آی پی valid به آی پی میگن که در شبکه غیر داخلی اعتبار داره. یعنی با اون آی پی، مثلا از خارج از کشور میتونن به سیستم شما متصل بشن. به زبان ساده تر، اون آی پی که ISP به مودم شما میده یک آی پی valid یا معتبر هست.