ทำไมคำขอ 'ping' ส่งคืน 'หมดเวลา' สำหรับบางครอบครัว


12

สำหรับโฮสต์บางตัวping www.example.comจะแก้ไข IP ของพวกเขา แต่ทำไมมันถึงล้มเหลวเมื่อหมดเวลาการร้องขอ ฉันยังพยายามเพิ่มเวลาตอบสนองการ ping แต่ยังคงผลลัพธ์เดียวกัน


ไม่จำเป็นต้องใช้โฮสต์เพื่อตอบสนองต่อคำขอ ping
R. Martinho Fernandes

คำตอบ:


11

pingเป็นแพ็คเก็ต ICMP สำหรับการเปรียบเทียบทราฟฟิกของเว็บหรือ HTTP โดยทั่วไปจะเป็นแพ็คเก็ต TCP บนพอร์ต 80 เซิร์ฟเวอร์ที่ระบุอาจให้การตอบสนองเพื่อวัตถุประสงค์ในการรับส่งข้อมูลทางเว็บ แต่บล็อก ICMP (หรืออยู่หลังไฟร์วอลล์ที่บล็อก ICMP)

  • แก้ไข URL ให้เป็นที่อยู่ IP
  • เชื่อมต่อและดูเนื้อหาเว็บ

แต่คุณไม่สามารถ ping ที่อยู่ IP ได้ การตอบสนอง "คำขอหมดเวลา" เป็นเพราะลูกค้าของคุณส่งแพ็คเก็ตเริ่มต้นรอการตอบกลับ (ซึ่งจะไม่มา) และให้ขึ้นที่หมดเวลาที่กำหนดไว้ล่วงหน้า


6

เพราะมันล้มเหลวในการเชื่อมต่อกับโฮสต์ เพียงเพราะเซิร์ฟเวอร์ DNS รู้ว่าโฮสต์ควรมี IP ไม่ได้หมายความว่าโฮสต์ที่มีปัญหากำลังทำงานและยอมรับการเชื่อมต่อ


ทำไมมันจะไม่ล้มเหลวผ่านเบราว์เซอร์?

2
@cpx: คำขอ ping ไม่ใช่คำขอ HTTP โฮสต์อาจตอบสนองต่อหลัง แต่ไม่สนใจอดีต
R. Martinho Fernandes

2
กำลังยอมรับการเชื่อมต่อ TCP บนพอร์ต 80 แต่ไม่ใช่การเชื่อมต่อ ICMP ไม่มีอะไรบอกว่าคอมพิวเตอร์ต้องยอมรับหรือตอบกลับทั้งสองอย่าง
Dan Grossman

2
ICMP ไม่สร้างการเชื่อมต่อ ทำไมคำตอบนี้ถึงได้รับการโหวตสูงกว่าของ Pablo เช่นกัน ICMP สุ่มส่งเฟรมไปยังโฮสต์ปลายทางและรอสักครู่หากมีบางอย่างกลับมา
sinni800


1

ยกตัวอย่างเช่น ping ก็ล้มเหลวที่จะ www.microsoft.com เช่นกัน เป็นเพราะคอมพิวเตอร์เซิร์ฟเวอร์เหล่านั้นใช้ไฟร์วอลล์ที่ จำกัด การบล็อกแพ็คเก็ต ICMP จากโฮสต์ที่ไม่รู้จัก

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

หากไม่ใช่ปลายทางหรือปลายทางทิ้งแพ็กเก็ต (ไฟร์วอลล์หรือไม่) คุณจะไม่ได้รับคำตอบ

ซึ่งไม่ขึ้นอยู่กับปริมาณการใช้ http ซึ่งใช้ TCP

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.