در حال بارگذاری...
پروتکل ICMP برای ارسال پیامهای خطا و گزارش در شبکه؛ Echo و Ping، Destination Unreachable، TTL Exceeded، Redirect و ابزارهای Traceroute.
اهداف این درس
وقتی بستهای نمیتواند به مقصد برسد، چطور فرستنده متوجه میشود؟ چه کسی «نقش گزارشگر» شبکه را بر عهده دارد؟ جواب هر دو سوال، پروتکل ICMP است؛ زبانِ گزارش خطا و مدیریت شبکه در لایه ۳.
پروتکل لایه ۳ که پیامهای خطا، گزارش وضعیت و اطلاعات تشخیصی را بین دستگاههای شبکه ردوبدل میکند؛ بدون شماره پورت و بهطور مستقیم درون بسته IP حمل میشود.
پروتکل ping از دو پیام استفاده میکند: Echo Request (نوع 8) که توسط فرستنده ارسال میشود و Echo Reply (نوع 0) که پاسخ مقصد است. اگر پاسخ در بازه زمانی تعیینشده برگردد، به این معناست که مسیر رفت و برگشت سالم است.
1ping -t 8.8.8.8خواندن خروجی ping
در خروجی ping، Reply from یعنی پاسخ دریافت شده، Request timed out یعنی در بازه زمانی مشخص پاسخی نرسید، و Destination Host Unreachable یعنی مسیر رسیدن به مقصد وجود ندارد.
پیام نوع 3 که وقتی روتر نتواند بسته را تحویل دهد ارسال میشود؛ حالتهای آن شامل Network Unreachable (شبکه مقصد پیدا نشد)، Host Unreachable و Port Unreachable است.
هر بسته IP یک فیلد TTL دارد که هنگام عبور از هر روتر یک واحد کم میشود. وقتی TTL به صفر برسد، روتر بسته را دور میریزد و پیام Time Exceeded (نوع 11) میفرستد. ابزار traceroute از همین مکانیزم استفاده میکند: اول بستهای با TTL=1 میفرستد تا اولین روتر پاسخ بدهد، بعد TTL=2 برای روتر دوم و همینطور تا رسیدن به مقصد.
1tracert 8.8.8.81traceroute 8.8.8.8اگر روتر متوجه شود برای رسیدن به یک مقصد، مسیر بهتری از طریق روتر دیگری وجود دارد، پیام Redirect (نوع 5) برای میزبان میفرستد تا میزبان دفعات بعد بسته را مستقیم به آن روتر بدهد.
| نوع (Type) | نام پیام | کاربرد |
|---|---|---|
| 0 | Echo Reply | پاسخ به پینگ |
| 8 | Echo Request | درخواست پینگ |
| 3 | Destination Unreachable | عدم دسترسی به مقصد/سرویس |
| 5 | Redirect | معرفی مسیر بهتر |
| 11 | Time Exceeded | پایان TTL؛ مبنای traceroute |
ملاحظات امنیتی
ICMP میتواند برای حملات مورد سوءاستفاده قرار بگیرد؛ مانند Ping Flood (پر کردن پهنای باند) و Smurf (آدرسدهی جعلی در Echo Request). به همین دلیل بسیاری از فایروالها ICMP ورودی را محدود میکنند.
نکته آزمون
در آزمون Network+، اگر سوال از «ابزاری که با پیام Time Exceeded مسیر را نمایش میدهد» پرسید، جواب Traceroute است؛ و اگر از «پیامی که روتر برای معرفی مسیر بهتر میفرستد» پرسید، جواب Redirect است.
ICMP پورت ندارد؛ مستقیماً درون بسته IP حمل میشود.
تایپهای مهم: 0/8 (Echo)، 3 (Unreachable)، 11 (TTL Exceeded)، 5 (Redirect).
پینگ موفق یعنی دستگاه مقصد در دسترس و مسیر برگشت سالم است.
پروتکل ICMP در کجا حمل میشود؟
چرا ICMP شماره پورت ندارد؟
چون ICMP در لایه ۳ و درون بسته IP حمل میشود؛ برخلاف TCP/UDP نیازی به پورت ندارد و با شناسه نوع پیام (Type/Code) شناخته میشود.
تست traceroute چگونه مسیر را پیدا میکند؟
با ارسال بستههایی که TTL آنها ۱، ۲، ۳ و... افزایش مییابد؛ هر روتر وقتی TTL تمام میشود یک پیام TTL Exceeded (نوع ۱۱) برمیگرداند و آدرس آن در خروجی traceroute نمایش داده میشود.
پیام Destination Unreachable چه زمانی ارسال میشود؟
وقتی روتر نتواند بسته را به مقصد برساند؛ مثلاً شبکه مقصد موجود نباشد (Network Unreachable) یا سرویس/پورت بسته باشد (Port Unreachable).
تفاوت ICMP Type 3 Code 0 و Code 3 چیست؟
Code 0 یعنی Network Unreachable (شبکه مقصد پیدا نشد) و Code 3 یعنی Port Unreachable (پورت مقصد بسته است). اولی مربوط به مسیریابی و دومی مربوط به سرویس است.
چرا Traceroute گاهی زمان بیشتری برای بعضی هاپها نشان میدهد؟
روترهایی که پردازش ICMP را اولویت پایینتری میدهند یا ترافیک سنگینی دارند، دیرتر پاسخ TTL Exceeded را برمیگردانند. همچنین مسیرهای طولانیتر یا لینکهای کندتر باعث تأخیر میشوند.