آموزش مقدمات شبکه – بخش نهم

دوره آموزشی مقدمات شبکه

آشنایی با پروتکل های شبکه

پروتکل ICMP (Internet Control Message Protocol)

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

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

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

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

Ping 10.0.0.1

از این دستور برای تست برقراری ارتباط استفاده می شود. هنگامی که این دستور را در محیط CMD وارد می کنید، اگر ارتباط برقرار باشد با پیغامی شبیه زیر مواجه می شوید.

Reply from 216.239.32.20: bytes=32 time=199 ms TTL=40

خط بالا بدین معنی است که پاسخ از آدرس 216.239.32.20 دریافت شده است. حجم بسته ای که از آدرس مقصد دریافت شده است 32 بایت است. زمانیکه طول کشیده تا پاسخ دریافت شود 199 میلی ثانیه بوده است. TTL که مخفف Time To Live است در بخش مربوط به سرآیند IP توضیح داده شده است.

این جا این عدد برابر 40 می باشد. به صورت پیش فرض اگر مقصد از سیستم عامل لینوکس استفاده نماید این عدد 64 است. اگر از ویندوز استفاده کرده باشد، این عدد 128 است و اگر از سخت افزارهای سیسکو استفاده شده باشد، این عدد 256 می باشد.

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

پیام های ICMP

ARP (Address Resolution Protocol)

کار پروتکل ARP تبدیل آدرس IP به MAC بوده و با ارسال بسته های Broadcast در سطح شبکه، آدرس های MAC ماشین های داخل شبکه را شناسایی می کند. هنگامی که یک ماشین نیاز به برقراری ارتباط با دیگران داشته باشد، به جدول ARP مراجعه می کند. اگر آدرس MAC در این جدول پیدا نشد، پروتکل ARP یک بسته Broadcast را برای شناسایی آن درون شبکه پخش می کند.

در واقع در جدول ARP برای هر IP آدرس MAC آن مشخص شده است.
یک کامپیوتر هنگامی که بسته های ARP Request و ARP Reply را دریافت می نماید، حافظه ARP یا ARP Cache خود را بروز رسانی می نماید. یک میزبان در یک شبکه LAN می تواند بسته های ARP را به راحتی جعل نماید زیرا پروتکل ARP نیازی به احراز هویت ندارد. نفوذگر می تواند این نقض ذاتی را به عنوان یک مزیت در نظر گرفته و کامپیوتر های داخل شبکه را مورد حمله قرار دهد.

برای مدیریت این پروتکل می توان از دستورات خط فرمان کمک گرفت.
برای دیدن لیست مک های حافظه ای آر پی

ARP –a IP

محتویات حافظه ARPکارت شبکه ای را نشان می دهد که توسط آی پی مشخص شده است

ARP –n IP

برای اضافه کردن یک مک به حافظه ای آر پی

ARP –s IP MAC

برای پاک کردن یک مک از حافظه ای آر پی

ARP –d IP

DHCP(dynamic host configuration protocol)

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

هنگامی که این بسته به سرور DHCP رسید، سرور آن را تحویل گرفته و یک بسته Unicast به عنوان DHCP Offer به سمت کاربر ارسال می کند. این بسته بدین معنی است که سرور DHCP خود را به کاربر معرفی می کند. کاربر پس از دریافت این بسته، یک بسته Broadcast به عنوان DHCP Request را در سطح شبکه پخش خواهد کرد که بیانگر آمادگی برای گرفتن IP اتوماتیک است.

در این زمان سرور DHCP پس از دریافت بسته DHCP Request یک بسته Unicast با عنوان DHCP Ack را به سمت کاربر ارسال می کند که این بسته حاوی اطلاعات مربوط به IP اتوماتیک برای کاربر است.

پروتکل های لایه Transport

دو پروتکل مهم که در این لایه کار می کنند عبارتند از :

TCP(Transmission Control Protocol)

این پروتکل یک پروتکل اتصال گرا (Connection Oriented) می باشد بدین معنی که ابتدا ارتباط برقرار شده و سپس داده ارسال می شود و این پروتکل نیز به بسته اطلاعاتی تحت عنوان هدر (Header) اضافه می کند.
در این پروتکل ایجاد یک ارتباط TCP معروف به دست تکانی سه مرحله ای (three way handshake) می باشد .

