ความแตกต่างระหว่าง "เวลาแฝง" กับ "เวลาไปกลับ" คืออะไร


14

ชุมชน Golang จัดทำเว็บไซต์ตัวอย่าง HTTP / 2เพื่อเปรียบเทียบประสิทธิภาพระหว่าง HTTP 1.1 และ HTTP / 2

เราสามารถเลือกที่แตกต่างกันlatencyเช่นเวลาแฝง 0 วินาทีความล่าช้า 30 มิลลิวินาทีความล่าช้า 200 มิลลิวินาที

  1. เป็นlatencyคำศัพท์ของวิทยาศาสตร์คอมพิวเตอร์?
  2. นั่นหมายความว่าอย่างไร?
  3. ความแตกต่างระหว่างlatencyและRound Trip Timeคืออะไร?

ป้อนคำอธิบายรูปภาพที่นี่


คำถามและคำตอบนี้อาจช่วยให้คุณเข้าใจ
Ron Maupin

คำตอบใดช่วยคุณได้บ้าง ถ้าเป็นเช่นนั้นคุณควรยอมรับคำตอบเพื่อที่คำถามจะไม่โผล่ขึ้นมาเรื่อย ๆ โดยมองหาคำตอบ
Ron Maupin

คำตอบ:


20

เวลาแฝงของเครือข่ายคือระยะเวลาที่สิ่งที่ส่งจากโฮสต์ต้นทางไปถึงโฮสต์ปลายทาง มีส่วนประกอบหลายอย่างสำหรับเวลาในการตอบสนองและเวลาในการตอบสนองอาจแตกต่างจาก A ถึง B และ B ถึง A

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


10

"ความหน่วง" อาจหมายถึงสิ่งต่าง ๆ โดยทั่วไปความล่าช้าในการเรียงลำดับบางส่วน - เวลาแฝงของแอปพลิเคชันคือเวลาตอบสนองของแอปพลิเคชัน (จากอินพุตไปยังเอาต์พุต) เวลาหน่วงของเครือข่ายจะล่าช้าสำหรับการรับแพ็คเก็ตจากจุด A ถึง B เป็นต้น

"เวลาไป - กลับ" ถูกกำหนดมากหรือน้อยเช่นกันเนื่องจากความล่าช้าของเครือข่ายจากจุด A ถึง B และย้อนกลับ นี่คือผลรวมของการเข้ารหัสการจัดคิวการประมวลผลการถอดรหัสและความล่าช้าในการเผยแพร่ทั้งสองทิศทาง โดยพื้นฐานแล้วมันเป็นความล่าช้าเมื่อ A อาจคาดหวังคำตอบจาก B สำหรับคำขอที่ต้องการการประมวลผลที่น้อยมาก

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

ในกรณีของคุณ "แฝง" หมายถึงความล่าช้าประดิษฐ์ภายในเซิร์ฟเวอร์ HTTP ที่เพิ่มเข้ามาด้านบนของความล่าช้าที่มีอยู่แล้ว ดังนั้นหากคุณมีเวลาไปกลับที่มีประสิทธิภาพ 50 ms ไปยังเซิร์ฟเวอร์และเลือก "200 ms latency" คุณสามารถคาดหวังการตอบกลับคำขอภายใน 250 ms (รวมถึงค่าใช้จ่ายในการประมวลผลบนเซิร์ฟเวอร์)


4

ในการเพิ่มพื้นหลังเล็กน้อยให้กับคำตอบอื่น ๆ เราต้องจำไว้ว่าเวลาแฝงของเครือข่ายอาจแตกต่างกันอย่างมากและอาจส่งผลกระทบต่อประสบการณ์ของผู้ใช้

หนึ่งในแหล่งที่มาที่ชัดเจนที่สุดของเวลาแฝงของเครือข่ายคือระยะทาง: สัญญาณที่ส่งข้อมูลของคุณจะเดินทางด้วยความเร็วแสงมากหรือน้อยดังนั้นยิ่งระยะทางเดินทางจากไคลเอนต์ไปยังเซิร์ฟเวอร์นานเท่าใดเวลาแฝงก็จะสูงขึ้น การสื่อสารระหว่างคอมพิวเตอร์สองเครื่องที่เชื่อมต่อด้วยสายเคเบิลอีเทอร์เน็ตจะใช้เวลาไม่กี่มิลลิวินาที การสื่อสารกับเซิร์ฟเวอร์ข้ามมหาสมุทรจะใช้เวลาหลายสิบหรือหลายร้อยมิลลิวินาที การสื่อสารที่ต้องผ่านดาวเทียมค้างฟ้าจะใช้เวลาหลายร้อยมิลลิวินาที

