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

آدرس های IP

آدرس IP در لایه سوم مشخص شده است و براي مسیریابی و انتقال بسته ها مورد استفاده روتر هاي شبکه قرار می گیرد.

نکته:

آدرس IP شامل شماره شبکه و شماره کامپیوتر موجود درآن شبکه است.

آدرس IP بطور استاندارد به صورت چهار عدد در مبناي 10 که با نقطه از هم جدا شده اند نوشته می شود

مثال : 66.12.201.180

اندازه آدرس  IP چهار بایت است و در هر قسمت ( هر یک از بایت ها) می توان عدد 0 تا 255 قرار گیرد. دلیل این امر این است که هر بایت از هشت بیت تشکیل شده است و با هشت بیت حداکثر می توان عدد 255 را تولید کرد. پس محدوده آدرس هاي IP می تواند از    0.0.0.0 تا  255.255.255.255 باشد.

نکته:

به دلیل اینکه بخشی از این تعداد آدرس IP براي موارد خاصی در نظر گرفته شده است نمی توان از تمامی طول این رنج براي آدرس دهی شبکه هاي موجود در جهان استفاده کرد.

براي درك بیشتر این موضوع به مثال هاي زیر توجه کنید

: 127.0.0.1

این آدرس IP LoopBack نام دارد و در سیستم هاي کامپیوتري براي آزمایش و اشکالزدایی از آن استفاده می شود. در صورتی که بسته اي را به این آدرس ارسال کنیم، این بسته تا سطح لایه فیزیکی پایین رفته و دوباره به ماشین برگردانده می شود. بدین ترتیب می توانیم ایرادات احتمالی در سیستم شبکه یک ماشین را کشف کنیم.

255.255.255.255  :

از این آدرس براي ارسال یک بسته به تمامی ماشین هاي موجود درشبکه استفاده می شود و به آن Broadcast گویند.

0.0.0.0

این آدرس یک آدرس نامعتبر است و بیشتر در مسیریاب ها براي عملیات مسیریابی و استفاده در پروتکل هاي مسیریاب از آن استفاده می شود.

192.168.0.0

این آدرس یک IP Invalid است و از آن می توان براي ماشین هایی استفاده کرد که مستقیم به شبکه جهانی اینترنت وصل نیستند ( در شبکه هاي خصوصی مستقل استفاده می شود).

اجزاي آدرس IP

یک آدرس IP از دو بخش تشکیل شده است. بخش اول که مقداري از فضاي 32 بیتی آدرس IP را به خود اختصاص می دهد و مشخص کننده شبکه اي است که ماشین به آن تعلق دارد و براي تمام ماشین هاي موجود در یک شبکه یکسان است و بخش دوم که آدرس ماشین موجود در شبکه است. این بخش بقیه بیت هاي موجود در آدرس IP را به خود اختصاص می دهد.

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

مثال:

217.219.211.10

 217.219.211.50

217.219.211.180

تمام آدرس هاي فوق مربوط به ماشین هاي موجود در یک شبکه هستند. نکته: به بخش مربوط به مشخصه شبکه در آدرس IP ، NetID گفته می شود.

کلاس های IP

IP Address ها کلاً به 5 قسمت یا 5 کلاس مختلف تقسیم میشوند A , B , C , D , E که کلاس های D و E مصارف خاصی را دارند ، در این قسمت سه کلاس مهم A ، B و C را آموزش می دهیم:

هر آدرس IP يک آدرس ۳۲ بيتى است که نمايش آن بصورت دهدهى با مميز شناور مى‌باشد. هر آدرس IP از دو قسمت تشکيل مى‌شود:

– شبکه (Net ID)

– ميزبان (Host ID)

هر کامپيوترى که در شبکه TCP/IP قرار مى‌گيرد بايد داراى يک آدرس IP سى‌ودو بيتى منفرد و يکتا باشد. نمونه‌اى از يک آدرس IP مى‌تواند بصورت زير باشد:

برنامه نویسی شبکه با سی شارپ - کلاس های آدرس IP

مثال:IP Address = 192.168.30.59

همانطور که بيان شد هر آدرس IP از دو قسمت يکى Net ID و ديگرى Host ID تشکيل مى‌شود که دسته‌اى از بيت‌ها تعيين‌کننده Net ID آدرس IP هستند و زمانى که تعداد بيت‌هاى Net ID تمام شد، بيت‌هاى مربوط به Host ID مورد استفاده قرار مى‌گيرند. البته اين امر بستگى به کلاسى دارد که Net ID در آن قرار دارد.

کلاس‌هاى مختلفى در اين ارتباط وجود دارند، مانند A,B,C,D,E اما تمرکز ما در اينجا روى کلاس‌هاى A,B,C است.

