امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

ICMP چیست ؟ معرفی و تشریح کامل پروتکل Messaging اینترنت

ICMP چیست؟ پروتکل ICMP چه کاربردی دارد؟ Internet Control Messaging Protocol چیست؟ پروتکل IP برای سرویس دیتاگرام host-to-host در یک سیستم شبکه های بهم وصل شده یا interconnected که در اصطلاح Catenet گفته میشود مورد استفاده قرار میگیرد.دستگاه های متصل به شبکه را Gateway میگویند.این Gateway ها برای برقراری ارتباط بین خودشان برای کنترل اهداف خود از پروتکلی بنام GGP یا Gateway to Gateway Protocol استفاده میکنند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

بعضی اوقات یک Gateway یا سیستم مقصد از با استفاده از آدرس مبدأ ارتباط برقرار خواهد کرد.مثلا برای گزارش خطا در پردازش دیتاگرام.برای اهداف چنین پروتکل هایی Internet Control Message Protocol یا پروتکل ICMP مورد استفاده قرار میگیرد.ICMP با پشتیبانی اولیه از پروتکل IP اگر بعنوان پروتکل سطح بالا بود. در هر حال پروتکل icmp بخش جدائی ناپذیر از پروتکل IP است.

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

که باز هم با وجود این پروتکل(ICMP) پروتکل IP قابل اعتماد نیست.بدین شرح که هیچ تضمینی برای به مقصد رسیدن دیتاگرام به مقصد و برگشت پیام ICMP به کاربر وجود ندارد.شاید برخی دیتاگرام ها بدون گزارش های مبنی بر loss شدن آنها به مقصد نرسند.

برخی از پروتکل های لایه بالاتر که از IP استفاده میکنند باید reliable ساخته شوند در صورتیکه ارتباطات مبتنی بر آن پروتکل نیازمند چنین ارتباطی هست.پیام های ICMP معمولا گزارش های مبتنی بر خطا در پردازش دیتاگرام را شامل میشوند.پیام های ICMP تنها برای بررسی فرگمنت صفر یا fragment zero در دیتاگرام فرگمنت شده ارسال میشوند.(fragment zero برابر offset ای برابر صفر است.)

قالب پیام های ICMP به چه شکل است؟

پیام های ICMP بوسیله هدر اصلی پروتکل IP ارسال میشوند.اولین اکتت از اطلاعات قسمتی از دیتاگرام شامل field ای است که نشان دهنده نوع ICMP است.(icmp v4 یا icmp v6) ارزش این field تعیین کننده ی قالب اطلاعات باقی مانده میباشد.هر field ای که بعنوان "unused" مارک زده یا labal شده است برای extension های بعدی رزرو شده است و وقتی ارسال میشود باید صفر باشد اما گیرندگان نباید از این field استفاده کنند(بجز در فیلد checksum که شامل آن میشوند).مگر اینکه در غیر اینصورت توسط یک فرد به طور اختصاصی فرمتش ذکر شده باشد). مقادیر فیلد internet header به شرح زیر است:

  • version:مقدار این فیلد برابر 4 است.
  • Internet Header Length یا IHL : طول IHL برابر 32 بیت باشد.
  • Type of Service: این فیلد ارزشش برابر صفر(0) است.
  • Total Length: طول internet header و اطلاعات در اکتت را شامل میشود.
  • Identification،Flags و Fragment Offset در fragmentation استفاده می شود.
  • Time to Liveیا TTL: این فیلد در هر ماشین که دیتاگرام پردازش میشود از مقدارش کاسته میشود.TTL تعیین کننده تعداد Hop های مجاز ما در یک مسیر ارتباطی می باشد.
  • Header Checksum: مقدار این فیلد در Header برابر 16 بیت است.برای محاسبه ی فیلد checksum باید فیلد checksum برابر صفر باشد.این checksum ممکن است در دفعات بعدی جایگزین شود.
  • Source Address:همنانطور که از نامش مشخصی است آدرس host یا gateway ای است که پیام ICMP را تولید میکند.مگر اینکه بر خلاف تصور میتواند آدرس هر Gateway ای باشد.
  • Destination Address:آدرس host یا gateway ای که پیام ICMP به آن خواهد رسید می باشد.

