ผ่านไป 4 ปีจากตอนที่หนึ่งสู่ตอนที่สอง ฮ่าๆๆ
อยากกลับไปอ่านตอนที่ 1 คลิก
พอดีอยู่ดีๆก็หมดไฟไปดื้อๆ (หมดไฟนานไปไหม?)
ตอนที่เคยๆ เขียนเอาไว้ก็ดันลบทิ้งไปหมด เพราะคิดว่าคงไม่ได้ใช้แล้ว
ซึ่งถ้ามองในทางที่ดี ก็ถือได้ว่าเป็นการ refresh ข้อมูลทุกอย่างใหม่หมดและเขียนด้วยประสบการณ์ที่โตมากกว่าเดิมถึง 4 ปี
คราวที่แล้วติดค้างกันไว้ที่เรื่องของผลลัพธ์ที่ได้จากการ Ping
ซึ่งในที่นี้เราจะ Focus อยู่ใน environment ที่เครื่องที่เราใช้ Ping เป็น windows เท่านั้น (บนเครื่องที่ใช้ระบบปฏิบัติการอื่นๆอาจจะได้ผลที่แตกต่างกันไป)
ในกรณีที่เราไม่ได้ผลลัพธ์เป็น reply from …..
เราจะเจอผลลัพธ์แบบไหนได้บ้างแล้ว แต่ละอันหมายความถึงอะไร
1. Request Time out
ผลลัพธ์แบบนี้น่าจะพบเจอได้บ่อยที่สุด
แน่นอนผลลัพธ์ของมันมาจากการที่ Echo Request ที่เราส่งไป ไม่มีการตอบรับกลับมาจากปลายทางตามเวลาที่กำหนด (ซึ่งปกติ Windows มันจะกำหนดไว้ที่ 4 วินาที)ซึ่งมันหมายถึง….
- ไม่มีเครื่องปลายทางนั้นอยู่จริงๆ หรือเครื่องปลายทางไม่ได้เปิดอยู่
- ส่ง ICMP Echo request ออกไปไม่ได้ (อาจจะเพราะ ARP request ไม่สำเร็จ)
- ส่ง ICMP Echo ออกไปแล้วแต่ไปไม่ถึงปลายทาง (มีบางอย่าง filter packet ทิ้งไปเช่น Firewall,ACL)
- ส่ง ICMP Echo ออกไปแล้วแต่ไปผิดทิศทาง (Routing ผิด)
- หรือเครื่องฝั่งตรงข้ามไม่รู้จักหรือไม่ตอบรับ ICMP Echo
ในกรณีที่อยู่บน Router หรือ Linux อาจจะเจอผลลัพธ์เป็นเครื่องหมาย ….. แทนก็เป็นได้
2. Destination Host Unreachable

แบบนี้ผลลัพธ์ที่ได้จะมีบอกด้วยว่า Reply from IP address อะไร
IP address ที่ตอบเรากลับมาคืออุปกรณ์ Router ที่ไม่มี route ไปยัง destination network ที่ต้องการนั่นเอง
ฉะนั้นเมื่อเจอผลลัพธ์แบบนี้ ปัญหาน่าจะเป็นเพราะ Router บางตัวไม่มี route อยู่ใน routing table
(Router ที่มีปัญหาคือ IP Router ที่ตอบกลับมา)
ในกรณีที่อยู่บน Router หรือ Linux อาจจะเจอผลลัพธ์เป็นเครื่องหมาย U.U.U. แทนก็เป็นได้
3. TTL Expired in Transit

ผลลัพธ์แบบนี้มาจากการที่ TTL ลดลงจนหมดทำให้ไม่สามารถส่งได้ อุปกรณ์ที่ทำการ drop packet เพราะ TTL หมด จะตอบกลับด้วย ICMP TTL expire ซึ่งแต่ละระบบปฏิบัติการจะมีค่า TTL ตั้งต้นไม่เท่ากัน (อยากรู้ว่ามีเท่าไหร่ คลิก)
ซึ่งอาจจะเป็นไปได้ว่า….
- เกิด routing loop ขึ้นในระบบ
- TTL ตั้งต้นน้อยเกินไป
4. Fragment needed and DF set

ผลลัพธ์แบบนี้เกิดขึ้นได้ยากในสถานการณ์จริง สาเหตุที่เกิดเพราะ packet มีขนาดใหญ่กว่า MTU
ปกติแล้วถ้า packet ใหญ่กว่า MTU จริงมันจะทำการแบ่ง packet เป็นชิ้นเล็กชิ้นน้อย แต่ในกรณีนี้เราสั่งห้ามไว้ทำให้ไม่สามารถส่งไปยัง media ได้
ในกรณีที่อยู่บน Router หรือ Linux อาจจะเจอผลลัพธ์เป็นเครื่องหมาย M.M.M แทนก็เป็นได้
เนื่องด้วย ICMP เป็นโปรโตคอลมาตรฐาน ไม่ว่าผลลัพธ์เหล่านี้จะย้ายไปเกิดบนแพลทฟอร์มใดผลลัพธ์ที่ได้ก็บ่งบอกถึงสิ่งเดียวกัน และด้วยความเข้าใจอันนี้อาจจะทำให้ Ping เครื่องมือมาตรฐานประจำเครื่อง บอกข้อมูลให้กับเราได้มากกว่าที่มันเคยบอกไว้ หรือเป็นมากกว่าแค่เครื่องมือที่บอกว่าอุปกรณ์ปลายทางยังมีชีวิตอยู่หรือเปล่าก็เป็นได้