آموزش رایگان ccna؛ قسمت 15، پروتکلهای لایه TCP، Internet و ICMP
در این قسمت از مقالات آموزش ccna به پورتها، پرچمها و سرآیند TCP و UDP میپردازیم. سپس به توصیف و آموزش پروتکلهای لایه اینترنت یعنی IP، ICMP و ARP میپردازیم. با فالنیک همراه باشید.
- انواع پورت های tcp
- انواع پرچمهای TCP
- توضیح سرآیند TCP
- پروتکل دیتاگرام کاربر (User Datagram Protocol)
- انواع پورتهای UDP
- توضیح سرآیند UDP
- انواع پروتکلهای لایه اینترنت
- پروتکل اینترنت (Internet Protocol)
- توضیح سرآیند IP
- پروتکل کنترل پیام اینترنتی (Internet Control Message Protocol) چیست؟
- معرفی انواع و کدهای پروتکل کنترل پیام اینترنتی (ICMP Types and Codes)
- توضیح سرآیند ICMP
- پروتکل تفکیک آدرس (Address Resolution Protocol) چیست؟
اگر قصد ورود به دنیای جذاب شبکههای کامپیوتری را دارید و دوست دارید بهعنوان یک مهندس شبکه خبره در سازمانی مشغول به کار شوید، مجبور هستید عملکرد پروتکل TCP/IP و زیرمجموعههای آنرا بهخوبی درک کنید، زیرا هنگامیکه خطایی در شبکه بهوجود میآید، بستهها از دست میروند یا وضعیت ارسال و دریافت بستهها در حالت ناپایدار قرار میگیرند، مهم است که اطلاعات کاملی در ارتباط با مباحث زیربنایی شبکه و بهویژه پروتکل TCP/IP داشته باشید.
انواع پورتهای TCP
هنگامیکه برنامهها از پروتکلهای TCP یا UDP برای برقراری ارتباط با شبکه استفاده میکنند، هر برنامه باید توسط یک شماره پورت منحصر به فرد در سیستم شناسایی شود. پورت آدرسی است که به برنامه اختصاص داده شده است. هنگامیکه یک کلاینت میخواهد با یکی از این برنامهها (که به عنوان سرویس شناخته میشوند) ارتباط برقرار کند، باید درخواست را به شماره پورت مناسب در سیستم ارسال کند. بهعنوان یک کارشناس شبکه، باید اطلاعاتی در ارتباط با شماره پورتهای مورد استفاده توسط سرویسهای محبوب داشته باشید. جدول زیر شماره پورتهای رایج TCP را نشان میدهد که برای موفقیت در آزمون CCNA باید اطلاعات دقیقی در ارتباط با آنها داشته باشید.
هر دو پروتکل TCP و UDP از 65536 پورت پشتیبانی میکنند. بهطور کلی، شماره پورتها به سه گروه زیر تقسیم میشوند:
- پورتهای شناخته شده: پورتهای 0 تا 1023 شناخته شده هستند و توسط سازمان IANA (سرنام Internet Assigned Number Authority) به برنامههای سروری که معمولاً در اینترنت استفاده میشوند مثل HTTP، DNS، و SMTP اختصاص داده میشوند.
- پورتهای ثبت شده: پورتهای 1024 تا 49151 توسط IANA برای کاربردهای اختصاصی و نرمافزارهایی مثل Microsoft SQL Server، Adobe Shockwave، بانکهای اطلاعاتی اوراکل و سرویسهای مرتبط با آن و کاربردهای دیگر رزرو شدهاند.
- پورتهای پویا (اختصاص پویا): این پورتها از 49152 تا 65353 متغیر هستند و بهصورت پویا توسط سامانهها تخصیص داده میشوند. این پورتها معمولاً توسط نرمافزارهای کلاینت مثل مرورگرهای وب، کلاینت FTP یا کلاینتهای راه دور استفاده میشوند.
انواع پرچمهای TCP
پروتکل TCP از پرچمهای TCP برای شناسایی انواع مهم بستهها استفاده میکند. برای آشنایی بهتر با پرچمهای TCP به تصویر زیر دقت کنید که پرچمهای ضبط شده در یک بسته اطلاعاتی را نشان میدهد. توجه داشته باشید بهجای اینکه پرچم واقعی نشان داده شود، مقدار توسط Network Monitor تفسیر شده و توضیحاتی برای آنها ارائه شده است. بهعنوان مثال، بهجای اینکه پرچم URG را با مقدار 0 مشاهده کنید، اطلاعات مختصری در ارتباط با پرچم تحت عنوان بدون داده فوری (No Urgent data) مشاهده کنید.
موارد زیر پرچمهای رایج و مهم TCP هستند که برای موفقیت در آزمون CCNA باید اطلاعاتی در مورد آنها داشته باشید:
- SYN: پرچم SYN به هر بستهای که بخشی از مراحل دستدهی سهگانه SYN است، تخصیص داده میشود.
- ACK: تأیید میکند که بسته قبلی دریافت شده است.
- PSH: پرچم Push با هدف کنترل بر جریان ارسال و دریافت دادهها توسط یک برنامه کاربردی استفاده میشود.
- URG: پرچم فوق مشخص میکند که یک بسته فوری است.
- FIN : پرچم پایان مشخص میکند که میخواهید به یک اتصال پایان دهید. به این ترتیب اتصال TCP به روشی قانونمند خاتمه مییابد.
- RST: پرچم بازنشانی برای پایان دادن به یک مکالمه TCP بهشکل ناگهانی استفاده میشود.
توضیح سرآیند TCP
هر بستهای که با استفاده از پروتکل TCP ارسال میشود، یک سرآیند TCP به آن اختصاص داده میشود که حاوی اطلاعات مربوط به TCP مانند پورت مبدا، مقصد و پرچمهای TCP است. شکل زیر فیلدهای مختلف سرآیند TCP را نشان میدهد.
توضیح اجمالی هر یک از فیلدهای نشان داده شده در سرآیند TCP بهشرح زیر است:
- Source Port: این فیلد 16 بیتی شماره پورت سیستم مبدا را مشخص میکند.
- Destination Port: این فیلد 16 بیتی شماره پورتی را که بسته برای آن در سیستم مقصد ارسال میشود، مشخص میکند.
- Sequence Number: این فیلد 32 بیتی شماره توالی بسته را مشخص میکند.
- Acknowledgment Number: یک فیلد 32 بیتی که از طرف مقصد ارسال میشود، Sequence Number بعدی مورد انتظار برای دریافت توسط مبدأ را مشخص میکند. اگر مبدا شماره تاییدی دریافت کند که مغایر با مقدار شماره توالی (Sequence Number) است بسته را رها میکند.
- Offset: این فیلد چهار بیتی نشان میدهد که دادهها از کجا شروع میشوند.
- Reserved: این فیلد شش بیتی همیشه روی صفر تنظیم شده و برای آینده رزرو شده است.
- Flags: این فیلد شش بیتی به مکانی اشاره دارد که پرچمهای TCP در آن ذخیره میشوند.
- Window Size: این فیلد 16 بیتی، مقدار اطلاعاتی را که میتوان قبل از انتظار تأیید ارسال کرد، تعیین میکند.
- Checksum: این فیلد 16 بیتی برای تأیید صحت سرآیند TCP استفاده میشود.
- Urgent Pointer: این فیلد 16 بیتی فقط در صورتی استفاده میشود که پرچم URG تنظیم شده باشد و همچنین اشارهای به آخرین اطلاعاتی دارد که وضعیت ارسال فوری داشتهاند.
- Options: فیلدی با طول متغیر است که تنظیمات اضافی را که ممکن است در سرآیند TCP مورد نیاز باشد، مشخص میکند.
پروتکل دیتاگرام کاربر (User Datagram Protocol)
پروتکل UDP توسط برنامههایی استفاده میشود که تنها هدفشان ارسال دادهها برای سیستم مقصد است. UDP برای ارتباط بدون اتصال (غیر قابل اعتماد) استفاده میشود، به این معنی که دادهها به مقصد ارسال میشوند و هیچ تلاشی برای ردیابی وضعیت بسته یا تعیین اینکه آیا بسته به مقصد رسیده است انجام نمیشود.
انواع پورتهای UDP
مانند TCP، پروتکل UDP از شماره پورت برای شناسایی انواع مختلف ترافیک UDP استفاده میکند. جدول زیر چند نمونه از ترافیک UDP و پورتهای مورد استفاده را نشان میدهد که باید برای آزمون آنها را حفظ کنید.
توضیح سرآیند UDP
از آنجایی که UDP نیازی به تایید دریافت بسته ندارد، ساختار سرآیند سادهتری نسبت به سرآیند TCP دارد. بهعنوان مثال، سرآیند UDP نیازی به شماره دنباله یا شماره تصدیق ندارد. همچنین، برای نشان دادن بستههای خاص مانند پیام SYN نیازی به پرچم ندارد، زیرا هیچ دستدهی سه طرفه وجود ندارد (UDP بدون اتصال است). شکل زیر سرآیند UDP را نشان میدهد.
سرآیند UDP شامل فیلدهای زیر است:
- Source Port: این فیلد 16 بیتی پورت مورد استفاده برنامه فرستنده در یک سیستم را نشان میدهد.
- Destination Port: این فیلد 16 بیتی، پورت مورد استفاده توسط برنامه کاربردی در سیستم مقصد را نشان میدهد.
- Length: این فیلد 16 بیتی اندازه سرآیند UDP را بر حسب بایت مشخص میکند.
- Checksum: این فیلد 16 بیتی برای تأیید صحت سرآیند UDP استفاده میشود.
انواع پروتکلهای لایه اینترنت
پس از انتخاب یک پروتکل انتقال و تعیین این موضوع که ارتباط باید اتصالگرا یا بدون اتصال باشد، اطلاعات به لایه اینترنت منتقل میشود تا مشخص شود چه کسی مسئول تحویل آن است. از پروتکلهای پر کاربردی که لایه اینترنت از آنها استفاده میشود باید به IP، ICMP و ARP اشاره کرد.
پروتکل اینترنت (Internet Protocol)
پروتکل اینترنت (IP) مسئولیت تحویل بسته به پروتکلها در لایههای بالاتر را بر عهده دارد. پروتکل فوق، مبتنی بر معماری تحویل بدون اتصال است که تلاش میکند فرآیند تحویل بستهها به مقصد را به شکل صحیحی انجام دهد. IP تحویل بستهها را تضمین نمیکند، زیرا این مسئولیت پروتکلهای انتقال است. در حالت کلی، IP تنها وظیفه ارسال دادهها را بر عهده دارد.
نکته امتحانی: برای آزمون CCNA Enterprise باید به خاطر داشته باشید که IP یک پروتکل لایه سه از مدل OSI است و مسئول آدرسدهی و مسیریابی منطقی است.
علاوه بر این، پروتکل اینترنت مسئول آدرسدهی منطقی و مسیریابی TCP/IP است؛ بنابراین معادل پروتکل لایه سه مدل OSI در نظر گرفته میشود. IP روی روتر مسئول کاهش (معمولاً با مقدار یک) TTL (زمان حیات) بسته است تا مانع بروز مشکل حلقه شود. هنگامیکه TTL بسته به صفر کاهش یافت، روتر بسته را از شبکه حذف میکند و یک پیام وضعیت به فرستنده ارسال میکند (با استفاده از ICMP). رویکرد فوق مانع بروز مشکل حلقه میشود. سیستمعاملهایی مثل ویندوز دارای TTL پیشفرض 128 هستند، در حالی که اکثر سیستمعاملهای لینوکسی بهطور پیش فرض دارای مقدار TTL برابر با 64 هستند.
توضیح سرآیند IP
سرآیند IP در بستهها حاوی اطلاعاتی است که به بسته کمک میکند مسیر خود را از مبدا به مقصد طی کند. شکل زیر ساختار سرآیند IP را نشان میدهد.
در زیر فهرستی از فیلدهای سرآیند IP را بههمراه توضیح مختصر آنها مشاهده میکنید:
• Version: این فیلد چهار بیتی، نسخه IP مورد استفاده را مشخص میکند، مثلاً نسخه چهار یا شش.
• Header Length: این فیلد چهار بیتی اندازه سرآیند IP را نشان میدهد.
• Type of Service: این فیلد هشت بیتی نحوه مدیریت بسته توسط سیستم را نشان میدهد. به عنوان مثال، اگر گزینه تاخیر کم در اینجا مشخص شده باشد، به این معنی است که سیستم باید بلافاصله به وضعیت بسته رسیدگی کند.
• Total Length: این فیلد 16 بیتی اندازه بسته IP را نشان میدهد.
• Identification: از آنجایی که شبکهها فقط میتوانند بستههایی با حداکثر اندازه خاص را مدیریت کنند که به عنوان واحد انتقال حداکثری (MTU) شناخته میشود، یک سیستم ممکن است دادههای ارسال شده را به چند قطعه تقسیم کند. این فیلد 16 بیتی برای شناسایی بستههای شکسته شده استفاده میشود.
• IP Flags: این فیلد سه بیتی نحوه تعامل با بستههای دادهای را مشخص میکند. برای مثال، پرچم More Fragments (MF) نشان میدهد که قطعات بیشتری قرار است توسط مبدا ارسال شوند. همچنین، بیتی که بهنام Don’t Fragment (DF) شناخته میشود، مشخص میکند که بسته یکپارچه ارسال شود و تکهتکه نشود.
• Fragment Offset: این فیلد 13 بیتی ترتیب متصل کردن بستهها را مشخص میکند.
• Time to Live (TTL): این فیلد هشت بیتی زمان منقضی شدن بسته را مشخص میکند. TTL مقداری است که با هر روتری که بسته از آن عبور میکند، کاهش مییابد. وقتی TTL به صفر رسید، بسته حذف میشود.
• Protocol: این فیلد هشت بیتی مشخص میکند که بسته از چه پروتکل لایه چهار (TCP یا UDP) استفاده کند.
• Header Checksum: این فیلد 16 بیتی یکپارچگی سرآیند IP را تأیید میکند.
• Source Address: این فیلد 32 بیتی نشاندهنده آدرس آیپی سیستم ارسالکننده است. بدین ترتیب سیستم دریافتکننده از این نکته مطلع میشود که پیام پاسخ را به کجا ارسال کند.
• Destination Address: این فیلد 32 بیتی نشاندهنده آدرس IP سیستمی است که بسته برای آن ارسال میشود.
• IP Options: این فیلد با طول متغیر برای تعیین تنظیمات دیگر در سرآیند IP استفاده میشود.
پروتکل کنترل پیام اینترنتی (Internet Control Message Protocol) چیست؟
پروتکل کنترل پیام اینترنتی (ICMP) سیستمهای موجود در شبکه TCP/IP را قادر میسازد تا اطلاعات وضعیت و خطا را به اشتراک بگذارند. از اینرو، پروتکل مهمی برای عیبیابی مشکلات شبکه بهشمار میرود. پیامهای ICMP درون دیتاگرامهای IP کپسوله میشوند تا بتوان آنها را در سراسر شبکه انتقال داد. دو برنامهای که از پیامهای ICMP استفاده میکنند ping و tracert هستند.
میتوانید از پینگ برای ارسال درخواستهای اکو ICMP به یک آدرس آیپی استفاده کنید و منتظر پاسخهای اکو ICMP باشید. پینگ فاصله زمانی بین ارسال درخواست و دریافت پاسخ را گزارش میکند. با پینگ میتوانید تعیین کنید که آیا یک سیستم آیپی خاص در شبکه شما به درستی کار میکند یا خیر. سرپرستان شبکه میتوانند از سوییچهای مختلفی همراه با دستور ping استفاده کنند.
Tracert مسیر طی شده به یک میزبان خاص را ردیابی میکند. این ابزار میتواند در عیبیابی فعالیتهای اینترنتی مفید باشد. Tracert درخواستهای اکو ICMP را به یک آدرس آیپی ارسال میکند، در حالی که فیلد TTL را در سرآیند آیپی به مقدار یک واحد افزایش میدهد، پس از آغاز این فرآیند، این توانایی را دارید تا خطاهایی که پروتکل ICMP بر میگرداند را تجزیه و تحلیل کنید. درخواستهای اکو بعدی قبل از اینکه فیلد TTL به صفر برسد، فیلد شمارنده اکو ICMP را افزایش میدهند و یک پیام ICMP time exceeded را باز میگردانند.
معرفی انواع و کدهای پروتکل کنترل پیام اینترنتی (ICMP Types and Codes)
ICMP از شماره پورت استفاده نمیکند، بلکه از انواع و کدهای ICMP برای ارسال اطلاعات فنی استفاده میکند. بهعنوان مثال، یک پیام درخواست اکو که توسط درخواست پینگ استفاده میشود، از ICMP نوع هشت استفاده میکند، در حالی که پاسخ پینگ با یک پیام ICMP نوع صفر است.
برخی از ICMP types دارای کدهای مختلفی هستند که اطلاعات فنی دقیقتری را ارائه میکنند. به عنوان مثال، ICMP نوع سه یک پیام غیرقابل دسترسی است، اما از آنجایی که دلایل زیادی وجود دارد که یک مقصد غیرقابل دسترس شود، این نوع (type) به کدهای مختلفی تقسیم میشود. هر کد توصیفکننده یک پیام متفاوت است. جدول زیر اطلاعات دقیقتر در این زمینه ارائه میکند.
انواع و کدهای پروتکل کنترل پیام اینترنتی (ICMP Types and Codes)
توضیح سرآیند ICMP
سرآیند ICMP در مقایسه با سرآیند IP و سرآیند TCP کوچک است. شکل زیر سرآیند ICMP را نشان میدهد.
• Type: این فیلد هشت بیتی نوع ICMP مورد استفاده را نشان میدهد.
• Code: این فیلد هشت بیتی کد ICMP مورد استفاده را نشان میدهد.
• Checksum: این فیلد 16 بیتی برای تأیید صحت سرآیند ICMP استفاده میشود.
• Other: این فیلد همه دادهها را در سرآیند ICMP ذخیره میکند. به عنوان مثال، سیستمعاملهای مایکروسافت بخشی از حروف الفبا را در این قسمت برای پیامهای درخواست اکو قرار میدهند.
همچنین، توجه داشته باشید که پروتکل مدیریت گروه اینترنت (IGMP) یکی دیگر از پروتکلهای لایه اینترنت است و برای برنامههای چندپخشی استفاده میشود.
پروتکل تفکیک آدرس (Address Resolution Protocol) چیست؟
پروتکل تفکیک آدرس مسئولیت تفکیک آدرس آیپی از آدرس فیزیکی در شبکه TCP/IP را بر عهده دارد. برای انجام این کار، ARP یک پیام همهپخشی ARP را ارسال میکند که حاوی آدرس آیپی سیستمی است که قصد پیدا کردن آنرا دارد. همه سیستمهای موجود در شبکه محلی پیام را مشاهده میکنند و سیستمی که دارای آدرس آیپی مربوطه است با ارسال آدرس فیزیکی خود به سیستم مبدأ به پیام ARP پاسخ میدهد. سپس ترکیب آدرس فیزیکی/آیپی در حافظه پنهان ARP سیستم مبدأ برای استفاده در آینده ذخیره میشود.
نکته: برای آزمون گواهینامه CCNA، به یاد داشته باشید که ARP مسئول تبدیل یک آدرس آیپی (آدرس لایه سه) به آدرس فیزیکی کنترل دسترسی رسانه یا همان مک (آدرس لایه دو) است.
همه سیستمهای تحت شبکه، اطلاعات مربوط به حافظه پنهان ARP که شامل نگاشت آدرس آیپی به آدرس فیزیکی است را نگهداری میکنند. کش ARP همیشه برای نگاشت آدرس آیپی به آدرس فیزیکی قبل از شروع فرآیند پخشی بررسی میشود. پروتکل ARP یکی از مهمترین پروتکلهای شبکه است که نقش مهمی در زمینه تفکیک آدرسها دارد. علاوه بر این، هکرها نیز برای پیادهسازی موفقیتآمیز حملات سعی میکنند به طرق مختلف این پروتکل را مسموم کنند. از اینرو، در شماره آینده عملکرد پروتکل ARP و جزییات مربوط به آنرا بهشکل دقیقتری بررسی میکنیم.