تحلیل پیام Destination Unreachable در ICMP

سلام خدمت دوستان عزیز ITPRO ای.در این سری از مقالات قصد دارم به تشریح کامل پروتکل ICMP بپردازم.با ما همراه باشید...

!! مقدمه
پروتکل IP برای سرویس دیتاگرام host-to-host در یک سیستم شبکه های بهم وصل شده یا interconnected که در اصطلاح Catenet گفته میشود مورد استفاده قرار میگیرد.دستگاه های متصل به شبکه را Gateway میگویند.این Gateway ها برای برقراری ارتباط بین خودشان برای کنترل اهداف خود از پروتکلی بنام GGP یا Gateway to Gateway Protocol استفاده میکنند.بعضی اوقات یک Gateway یا سیستم مقصد از با استفاده از آدرس مبدأ ارتباط برقرار خواهد کرد.مثلا برای گزارش خطا در پردازش دیتاگرام.برای اهداف چنین پروتکل هایی Internet Control Message Protocol یا پروتکل ICMP مورد استفاده قرار میگیرد.ICMP با پشتیبانی اولیه از پروتکل IP اگر بعنوان پروتکل سطح بالا بود.

در هر حال پروتکل icmp بخش جدائی ناپذیر از پروتکل IP است.و باید در هر مدلی از پروتکل IP پیاده سازی شود.پیام های ICMP در موقعیت های مختلفی ارسال میشوند برای مثال وقتی دیتاگرامی نمیتواند به مقصدش برسد،یا مثلا وقتی Gateway ای ظرفیت بافرش برای forward کردن دیتاگرام کافی نیست.و یا وقتی gateway به طور مستقیم و با کوتاهترین مسیر میتواند ترافیک را به مقصدش ارسال کند. پروتکل IP قطعا به طور reliable یا قابل اعتماد طراحی نشده است.هدف از این پیام های کنترلی فراهم آوردن واکنشی در برابر وجود چنین مشکلاتی در ارتباطات است.

که باز هم با وجود این پروتکل(ICMP) پروتکل IP قابل اعتماد نیست.بدین شرح که هیچ تضمینی برای به مقصد رسیدن دیتاگرام به مقصد و برگشت پیام ICMP به کاربر وجود ندارد.شاید برخی دیتاگرام ها بدون گزارش های مبنی بر loss شدن آنها به مقصد نرسند.برخی از پروتکل های لایه بالاتر که از IP استفاده میکنند باید reliable ساخته شوند در صورتیکه ارتباطات مبتنی بر آن پروتکل نیازمند چنین ارتباطی هست.پیام های ICMP معمولا گزارش های مبتنی بر خطا در پردازش دیتاگرام را شامل میشوند.پیام های ICMP تنها برای بررسی فرگمنت صفر یا fragment zero در دیتاگرام فرگمنت شده ارسال میشوند.(fragment zero برابر offset ای برابر صفر است.)

!! قالب پیام های ICMP
پیام های ICMP بوسیله هدر اصلی پروتکل IP ارسال میشوند.اولین اکتت از اطلاعات قسمتی از دیتاگرام شامل field ای است که نشان دهنده نوع ICMP است.(icmp v4 یا icmp v6)
ارزش این field تعیین کننده ی قالب اطلاعات باقی مانده میباشد.هر field ای که بعنوان unused مارک زده یا labal شده است برای extension های بعدی رزرو شده است و وقتی ارسال میشود باید صفر باشد اما گیرندگان نباید از این field استفاده کنند(بجز در فیلد checksum که شامل آن میشوند).مگر اینکه در غیر اینصورت توسط یک فرد به طور اختصاصی فرمتش ذکر شده باشد).
مقادیر فیلد internet header به شرح زیر است: 

