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

برنامه سازی شبکه در سی شارپ

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

آدرس های IP

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

نکته:

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

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

مثال : ۶۶٫۱۲٫۲۰۱٫۱۸۰

اندازه آدرس  IP چهار بایت است و در هر قسمت ( هر یک از بایت ها) می توان عدد ۰ تا ۲۵۵ قرار گیرد. دلیل این امر این است که هر بایت از هشت بیت تشکیل شده است و با هشت بیت حداکثر می توان عدد ۲۵۵ را تولید کرد. پس محدوده آدرس های IP می تواند از    ۰٫۰٫۰٫۰ تا  ۲۵۵٫۲۵۵٫۲۵۵٫۲۵۵ باشد.

نکته:

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

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

: ۱۲۷٫۰٫۰٫۱

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

۲۵۵٫۲۵۵٫۲۵۵٫۲۵۵  :

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

۰٫۰٫۰٫۰

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

۱۹۲٫۱۶۸٫۰٫۰

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

اجزای آدرس IP

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

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

مثال:

۲۱۷٫۲۱۹٫۲۱۱٫۱۰

 ۲۱۷٫۲۱۹٫۲۱۱٫۵۰

۲۱۷٫۲۱۹٫۲۱۱٫۱۸۰

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

کلاس های IP

IP Address ها کلاً به ۵ قسمت یا ۵ کلاس مختلف تقسیم میشوند 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 ۲۲۳-۱۹۱ ۲۵۵.۲۵۵.۲۵۵.۲۵۵

برچسب ها

,

محصولات پیشنهادی


نظرات کاربران


نظرات برای آموزش برنامه سازی شبکه با C# | بدون نظر »

کاربر عزیز، لطفاً دیدگاه ارزشمند خود را از طریق فرم زیر برای ما ارسال کنید:

درباره کدنویسان
آکادمی کدنویسان جهت کمک به دانشجویان رشته های کامپیوتر و فناوری اطلاعات و همه علاقمندان به طراحی و برنامه نویسی برای ویندوز، وب و موبایل ایجاد شده است.
بیشتر آموزش های سایت کدنویسان، بصورت رایگان ارائه شده است و بعضی بسته های آموزشی تصویری و نیز نرم افزارهای پیاده سازی شده در ازای پرداخت، قابل دانلود هستند.
هر گونه نظر، انتقاد یا پیشنهادی در مورد مطالب یا عملکرد کدنویسان دارید، حتما با ما در میان بگذارید.
نمادهای اعتماد ما


تماس با ما
  • شماره همراه : ۰۹۱۵۱۶۰۴۰۶۸
  • آی دی تلگرام : @mmoha94
  • پست الکترونیکی : mohammadi.sm@gmail.com
  • آدرس پستی : بیرجند، خیابان پیروزی، پیروزی ۹، پلاک ۲۸
کلیه حقوق متعلق به سایت کدنویسان است، انتشار و کپی برداری از مطالب این سایت غیرمجاز بوده و پیگرد قانونی دارد.