การตีความผลการ ping


11

ฉันกำลังกระตุก yahoo.com และฉันก็สับสนกับผลลัพธ์

C:\Users\jon>ping -t yahoo.com

Pinging yahoo.com [98.138.253.109] with 32 bytes of data:
Reply from 98.138.253.109: bytes=32 time=195ms TTL=46
Reply from 98.138.253.109: bytes=32 time=230ms TTL=44
Reply from 98.138.253.109: bytes=32 time=175ms TTL=45
Reply from 98.138.253.109: bytes=32 time=208ms TTL=44
Reply from 98.138.253.109: bytes=32 time=180ms TTL=46
Reply from 98.138.253.109: bytes=32 time=206ms TTL=44
Reply from 98.138.253.109: bytes=32 time=209ms TTL=44
Reply from 98.138.253.109: bytes=32 time=173ms TTL=46
Reply from 98.138.253.109: bytes=32 time=170ms TTL=46
Reply from 98.138.253.109: bytes=32 time=224ms TTL=45
Reply from 98.138.253.109: bytes=32 time=200ms TTL=45
Reply from 98.138.253.109: bytes=32 time=172ms TTL=46
Reply from 98.138.253.109: bytes=32 time=258ms TTL=44

ฉันเข้าใจค่า TTL อย่างไม่ชัดเจนเนื่องจากจำนวนของฮ็อพที่แพ็คเก็ตเคลื่อนที่ไปถึงปลายทาง แต่ฉันไม่เข้าใจว่า TTL สามารถมีความแปรปรวน +/- 1 ที่น่าทึ่งในระยะเวลาอันสั้นเช่นนี้ได้อย่างไร

นอกจากนี้ดูเหมือนว่า Yahoo มีการ จำกัด อัตราการใช้งานบางอย่างเนื่องจากการ ping แบบต่อเนื่องจะเริ่มหมดเวลาหลังจากแพ็กเก็ตประมาณ 20 แพ็ก เป็นเรื่องปกติหรือไม่ bing.com ไม่ตอบกลับแม้แต่ฉัน!

เมื่อ ping google.com TTL จะสอดคล้องกัน

เมื่อ pinging Twitter.com บางครั้งฉันได้รับ TTL = 249 แต่ปกติคือ TTL-58

เกิดอะไรขึ้น? ISP ของฉันไม่ดีหรือมีคำอธิบายที่น่ากลัวน้อยลงหรือไม่?


1
การโหลดบาลานซ์ ibgp โดยหนึ่งใน upstreams ของคุณเป็นสาเหตุที่เป็นไปได้ แต่เรามีข้อมูลไม่เพียงพอที่จะทราบ คุณสามารถค้นหาโดย tracerouting ... กรุณา google สำหรับ mtr และสำรวจเพิ่มเติม
Mike Pennington

หากคุณสามารถระบุแหล่งที่มาของคุณ ip (ขดmy.ip.fi ) ฉันสามารถลองใช้จุดได้เปรียบหลาย ๆ จุดเพื่อดูตัวเลือกเส้นทางกลับ
ytti

คำตอบ:


14

สาเหตุส่วนใหญ่เกิดจากการโหลดบาลานซ์ในหลายเครือข่าย การปิงแต่ละครั้งจะใช้เส้นทางที่แตกต่างกันและจะมีค่า TTL ที่ต่างกัน

ฉันยังอ่านเกี่ยวกับผู้ให้บริการเสิร์ชเอ็นจิ้นที่ทำสิ่งแปลกประหลาดกับ TTL แต่มันเพิ่งผ่านเส้นทางที่แตกต่างกันไม่ทางใดก็ทางหนึ่ง

ค่า TTL แตกต่างกันเมื่อมาจากระบบปฏิบัติการที่แตกต่างกัน:

  • Windows: 128
  • Linux: 64
  • ซิสโก้: 255
  • โซลาริส: 255

และใช่ไซต์บางแห่งจะหยุดตอบสนองต่อ ICMP หลังจากผ่านไประยะเวลาหนึ่งหรือเมื่อถึงขีด จำกัด อัตราการเข้าชม ฉันเชื่อว่า DNS ของ Google ใน 8.8.8.8 ในที่สุดก็หยุดหลังจากที่ในขณะ


6