* version:مقدار این فیلد برابر 4 است.
* *Internet Header Length یا IHL* : طول IHL برابر 32 بیت باشد.
* *Type of Service*: این فیلد ارزشش برابر صفر(0) است.
* *Total Length:* طول internet header و اطلاعات در اکتت را شامل میشود.
* Identification،Flagsو Fragment Offset در fragmentation استفاده می شود.
* *Time to Liveیا TTL*: این فیلد در هر ماشین  که دیتاگرام پردازش میشود از مقدارش کاسته میشود.TTL تعیین کننده تعداد Hop های مجاز ما در یک مسیر ارتباطی می باشد.
* *Header Checksum*: مقدار این فیلد در Header برابر 16 بیت است.برای محاسبه ی فیلد checksum باید فیلد checksum برابر صفر باشد.این checksum ممکن است در دفعات بعدی جایگزین شود.
* *Source Address:*همنانطور که از نامش مشخصی است آدرس host یا gateway ای است که پیام ICMP را تولید میکند.مگر اینکه بر خلاف تصور میتواند آدرس هر Gateway ای باشد.
* *Destination Address:*آدرس host یا gateway ای که پیام ICMP به آن خواهد رسید می باشد.

!! *تحلیل پیام Destination Unreachable:*
||http://tosinso.com/files/get/22e7e2cc-b8d2-468a-8b7a-d76718c9763e||
<c#>
*code:*
0=net unreachable
1 = host unreachable
2 = protocol unreachable
3 = port unreachable
4=fragmentation needed and DF set
5 = source route failed
<c#>
* *Checksum:*توضیح داده شده است.
* *Internet Header + 64 bits of Original Data Datagram*:این اطلاعات توسط host برای پردازش مناسب مورد مقایسه قرار میگیرد.اگر پروتکل های سطوح بالاتر از شماره port ها استفاده کنند آنها در 64 بیت اول از دیتاگرام اصلی(original datagram) در نظر گرفته میشوند.

*توضیحات*:در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام destination host is unreachable به فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:

1-با توجه به اطلاعات موجود در جداول مسیریابی gateway ها اگر فیلد مقصد یا destination field از دیتاگرام یک شبکه در اینترنت قابل دسترس نباشد مسافت تا شبکه مورد نظر بینهایت میشود.gateway شاید پیامی مبنی بر destination host is unreachable به host یا میزبان مبدأ در دیتاگرامش میفرستد.Gateway ها در این شبکه ها شاید پیام destination host is unreachable را به host مبدا ارسال کنند اگر host مقصد در دسترس نباشد.
2-اگر در host مقصد ماژول های IP دچار اختلال شود مثلا سیستم پردازش port ها غیرفعال باشد و نتواند به درستی دیتاگرام تحویل داده شود در این صورت ممکن است host مقصد پیام destination host is unreachable را به host مبدا یا source host ارسال کند.
3-نمونه های دیگر هم ممکن است flag مربوط به fragmentation فعال یا ON نباشد.چون در اینجا باید Gateway دیتاگرام را fragment کند و بعد ارسالش کند.در اینجا ممکن است Gateway دیتاگرام را discard و یا پیام destination host is unreachable را برگرداند.
*نکته*:code های 0 ، 1 ،4 و 5 ممکن است از طرف Gateway دریافت شوند.و code های 2 و 3 ممکن است از طرف host دریافت شوند.
*ادامه دارد...*

نویسنده : امیرحسین کریم پور
منبع : |جزیره شبکه و زیرساخت وب سایت توسینسو::https://network.tosinso.com|
مرجع: |RFC792::https://tools.ietf.org/html/rfc792|
هر گونه نشر و کپی برداری بدون ذکر نام منبع و نویسنده دارای اشکال اخلاقی می باشد.
*code:*
0=net unreachable
1 = host unreachable
2 = protocol unreachable
3 = port unreachable
4=fragmentation needed and DF set
5 = source route failed
  • Checksum:توضیح داده شده است.
  • Internet Header + 64 bits of Original Data Datagram:این اطلاعات توسط host برای پردازش مناسب مورد مقایسه قرار میگیرد.اگر پروتکل های سطوح بالاتر از شماره port ها استفاده کنند آنها در 64 بیت اول از دیتاگرام اصلی(original datagram) در نظر گرفته میشوند.