کلاس A

هر شبکه کلاس A داراى Net ID هشت بيتى و Host ID بيست و چهار بيتى است. منظور از اين تقسيم‌بندى اين است که اين شبکه تعداد ۲۲۴ کامپيوتر را مى‌تواند پشتيبانى کند.

در شبکه کلاس A همواره اولين بيت سمت چپ صفر است، اما هريک از سى‌ويک بيت باقى‌مانده مى‌تواند صفر يا يک باشند.

برنامه نویسی شبکه با سی شارپ - کلاس A آدرس IP

حال اگر فقط ۸ بيتى را که Net ID را تشکيل مى‌دهند به تمامى ترکيبات موجود از صفر و يک‌ها تبديل نماييد اعداد بين ۱۲۷-۰ بدست خواهد آمد.

تذکر ۱:اولين Net ID که در شبکه کلاس A قرار دارد ۱ و آخرين آنها ۱۲۶ است.

تذکر ۲:آدرس IP بصورت ۱۲۷.۰.۰.۱ را Loop Back Address مى‌گويند و به دستگاه کامپيوترى که هم‌اکنون بر روى آن کار مى‌کنيم اشاره مى‌کند.

کلاس B

هر شبکه کلاس B يک Net ID و يک Host ID شانزده بيتى دارد. منظور از اين تقسيم‌بندى اين است که اين شبکه تعداد ۲۱۶ کامپيوتر را مى‌تواند پشتيبانى کند. در شبکه کلاس B همواره اولين بيت سمت چپ يک است و هريک از ۳۱ بيت باقى‌مانده مى‌تواند صفر يا يک باشد.

برنامه نویسی شبکه با سی شارپ - کلاس B آدرس IP

حال اگر فقط ۸ بيت چپ‌ترين Net ID را به تمامى ترکيبات موجود از صفرو يک‌ها تبديل نماييد اعداد بين ۱۹۱-۱۲۸ بدست خواهد آمد.

کلاس C

هر شبکه کلاس C يک Net ID متشکل از ۲۴ بيت و يک Host ID هشت بيتى دارد و منظور از اين طبقه‌بندى آن است که اين شبکه توانايى پشتيبانى از ۲۸ کامپيوتر را دارا مى‌باشد.

در شبکه کلاس C همواره دو بيت اول سمت چپ يک و بيت سوم هميشه صفر است و ۲۹ بيت باقى‌مانده مى‌توانند صفر يا يک باشند.لذا با توجه به سه بيت سمت چپ (۱۱۰) و تمامى ترکيبات صفر و يک در پنج بيت ديگر Net ID اعداد بين ۱۹۲ و ۲۲۳ بدست خواهد آمد.

به ياد بايد داشت که تخصيص Net IDهاى کلاس A درمواقعى صورت مى‌گيرد که نياز به پشتيبانى تعداد زيادى کامپيوتر Host (ميزبان) وجود دارد همچنين، تخصيص Net IDهاى شبکه کلاس B در مواقعى انجام مى‌پذيرد که نياز به پشتيبانى تعداد متوسطى از Hostها وجود دارد و Net IDهاى شبکه کلاس C نيز زمانى اختصاص مى‌يابند که تعداد کمى Host يعنى حداکثر ۲۵۴ عدد مورد نياز است. براى اطلاعات بيشتر بحث ماسک‌هاى زيرشبکه (Subnet Mask) را نيز ببينيد.

برنامه نویسی شبکه با سی شارپ - کلاس C آدرس IP

 

ماسک‌هاى زيرشبکه (Subnet Mask)

subnet mask در يک شبکه مشخص مى‌کند که کدام بخش از يک آدرس IP به آدرس شبکه (Net ID) و کدام بخش به آدرس ميزبان (Host ID) تعلق دارد.

در يک شبکه براى شناسايى اينکه آيا يک آدرس IP متعلق به اين شبکه مى‌باشد يا خير کافى است تا آدرس مربوط به Net ID آن را با ماسک زيرشبکه and کنيم. درصورتى که با آدرس شبکه (Net ID) يکى گردد بدان معناست که اين آدرس IP متعلق به شبکه موردنظر است.

در جدول زير کلاس‌هاى مختلف آدرس‌هاى IP به‌همراه subnet maskهاى مربوطه نمايش داده شده است.

کلاس محدوده ماسک زیر شبکه
A ۱۲۶-۱ ۲۵۵.۰.۰.۰
B ۱۲۸-۱۹۱ ۲۵۵.۲۵۵.۰.۰
C ۲۲۳-۱۹۱ ۲۵۵.۲۵۵.۲۵۵.۲۵۵