ICMP เป็นเพียงโปรโตคอลที่ช่วยให้ระบบทำงานดียิ่งขึ้น เข้ามาช่วยแก้ปัญหาที่เกิดจากการทำงานปกติของระดับ 3 คือ IP
ผู้ใช้อินเทอร์เน็ตคงมีความประหลาดใจและเห็นถึงความมหัศจรรย์ของเครือข่ายขนาดใหญ่ที่เชื่อมโยงต่อถึงกันได้ทั่วโลก การพัฒนาและออกแบบโปรโตคอลสำหรับเครือข่าย และการเชื่อมโยงที่สำคัญคือ โปรโตคอล TCP/IP การที่เรียกว่า TCP/IP นั้น อาจเรียกเพราะเป็นโปรโตคอลสำหรับเครือข่ายและการเชื่อมโยงที่สำคัญคือโปรโตคอล TCP/IP การที่เรียกว่า TCP/IP นั้น อาจเรียกเพราะเป็นโปรโตคอลหลัก เพราะการกำหนดเส้นทางและการเชื่อมโยงระหว่างเครื่องคอมพิวเตอร์ใช้โปรโตคอล IP โดยมี ส่วนของการทำงานอยู่ระดับ 3 เหนือจาก LAN หรือ WAN ที่ทำงานในระดับ 1 กับ 2 ตามที่ได้เคยมีบทความในวารสารไมโครฯ หลายครั้งที่เกี่ยวกับ TCP/IP ซึ่ง แสดงให้เห็นว่าในระดับ 4 การทำงานจริง ๆ แล้วมีการใช้ UDP และ TCP ซึ่งขึ้นกับการประยุกต์ใช้งาน ดังนั้นหากจะเรียกให้ถูกต้องน่าจะเป็น TCP หรือ UDP/IP แต่เนื่องจาก TCP/IP เป็นคำที่คุ้นเคยและติดปากจึงใช้คำนี้
ในการหาเส้นทางและตรวจสอบเส้นทางการเชื่อมโยงบนเครือข่ายนั้นมีโปรโตคอลย่อยที่ทำงานอยู่อีกหลายโปรโตคอล เช่น ARP และ RARP ที่ทำหน้าที่เชื่อมโยง การทำงานระหว่างระดับ 3 กับ 2 ให้แน่นแฟ้นยิ่งขึ้น
สำหรับในระดับ 3 เป็นระดับของการหาเส้นทางซึ่งเป็นกรรมวิธีที่สำคัญ บนโปรโตคอลที่ใช้ในอินเทอร์เน็ตมีโปรโตคอล ICMP-Internet Control Message Protocol ซึ่งเป็นโปรโตคอลที่สำคัญควบคุมการทำงานอยู่
ระดับการเกี่ยวโยงของโปรโตคอลต่าง ๆ ที่ใช้งานร่วมกันแสดงดังรูปที่ 1
จากโครงสร้างความสัมพันธ์นี้เห็นได้ชัดว่า ICMP อยู่ในระดับ 3 ซึ่งเป็นระดับเน็ตเวอร์ก เป็นโปรโตคอลที่สำคัญที่ช่วยในการหาเส้นทางของการเชื่อมโยงเครือข่าย

รู้จักกันดีด้วยคำสั่งตรวจสอบเครือข่าย ping

เมื่อผู้ใช้งานบนอินเทอร์เน็ตอยากรู้ว่าโฮสต์ที่ตนเองจะติดต่อมีตัวตนและเชื่อมโยงเส้นทางไปถึงได้หรือไม่ เรามีคำสั่งง่าย ๆ คำสั่งหนึ่งคือคำสั่ง ing คำสั่ง ping ใช้โปรโตคอล ICMP เพื่อส่งไปยังปลายทางแล้วส่งคำตอบกลับมาลองดูตัวอย่าง

nontri% ping nwg.nectec.or.th
nwg.nectec.or.th is alive
nontri%