توضیحات:در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام destination host is unreachable به فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:

  1. با توجه به اطلاعات موجود در جداول مسیریابی gateway ها اگر فیلد مقصد یا destination field از دیتاگرام یک شبکه در اینترنت قابل دسترس نباشد مسافت تا شبکه مورد نظر بینهایت میشود.gateway شاید پیامی مبنی بر destination host is unreachable به host یا میزبان مبدأ در دیتاگرامش میفرستد.Gateway ها در این شبکه ها شاید پیام destination host is unreachable را به host مبدا ارسال کنند اگر host مقصد در دسترس نباشد.
  2. اگر در host مقصد ماژول های IP دچار اختلال شود مثلا سیستم پردازش port ها غیرفعال باشد و نتواند به درستی دیتاگرام تحویل داده شود در این صورت ممکن است host مقصد پیام destination host is unreachable را به host مبدا یا source host ارسال کند.
  3. نمونه های دیگر هم ممکن است flag مربوط به fragmentation فعال یا ON نباشد.چون در اینجا باید Gateway دیتاگرام را fragment کند و بعد ارسالش کند.در اینجا ممکن است Gateway دیتاگرام را discard و یا پیام destination host is unreachable را برگرداند.

نکته:code های 0 ، 1 ،4 و 5 ممکن است از طرف Gateway دریافت شوند.و code های 2 و 3 ممکن است از طرف host دریافت شوند.

تحلیل پیام Time Exceeded در ICMP

با عرض سلام خدمت دوستان و همراهان گرامی،در این مقاله به ادامه |بخش اول ::http://network.tosinso.com/tips/34978/%d8%aa%d8%b4%d8%b1%db%8c%d8%ad-%da%a9%d8%a7%d9%85%d9%84-%d9%be%d8%b1%d9%88%d8%aa%da%a9%d9%84-icmp-%d8%a8%d8%ae%d8%b4-%d8%a7%d9%88%d9%84|تشریح پروتکل ICMP میپردازیم...

!! *تحلیل پیام Time Exceeded:*
||http://tosinso.com/files/get/f6877a08-39bf-4ff5-8b3c-edc24ef3338d||
*icmp Field:*
Type 3 یا نوع سوم
*code:*
0 = time to live exceeded in transit:  
1 = fragment reassembly time exceeded:این کد نشانگر منقضی شدن زمان Reassemble کردن دیتاگرام فرگمنت شده است.
*checksum:*مقدار این فیلد در Header برابر 16 بیت است.برای محاسبه ی فیلد checksum باید فیلد checksum برابر صفر باشد.این checksum ممکن است در دفعات بعدی جایگزین شود.
*Internet Header + 64 bits of Original Data Datagram*:این اطلاعات توسط host برای پردازش مناسب مورد مقایسه قرار میگیرد.اگر پروتکل های سطوح بالاتر از شماره port ها استفاده کنند آنها در 64 بیت اول از دیتاگرام اصلی(original datagram) در نظر گرفته میشوند.

*توضیحات:* در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام Time Exceededبه فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:

1- اگر Gateway ما در پردازش یک دیتاگرام متوجه شد که فیلد TTL برابر صفر است باید آن دیتاگرام را Discard کند.همانطور که میدانید اگر Gateway دیتاگرام را Discard کند به Host مبدا یا میزبان یک پیام مبتنی بر Time Exceeded میفرستد.
2- اگر Host یا میزبان به درستی تواند دیتاگرام را Reassemble کند این پیام صادر میشود.
3- اگر فرگمنت صفر در دسترس نباشد و هیچ زمان منقضی شده نداشته باشد باید همه آن فرستاده شود.
*نکته:* کد 0 (صفر) ممکن است از Gateway دریافت شود و کد 1 (یک)ممکن است از host دریافت شود.

!! *تحلیل پیام Parameter Problem:*
||http://tosinso.com/files/get/fef70173-c6fa-4b48-8ea4-aea43af175cf||
*ICMP Fields:*
Type 12
*Code:*
0=Pointer نشانگر error میباشد.
*Checksum:*توضیح داده شده است.
*Pointer:*همانطور که اشاره شد،اگر code برابر 0 باشد اکتت نشانگر یک error است.
*Internet Header + 64 bits of Data Datagram:*توضیح داده شده است.
*توضیحات:* اگر Gateway یا Host در پردازش یک دیتاگرام نتوانست به خوبی دیتاگرام را مورد پردازش قرار دهد یا مشکلی در Header های وجود داشت آن دیتاگرام را Discard خواهد کرد.
gateway یا host ممکن است این مشکل را بخوبی اعلام کنند.این پیام تنها زمانی ارسال میشود که error باعث discard شدن دیتاگرام شود.
*نکته:*کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.