สามารถมองเห็นได้ชัดเจนเมื่อทำการ ping ซึ่งวัดเวลาไปกลับซึ่งในกรณีนี้ใกล้เคียงกับผลรวมของเวลาแฝงในทั้งสองทิศทาง

อีกสองสามสิ่งที่มีอิทธิพลต่อความล่าช้า:

  • จำนวนลิงก์ / ฮ็อพ: ในกรณีส่วนใหญ่แพ็คเก็ตจะต้องได้รับอย่างเต็มที่ก่อนที่จะสามารถส่งได้ในลิงค์ถัดไป นั่นเป็นการเพิ่มความล่าช้าเล็กน้อยในการเต้นแต่ละครั้ง
  • ปริมาณงานของลิงก์เหล่านั้น: ยิ่งลิงก์ช้าก็ยิ่งใช้แพ็คเก็ตเต็มก่อนจึงจะส่งต่อได้ในลิงค์ถัดไป
  • โหลดลิงก์เหล่านั้น: หากลิงค์เต็มแพ็คเก็ตอาจต้องรอจนกว่าจะสามารถส่งได้
  • สำหรับลิงค์ที่มีการส่งสัญญาณซ้ำอัตราความผิดพลาดบนลิงค์ยิ่งมีอัตราความผิดพลาดสูงเท่าไรโอกาสในการส่งแพ็กเก็ตก็จะยิ่งสูงขึ้น

ความหน่วงแฝงสามารถมีผลอย่างมากต่อประสบการณ์ผู้ใช้ (หรือไม่):

  • กรณีที่รู้จักกันดีที่สุดคือเวลาในการตอบสนองต่อผู้เล่นเกม MMORPG และเกมออนไลน์อื่น ๆ
  • สิ่งใดก็ตามที่โต้ตอบซึ่งควบคุมการโต้ตอบในอีกด้านหนึ่งได้รับผลกระทบจากความล่าช้า Telnet / ssh ซึ่งเป็นเดสก์ท็อประยะไกลล้วนได้รับผลกระทบจากความหน่วงแฝง
  • การสื่อสารด้วยเสียงได้รับผลกระทบจากความหน่วงแฝงและด้วยเวลาแฝงที่สูงคุณจะต้องเจอกับคนที่ขัดขวางซึ่งกันและกันตลอดเวลา
  • โปรโตคอลการถ่ายโอนไฟล์ที่เก่ากว่านั้นได้รับผลกระทบจากความล่าช้าเนื่องจากพวกเขาไม่ได้ใช้ windows แบบเลื่อนและผู้ส่งต้องรอให้แพ็กเก็ตมาถึงที่ปลายทางและการรับทราบจะกลับมาอีกครั้ง

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


4

Round-trip time (RTT) คือเวลาที่แพ็กเก็ตต้องใช้จากจุดส่งที่ส่งไปยังจุดรับและด้านหลัง มีปัจจัยหลายอย่างที่ส่งผลต่อ RTT รวมถึงความล่าช้าในการเผยแพร่ความล่าช้าในการประมวลผลความล่าช้าในการเข้าคิวและความล่าช้าในการเข้ารหัส ปัจจัยเหล่านี้โดยทั่วไปจะมีค่าคงที่สำหรับคู่ปลายทางที่สื่อสารกัน นอกจากนี้ความแออัดของเครือข่ายสามารถเพิ่มส่วนประกอบแบบไดนามิกให้กับ RTT

RTT และ ping เหมือนกันหรือไม่

เวลาไป - กลับและเวลาปิงมักถูกพิจารณาว่ามีความหมายเหมือนกัน ในขณะที่เวลา ping อาจให้ค่า RTT ที่ดี แต่มันก็มีความแตกต่างในการทดสอบ ping ส่วนใหญ่ที่ดำเนินการภายในโปรโตคอลการขนส่งโดยใช้แพ็คเก็ต ICMP ในทางตรงกันข้าม RTT ถูกวัดที่ชั้นแอปพลิเคชันและรวมถึงความล่าช้าในการประมวลผลเพิ่มเติมที่เกิดจากโปรโตคอลระดับสูงและแอปพลิเคชันที่สูงขึ้น (เช่น HTTPS)

อะไรคือ RTT และ Network Latency

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

ลองดูที่โพสต์บล็อกนี้บน RTTเพื่อดูข้อมูลเพิ่มเติม

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