หรือถ้าใช้บนวินโดว์ก็ใช้คำสั่ง ping ได้เช่นกัน ดังรูปที่ 3
กรณีของการ ping ด้วยพารามิเตอร์ที่บอกจำนวนไบต์และจำนวนแพคเก็ต แสดงดังรูปที่ 2
คำสั่งแรกใช้ ping ส่งโปรโตคอล ICMP ไปถาม ส่วนคำสั่งที่สองมีการกำหนดให้ส่งข้อความไปถาม 14 ข้อความ ซึ่งแต่ละข้อความมีความยาว 64 ไบต์ ผลที่ได้เป็นการบอก ข้อมูลว่าแพคเก็ต ICMP ใช้เวลาเท่าไร และมีจำนวนแพคเก็ตที่สูญหายหรือไปไม่ถึงอยู่เท่าไร
IP เป็นโปรโตคอลที่ค่อนข้างเรียบง่าย มีโครงสร้างที่ได้รับการออกแบบมาอย่างดี ใช้งานได้อย่างยอดเยี่ยม การใช้งาน IP เพื่อเชื่อมโยงเป็นไปอย่างมีประสิทธิภาพ และใช้ ทรัพยากรที่ค่อนข้างจำกัด แต่ก็ยังมีปัญหาบางประการ เช่น เมื่อเราเตอร์ทำงานผิดพลาดหรือมีบางแพคเก็ตที่ไม่สามารถนำส่งได้ หรือช่วงเวลาที่ทำงานเกินขอบเขตที่ตั้งไว้ อะไรจะเป็นตัวคอยบอกหรือเตือนให้ทราบว่าข้อมูลข่าวสารที่จัดส่งนี้ไปไม่ถึงปลายทาง หรือหากบางเราเตอร์มีปัญหาในการนำส่งการส่งข้อมูลเตือนกลับไปยังโฮสต์จะทำได้ อย่างไร เพื่อให้การทำงานในเรื่องการสร้างเครือข่ายเส้นทาง หรือตอบสนองปัญหาที่ต้องการจึงต้องมีโปรโตคอลพิเศษ


รูปที่ 1 ความสัมพันธ์ของโปรโตคอลระดับต่าง ๆ

nontri% ping -s nwg.nectec.or.th 64 14
PING nwg.nectec.or.th: 64 data bytes
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=0 . time=460
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=1 . time=1038
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=2 . time=1402
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=3 . time=1162
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=4 . time=1855
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=5 . time=1080
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=7 . time=1606
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=8 . time=1006
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=9 . time=729
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=10 . time=985
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=11 . time=772
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=12 . time=288
72 bytes from nwg.nectec.or.th (192.150.251.31) : icmp_seq=13 . time=587
--nwg.nectec.or.th PING Statistics--
14 packets transmitted, 13 packets received, 7% packet loss
round-trip (ms) min/avg/max = 288/977/1855
nontri%
รูปที่ 2 การใช้ ping ตรวจสอบเครือข่าย



รูปที่ 3 การใช้ ping บนวินโดว์

ICMP เป็นโปรโตคอลที่เข้ามาช่วยเสริมแก้ปัญหาระบบดังกล่าวนี้ ICMP เป็นโปรโตคอลที่ช่วยเหลือระบบ ให้ทำงานได้อย่างมีประสิทธิภาพ ช่วยทำให้การดูแลเครือข่าย หรือการแสดงสถานะของเครือข่ายที่โหนดต่าง ๆ เป็นไปอย่างถูกต้อง และแจ้งสถานะของตนเองได้
ฟังก์ชันการทำงานของ ICMP จึงเป็นส่วนหนึ่งของ IP โฮสต์ทุกโฮสต์ และเราเตอร์ต้องสร้าง ICMP เพื่อใช้ในการตรวจสอบสถานะหรือติดต่อแสดงสถานะของเครือข่าย

สาระน่ารู้ประจำสัปดาห์, ฉบับที่ 26 : 10 กรกฎาคม - 16 กรกฎาคม 2543
สำนักบริการคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์