!! *تحلیل پیام Source Quench:*
||http://tosinso.com/files/get/d2a273ab-5287-4366-815e-a546766da31d||
*ICMP Fields:*
Type 4
*Checksum:* توضیح داده شده است.
*Internet Header + 64 bits of Data Datagram*:توضیح داده شده است.
*توضیحات:* یک Gateway شاید مجموعه ای از دیتاگرام ها را discard کند اگر فضای کافی برای buffer کردن دیتاگرام ها در صف یا queue برای فرستان به سایر روتر ها یا Gateway برای مسیریابی نداشته باشد.اگر Gateway یک دیتاگرام را discard کند ممکن است پیام source quench message را به host مبدا در دیتاگرام ارسال کند.host مقصد ممکن است پیام source quench را ارسال کند اگر دیتاگرام به سرعت پردازش شده باشد.gateway ممکن است برای هر پیامی که Discard شده است پیام source quench message  را بفرستد.در حالت کلی مضمون از پیام source quench message از یک کامپیوتر host به کامپیوتر دیگر به او میگوید که سرعت انتقال Packet را در هنگام ارسال کاهش بده.Host مبدا تا زمانی که پیام source quench message را دریافت نکرده سرعت ارسال ترافیک را به مقصد مورد نظر رفته رفته افزایش میدهد.Gateway و یا Host ، اگر ظرفیتشان محدود باشد ممکن است پیام source quench message را ارسال کنند.تا اینکه ظرفیتشان از حد مجاز تجاوز کند.
*نکته:* کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.
*ادامه دارد...*


نویسنده : امیرحسین کریم پور
منبع : |جزیره شبکه و زیرساخت وب سایت توسینسو::https://network.tosinso.com|
مرجع: |RFC792::https://tools.ietf.org/html/rfc792|
هر گونه نشر و کپی برداری بدون ذکر نام منبع و نویسنده دارای اشکال اخلاقی می باشد.

icmp Field: Type 3 یا نوع سوم

code: 0 = time to live exceeded in transit:

1 = fragment reassembly time exceeded:این کد نشانگر منقضی شدن زمان Reassemble کردن دیتاگرام فرگمنت شده است.

checksum:مقدار این فیلد در Header برابر 16 بیت است.برای محاسبه ی فیلد checksum باید فیلد checksum برابر صفر باشد.این checksum ممکن است در دفعات بعدی جایگزین شود.

Internet Header + 64 bits of Original Data Datagram:این اطلاعات توسط host برای پردازش مناسب مورد مقایسه قرار میگیرد.اگر پروتکل های سطوح بالاتر از شماره port ها استفاده کنند آنها در 64 بیت اول از دیتاگرام اصلی(original datagram) در نظر گرفته میشوند.

توضیحات: در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام Time Exceededبه فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:

  1. اگر Gateway ما در پردازش یک دیتاگرام متوجه شد که فیلد TTL برابر صفر است باید آن دیتاگرام را Discard کند.همانطور که میدانید اگر Gateway دیتاگرام را Discard کند به Host مبدا یا میزبان یک پیام مبتنی بر Time Exceeded میفرستد.
  2. اگر Host یا میزبان به درستی تواند دیتاگرام را Reassemble کند این پیام صادر میشود.
  3. اگر فرگمنت صفر در دسترس نباشد و هیچ زمان منقضی شده نداشته باشد باید همه آن فرستاده شود.

نکته: کد 0 (صفر) ممکن است از Gateway دریافت شود و کد 1 (یک)ممکن است از host دریافت شود.

تحلیل پیام Parameter Problem در ICMP