คนอื่น ๆ ได้กล่าวถึงสถานการณ์หลายอย่างเพื่ออธิบายการเปลี่ยนแปลงในเวลาล่าช้า ด้วยการเชื่อมโยง ECMP (หลายต้นทุนเท่ากัน) คุณสามารถมีสถานการณ์จำลองตามผลลัพธ์ที่คุณให้ไว้ใน ping ไปยัง Yahoo ซึ่งการหน่วงเวลาเปลี่ยนไประหว่างผลลัพธ์ แต่สมเหตุสมผลอย่างสม่ำเสมอ ดังนั้นดูเหมือนว่าการเข้าชมของคุณจะถูกแฮชบนเส้นทางสองหรือสามเส้นทางเดียวกันโดยมีความยาวต่างกัน (ล่าช้า) (แม้ว่าจะเป็นการเก็งกำไรเท่านั้นฉันก็ไม่มีใครสามารถบอกได้อย่างแน่นอนกับข้อมูลที่ให้

นอกจากนี้ดูเหมือนว่า Yahoo มีการ จำกัด อัตราการใช้งานบางอย่างเนื่องจากการ ping แบบต่อเนื่องจะเริ่มหมดเวลาหลังจากแพ็กเก็ตประมาณ 20 แพ็ก เป็นเรื่องปกติหรือไม่ bing.com ไม่ตอบกลับแม้แต่ฉัน!

เครือข่ายบางแห่งทำการกรองปริมาณการใช้งาน ICMP ซึ่งฉันพบว่าน่ารำคาญอย่างมาก! เพื่อที่จะสามารถอธิบายสถานการณ์ "ไม่ปิงเลย" สำหรับสถานการณ์ที่คุณมีการตอบกลับหรือการตอบกลับที่ จำกัด เครือข่ายอาจนำเทคโนโลยีมาใช้เช่นการวางแผนการควบคุมของซิสโก้ (หรือเทียบเท่าผู้ขาย)

เมื่อ pinging Twitter.com บางครั้งฉันได้รับ TTL = 249 แต่ปกติคือ TTL-58

เมื่อคุณมีความแปรปรวนของผลลัพธ์ที่มีความเสถียรน้อยกว่าอาจมีเส้นทางหลายเส้นทางที่ไม่เท่ากันมีค่าใช้จ่ายหรือมีการเปลี่ยนแปลงในวิศวกรจราจรเนื่องจากปัญหาการเชื่อมโยงบางเส้นทางในเส้นทาง อีกครั้งไม่สามารถพูดด้วยข้อมูลที่ให้


3

ความแปรปรวนของ TTL บนแพ็กเก็ตเหล่านี้สามารถอธิบายได้โดยเราเตอร์ที่ใช้เวลานานในการประมวลผลแพ็กเก็ต TTL จะลดลงหนึ่งครั้งหลังจากการกระโดดแต่ละครั้งหากเวลาผ่านเราเตอร์น้อยกว่าหนึ่งวินาที หากเวลาผ่านเราเตอร์มีค่ามากกว่านั้นหนึ่งวินาที TTL จะลดลงสองครั้งแทนที่จะเป็นหนึ่งครั้ง

ดูRFC791หน้า 29:

ใช้เวลาอยู่

The time to live is set by the sender to the maximum time the
datagram is allowed to be in the internet system.  If the datagram
is in the internet system longer than the time to live, then the
datagram must be destroyed.

This field must be decreased at each point that the internet header
is processed to reflect the time spent processing the datagram.
Even if no local information is available on the time actually
spent, the field must be decremented by 1.  The time is measured in
units of seconds (i.e. the value 1 means one second).  Thus, the
maximum time to live is 255 seconds or 4.25 minutes.  Since every
module that processes a datagram must decrease the TTL by at least
one even if it process the datagram in less than a second, the TTL
must be thought of only as an upper bound on the time a datagram may
exist.  The intention is to cause undeliverable datagrams to be
discarded, and to bound the maximum datagram lifetime.

Some higher level reliable connection protocols are based on
assumptions that old duplicate datagrams will not arrive after a
certain time elapses.  The TTL is a way for such protocols to have
an assurance that their assumption is met.

2
ด้วยเวลา ping ต่ำกว่า 300ms นี่ไม่น่าจะเป็นปัจจัยในกรณีนี้แม้ว่ามันจะดีสำหรับคนที่เข้าใจว่านี่เป็นหน้าที่ของ TTL
YLearn

ฉันจะกังวลมากหากการกระโดดใช้เวลานานกว่า 1 วินาทีในการประมวลผลแพ็กเก็ต แต่ฉันไม่ได้ตระหนักถึงสิ่งนี้ฉันคิดว่าสนามมีการเปลี่ยนแปลงเนื่องจากเป็นส่วนหนึ่งของมันผ่านหน่วยประมวลผลพบว่าดี!
Artanix

3
TTL จะไม่ลดลงชั่วคราวในชีวิตจริงเช่น RFC แนะนำว่าเป็น 'hop count' อย่างเคร่งครัดและตั้งชื่อเช่นนี้ใน IPv6
ytti

@ ดังนั้นจริงนี่คือวิธีที่ควรจะเป็น แต่อุปกรณ์บางอย่างจะสอดคล้องกับส่วนนี้ของ RFC ในขณะที่อุปกรณ์กระแสหลักส่วนใหญ่จะไม่ทำเช่นนี้ฉันได้เห็นกรณีมุมนี้เกี่ยวกับอุปกรณ์ "off brand"
YLearn

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