מודל השכבות > ICMP < IP עמוד השער מושגים

ICMP - פרוטוקול הודעות הבקרה ברשת

 

הקדמה

ICMP

מבנה הודעת ICMP

 

הקדמה

כפי שראינו, ב- IP כל נתב עובד באופן עצמאי, ומנתב את החבילות העוברות דרכו מבלי להודיע על כך לשולח המקורי של כל חבילה. זוהי צורת עבודה שמתאימה למצב בו כל נתב אכן עובד כמו שצריך, ללא טעויות; אך במציאות, כמובן, המצב שונה. בנוסף לכשלים בקווי תקשורת ובמעבדים, שיכולים לגרום לאיבוד חבילות, IP יכול לאבד חבילות כאשר מחשב היעד לא מקושר לרשת, כאשר ה- TTL נגמר, או כאשר הנתבים שבדרכה של החבילה עמוסים כל כך שהם לא מסוגלים לטפל בכל החבילות שמגיעות אליהן. אבל IP לא יכול לדווח על המקרים הללו.

ICMP
כדי לאפשר לנתבים לדווח על טעויות, או לספק מידע לגבי מצבים בלתי צפויים, מתכנני TCP/IP הוסיפו מנגנון מיוחד שמיועד לדווח על הדברים האלה - ICMP, או Internet Control Message Protocol. כמו כל תעבורת אחרת, הודעות ICMP עוברות ברשת כחלק הנתונים של חבילת IP. בשונה מהודעות רגילות, יעדה הסופי של הודעת ICMP אינו אפליקציה כלשהי, אלא מודול ה- IP על מחשב היעד.
במקור, תוכנן ICMP לאפשר לנתבים להודיע למחשבים השולחים על הסיבות לכשלון בהעברת חבילה. אולם, השימוש ב- ICMP אינו מוגבל לנתבים בלבד, וכל מחשב יכול להשתמש בפרוטוקול כדי לדבר עם מחשב אחר או עם נתב. כך, יש מנגנון אחד ויחיד להעברת הודעות בקרה ברשת.
ICMP הוא מנגנון להודעה על טעויות, ולא לתיקון טעויות - כלומר, הוא אינו מציין מה יש לעשות כדי לטפל בטעות. המחשב שמקבל את הודעת ה- ICMP צריך לטפל בעניין באופן עצמאי.
רוב הטעויות נובעות מהמחשב השולח המקורי, אך יש טעויות שנגרמות ע"י נתבים בדרך. כיוון ש- ICMP מדווח על טעויות רק למחשב השולח המקורי, הוא אינו יכול להודיע לנתבים שבדרך על טעויות. הסיבה לכך היא, כמובן, ש-IP אינו שומר את המסלול שעברה החבילה בדרך, ולנתב השולח את הודעת ה- ICMP אין שום אפשרות לדעת דרך אילו נתבים עברה החבילה לפני שהגיעה אליו: הוא יודע רק מה כתובת המקור שלה ומה כתובת היעד שלה.
הודעות ICMP דורשות 2 רמות של אנקפסולציה, כפי שמודגם בציור הבא:
עם זאת, למרות ש-ICMP נעטף בחבילת IP ונשלח על יד IP, הוא אינו מוגדר כפרוטוקול משכבה גבוהה יותר, אלא כחלק נדרש של IP.

מבנה הודעת ICMP


0....... 8....... 16...... 24......
(32 ביטים) 
סוג
קוד
checksum
נתונים