با عرض سلام خدمت دوستان و همراهان گرامی،در این مقاله به ادامه |بخش اول ::http://network.tosinso.com/tips/34978/%d8%aa%d8%b4%d8%b1%db%8c%d8%ad-%da%a9%d8%a7%d9%85%d9%84-%d9%be%d8%b1%d9%88%d8%aa%da%a9%d9%84-icmp-%d8%a8%d8%ae%d8%b4-%d8%a7%d9%88%d9%84|تشریح پروتکل ICMP میپردازیم...

!! *تحلیل پیام Time Exceeded:*
||http://tosinso.com/files/get/f6877a08-39bf-4ff5-8b3c-edc24ef3338d||
*icmp Field:*
Type 3 یا نوع سوم
*code:*
0 = time to live exceeded in transit:  
1 = fragment reassembly time exceeded:این کد نشانگر منقضی شدن زمان Reassemble کردن دیتاگرام فرگمنت شده است.
*checksum:*مقدار این فیلد در Header برابر 16 بیت است.برای محاسبه ی فیلد checksum باید فیلد checksum برابر صفر باشد.این checksum ممکن است در دفعات بعدی جایگزین شود.
*Internet Header + 64 bits of Original Data Datagram*:این اطلاعات توسط host برای پردازش مناسب مورد مقایسه قرار میگیرد.اگر پروتکل های سطوح بالاتر از شماره port ها استفاده کنند آنها در 64 بیت اول از دیتاگرام اصلی(original datagram) در نظر گرفته میشوند.

*توضیحات:* در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام Time Exceededبه فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:

1- اگر Gateway ما در پردازش یک دیتاگرام متوجه شد که فیلد TTL برابر صفر است باید آن دیتاگرام را Discard کند.همانطور که میدانید اگر Gateway دیتاگرام را Discard کند به Host مبدا یا میزبان یک پیام مبتنی بر Time Exceeded میفرستد.
2- اگر Host یا میزبان به درستی تواند دیتاگرام را Reassemble کند این پیام صادر میشود.
3- اگر فرگمنت صفر در دسترس نباشد و هیچ زمان منقضی شده نداشته باشد باید همه آن فرستاده شود.
*نکته:* کد 0 (صفر) ممکن است از Gateway دریافت شود و کد 1 (یک)ممکن است از host دریافت شود.

!! *تحلیل پیام Parameter Problem:*
||http://tosinso.com/files/get/fef70173-c6fa-4b48-8ea4-aea43af175cf||
*ICMP Fields:*
Type 12
*Code:*
0=Pointer نشانگر error میباشد.
*Checksum:*توضیح داده شده است.
*Pointer:*همانطور که اشاره شد،اگر code برابر 0 باشد اکتت نشانگر یک error است.
*Internet Header + 64 bits of Data Datagram:*توضیح داده شده است.
*توضیحات:* اگر Gateway یا Host در پردازش یک دیتاگرام نتوانست به خوبی دیتاگرام را مورد پردازش قرار دهد یا مشکلی در Header های وجود داشت آن دیتاگرام را Discard خواهد کرد.
gateway یا host ممکن است این مشکل را بخوبی اعلام کنند.این پیام تنها زمانی ارسال میشود که error باعث discard شدن دیتاگرام شود.
*نکته:*کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.

!! *تحلیل پیام Source Quench:*
||http://tosinso.com/files/get/d2a273ab-5287-4366-815e-a546766da31d||
*ICMP Fields:*
Type 4
*Checksum:* توضیح داده شده است.
*Internet Header + 64 bits of Data Datagram*:توضیح داده شده است.
*توضیحات:* یک Gateway شاید مجموعه ای از دیتاگرام ها را discard کند اگر فضای کافی برای buffer کردن دیتاگرام ها در صف یا queue برای فرستان به سایر روتر ها یا Gateway برای مسیریابی نداشته باشد.اگر Gateway یک دیتاگرام را discard کند ممکن است پیام source quench message را به host مبدا در دیتاگرام ارسال کند.host مقصد ممکن است پیام source quench را ارسال کند اگر دیتاگرام به سرعت پردازش شده باشد.gateway ممکن است برای هر پیامی که Discard شده است پیام source quench message  را بفرستد.در حالت کلی مضمون از پیام source quench message از یک کامپیوتر host به کامپیوتر دیگر به او میگوید که سرعت انتقال Packet را در هنگام ارسال کاهش بده.Host مبدا تا زمانی که پیام source quench message را دریافت نکرده سرعت ارسال ترافیک را به مقصد مورد نظر رفته رفته افزایش میدهد.Gateway و یا Host ، اگر ظرفیتشان محدود باشد ممکن است پیام source quench message را ارسال کنند.تا اینکه ظرفیتشان از حد مجاز تجاوز کند.
*نکته:* کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.
*ادامه دارد...*