در این پروتکل صحت دریافت داده ها مشخص می گردد و دارای امنیت بیشتری نسبت به UDP می باشد.

Three-Way Handshake یا دست تکانی سه مرحله ای

TCP که یکی از پروتکل های مهم شبکه است، برای برقراری ارتباط بین دو دستگاه مانند کلاینت و سرور، از روشی به نام دست تکانی سه مرحله ای یا Three-Way Handshake استفاده می کند. مراحل این دست تکانی به شکل زیر است.

مرحله اول : در این مرحله سیستم اول بسته ای را که فقط flag SYN در آن تنظیم شده است، به سیستم دوم ارسال می کند.(درخواست برقراری ارتباط)
مرحله دوم: در این مرحله سیستم دوم بسته ای را که flag های SYN و ACK در آن تنظیم شده است به سیستم اول پاسخ می دهد.(آمادگی برای ارتباط)
مرحله سوم: در این مرحله سیستم اول پاسخی را به سیستم دوم ارسال می کند که فقط حاوی ACK flag درون بسته ارسالی می باشد.(برقراری ارتباط)

اگر سه مرحله بالا بدون هیچ مشکلی انجام شود، یک ارتباط TCP بین دو سیستم برقرار شده است.

آشنایی با flag های TCP

در ساختار TCP شما به موردی به نام Flag بر خواهید خورد. Flag به معنی پرچم می باشد. زمانی که مانند تصویر بالا ارتباطی آغاز می گردد، یه بسته به سمت مقصد ارسال می شود که نشانگر درخواست برقراری ارتباط است. این بسته حاوی بخشی به نام Flag است که اگر قسمت SYN در آن برابر یک باشد، به معنی درخواست آغاز ارتباط می باشد. لیست Flag ها و کاربرد آن به صورت زیر است.

SYN(Synchronize): از این flag برای آغاز یک ارتباط بین دو سیستم استفاده می شود.
ACK(Acknowledgment): از این flag به منظور تصدیق رسیدن یک بسته استفاده می شود.
PSH(Push): این flag به منظور ارسال بلافاصله داده های بافر شده استفاده می شود.
RST(Reset) : از این flag به منظور دوباره راه اندازی ارتباط استفاده می شود.
FIN(Finish) : این flag اشاره دارد به این موضوع که دیگر انتقال انجام نپذیرد.
URG(Urgent): وجود این flag به این موضوع اشاره دارد که داده های داخل بسته باید بلافاصله پردازش شوند.

UDP(User Datagram Protocol)

این پروتکل یک پروتکل بدون اتصال (connection less) می باشد یعنی برای ارسال اطلاعات ابتدا ارتباط برقرار نمی شود سپس اطلاعات ارسال شود. از این پروتکل زمانی استفاده می شود که صحت داده ها در سمت دریافت کننده مهم نبوده و سرعت از اهمیت بیشتری برخوردار باشد
امینت در این پروتکل کمتر از TCP می باشد ولی سرعت آن بیشتر است.

پورت

مورد دیگری که در ساختار لایه انتقال اهمین دارد پورت یا درگاه است. پورت برای برقراری ارتباط بین کلاینت و سرور از اهمیت بسزایی برخوردار است. پورت ها به دو دسته سخت افزاری و نرم افزاری تقسیم بندی می شوند.
پورت های سخت افزاری شامل پورت USB، PS2، Serial ، VGA و از این دست می باشد. به طور کلی پورت های سخت افزاری به صورت فیزیکی قابل رویت بوده و تعداد آنها محدود می باشد.

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

1024-1 پورت های مربوط به سرویس های خاص شبکه که به آن ها پورت های ثبت شده نیز گفته می شود.
49151-1025 پورت های تصادفی یا رندوم نامیده می شوند و زمانی که قصد برقراری ارتباط به طور مثال وب در شبکه را داریم. پورتی که در مقصد باز می شود80 بوده و پورت باز شده سمت ما از این دسته می باشد.
65535-49152 این پورت ها که آزاد نامیده می شوند، بیشتر در برنامه نویسی کاربرد دارند.

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

درباره نویسنده: احسان نیک آور

ممکن است دوست داشته باشید