نویسنده : امیرحسین کریم پور
منبع : |جزیره شبکه و زیرساخت وب سایت توسینسو::https://network.tosinso.com|
مرجع: |RFC792::https://tools.ietf.org/html/rfc792|
هر گونه نشر و کپی برداری بدون ذکر نام منبع و نویسنده دارای اشکال اخلاقی می باشد.

ICMP Fields:

Type 12

Code:

0=Pointer نشانگر error میباشد.

Checksum:توضیح داده شده است.

Pointer:همانطور که اشاره شد،اگر code برابر 0 باشد اکتت نشانگر یک error است.

Internet Header + 64 bits of Data Datagram:توضیح داده شده است.

توضیحات: اگر Gateway یا Host در پردازش یک دیتاگرام نتوانست به خوبی دیتاگرام را مورد پردازش قرار دهد یا مشکلی در Header های وجود داشت آن دیتاگرام را Discard خواهد کرد.

gateway یا host ممکن است این مشکل را بخوبی اعلام کنند.این پیام تنها زمانی ارسال میشود که error باعث discard شدن دیتاگرام شود.

نکته:کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.

تحلیل پیام Source Quench در ICMP

با عرض سلام خدمت دوستان و همراهان گرامی،در این مقاله به ادامه |بخش اول ::http://network.tosinso.com/tips/34978/%d8%aa%d8%b4%d8%b1%db%8c%d8%ad-%da%a9%d8%a7%d9%85%d9%84-%d9%be%d8%b1%d9%88%d8%aa%da%a9%d9%84-icmp-%d8%a8%d8%ae%d8%b4-%d8%a7%d9%88%d9%84|تشریح پروتکل ICMP میپردازیم...

!! *تحلیل پیام Time Exceeded:*
||http://tosinso.com/files/get/f6877a08-39bf-4ff5-8b3c-edc24ef3338d||
*icmp Field:*
Type 3 یا نوع سوم
*code:*
0 = time to live exceeded in transit:  
1 = fragment reassembly time exceeded:این کد نشانگر منقضی شدن زمان Reassemble کردن دیتاگرام فرگمنت شده است.
*checksum:*مقدار این فیلد در Header برابر 16 بیت است.برای محاسبه ی فیلد checksum باید فیلد checksum برابر صفر باشد.این checksum ممکن است در دفعات بعدی جایگزین شود.
*Internet Header + 64 bits of Original Data Datagram*:این اطلاعات توسط host برای پردازش مناسب مورد مقایسه قرار میگیرد.اگر پروتکل های سطوح بالاتر از شماره port ها استفاده کنند آنها در 64 بیت اول از دیتاگرام اصلی(original datagram) در نظر گرفته میشوند.

*توضیحات:* در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام Time Exceededبه فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:

1- اگر Gateway ما در پردازش یک دیتاگرام متوجه شد که فیلد TTL برابر صفر است باید آن دیتاگرام را Discard کند.همانطور که میدانید اگر Gateway دیتاگرام را Discard کند به Host مبدا یا میزبان یک پیام مبتنی بر Time Exceeded میفرستد.
2- اگر Host یا میزبان به درستی تواند دیتاگرام را Reassemble کند این پیام صادر میشود.
3- اگر فرگمنت صفر در دسترس نباشد و هیچ زمان منقضی شده نداشته باشد باید همه آن فرستاده شود.
*نکته:* کد 0 (صفر) ممکن است از Gateway دریافت شود و کد 1 (یک)ممکن است از host دریافت شود.

!! *تحلیل پیام Parameter Problem:*
||http://tosinso.com/files/get/fef70173-c6fa-4b48-8ea4-aea43af175cf||
*ICMP Fields:*
Type 12
*Code:*
0=Pointer نشانگر error میباشد.
*Checksum:*توضیح داده شده است.
*Pointer:*همانطور که اشاره شد،اگر code برابر 0 باشد اکتت نشانگر یک error است.
*Internet Header + 64 bits of Data Datagram:*توضیح داده شده است.
*توضیحات:* اگر Gateway یا Host در پردازش یک دیتاگرام نتوانست به خوبی دیتاگرام را مورد پردازش قرار دهد یا مشکلی در Header های وجود داشت آن دیتاگرام را Discard خواهد کرد.
gateway یا host ممکن است این مشکل را بخوبی اعلام کنند.این پیام تنها زمانی ارسال میشود که error باعث discard شدن دیتاگرام شود.
*نکته:*کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.

!! *تحلیل پیام Source Quench:*
||http://tosinso.com/files/get/d2a273ab-5287-4366-815e-a546766da31d||
*ICMP Fields:*
Type 4
*Checksum:* توضیح داده شده است.
*Internet Header + 64 bits of Data Datagram*:توضیح داده شده است.
*توضیحات:* یک Gateway شاید مجموعه ای از دیتاگرام ها را discard کند اگر فضای کافی برای buffer کردن دیتاگرام ها در صف یا queue برای فرستان به سایر روتر ها یا Gateway برای مسیریابی نداشته باشد.اگر Gateway یک دیتاگرام را discard کند ممکن است پیام source quench message را به host مبدا در دیتاگرام ارسال کند.host مقصد ممکن است پیام source quench را ارسال کند اگر دیتاگرام به سرعت پردازش شده باشد.gateway ممکن است برای هر پیامی که Discard شده است پیام source quench message  را بفرستد.در حالت کلی مضمون از پیام source quench message از یک کامپیوتر host به کامپیوتر دیگر به او میگوید که سرعت انتقال Packet را در هنگام ارسال کاهش بده.Host مبدا تا زمانی که پیام source quench message را دریافت نکرده سرعت ارسال ترافیک را به مقصد مورد نظر رفته رفته افزایش میدهد.Gateway و یا Host ، اگر ظرفیتشان محدود باشد ممکن است پیام source quench message را ارسال کنند.تا اینکه ظرفیتشان از حد مجاز تجاوز کند.
*نکته:* کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.
*ادامه دارد...*


نویسنده : امیرحسین کریم پور
منبع : |جزیره شبکه و زیرساخت وب سایت توسینسو::https://network.tosinso.com|
مرجع: |RFC792::https://tools.ietf.org/html/rfc792|
هر گونه نشر و کپی برداری بدون ذکر نام منبع و نویسنده دارای اشکال اخلاقی می باشد.

ICMP Fields:

Type 4

Checksum: توضیح داده شده است.

Internet Header + 64 bits of Data Datagram:توضیح داده شده است.

توضیحات: یک Gateway شاید مجموعه ای از دیتاگرام ها را discard کند اگر فضای کافی برای buffer کردن دیتاگرام ها در صف یا queue برای فرستان به سایر روتر ها یا Gateway برای مسیریابی نداشته باشد.اگر Gateway یک دیتاگرام را discard کند ممکن است پیام source quench message را به host مبدا در دیتاگرام ارسال کند.host مقصد ممکن است پیام source quench را ارسال کند اگر دیتاگرام به سرعت پردازش شده باشد.

gateway ممکن است برای هر پیامی که Discard شده است پیام source quench message را بفرستد.در حالت کلی مضمون از پیام source quench message از یک کامپیوتر host به کامپیوتر دیگر به او میگوید که سرعت انتقال Packet را در هنگام ارسال کاهش بده.Host مبدا تا زمانی که پیام source quench message را دریافت نکرده سرعت ارسال ترافیک را به مقصد مورد نظر رفته رفته افزایش میدهد.Gateway و یا Host ، اگر ظرفیتشان محدود باشد ممکن است پیام source quench message را ارسال کنند.تا اینکه ظرفیتشان از حد مجاز تجاوز کند.

  • نکته: کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.

امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

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

نظرات