ในโลกเทคโนโลยีมีคำศัพท์ทางเทคนิคหลายคำ ที่ถูกใช้ในการอธิบายการทำงานของระบบต่าง ๆ ที่เราใช้ในชีวิตประจำวัน หนึ่งในคำที่เรามักได้ยินกันบ่อยเป็นประจำ แต่บางคนอาจยังไม่เข้าใจอย่างชัดเจนว่ามันหมายถึงอะไร ? คือคำว่า "Latency" หรือ "ความหน่วงเวลา"
คำนี้มักได้ยินบ่อยครั้งเวลาที่สนทนาในหัวข้อเกี่ยวกับ อินเทอร์เน็ต (Internet) แต่อันที่จริงแล้วค่า Latency ยังมีความเกี่ยวข้องกับเทคโนโลยีอื่น ๆ อีกหลายด้าน ตั้งแต่การสื่อสารผ่านเครือข่าย ไปจนถึงประสิทธิภาพของ ฮาร์ดแวร์คอมพิวเตอร์ (Computer Hardware) อีกด้วยเช่นกัน
บทความนี้จะมาอธิบายว่า Latency คืออะไร ? ทำไมค่า Latency ถึงมีความสำคัญต่อเทคโนโลยีดิจิทัลในปัจจุบันนี้ ...
Latency หรือ "ค่าความหน่วงเวลา" หมายถึง ความล่าช้าที่เกิดขึ้นระหว่าง "ช่วงเวลาที่ผู้ใช้งานทำบางสิ่งบางอย่างบนเครือข่าย หรือแอปพลิเคชันบนเว็บ" และ "ช่วงเวลาที่พวกเขาได้รับการตอบกลับ" หรือจะกล่าวในอีกนัยหนึ่งว่า Latency คือ "เวลารวม" หรือ "รอบการเดินทาง" ที่ตัว "แพ็คเก็ตข้อมูลหนึ่ง" ใช้ในการเดินทาง
ค่า Latency นิยมใช้หน่วยเป็นมิลลิวินาที (Millisecond - ms) ปัจจุบันนี้ สามารถออกแบบเครือข่ายให้มีความเร็วสูง ค่าหน่วงเวลาลดลงจนต่ำอยู่ในระดับเพียงไม่กี่มิลลิวินาทีได้แล้ว แต่อย่างไรก็ตาม ไม่ว่ายังไงก็ไม่สามารถทำให้ค่า Latency เหลือ 0 (Zero-Latency) ได้ เนื่องจากวิธีการเดินทางของข้อมูล
เช่น เซิร์ฟเวอร์ (Server) A ที่ตั้งอยู่ในประเทศไทยส่งแพ็คเก็ตไปยังเซิร์ฟเวอร์ B ที่ตั้งในประเทศญี่ปุ่น โดย เซิร์ฟเวอร์ A ส่งข้อมูลออกไปในเวลา "04:38:00.000" ส่วนเซิร์ฟเวอร์ B ได้รับข้อมูลตอนเวลา "04:38:00.145" ส่วนต่างของเวลา หรือ Latency ก็คือ "0.145" วินาที หรือ 145 มิลลิวินาที ในกรณีที่เป็นการสื่อสารแบบไปกลับ ก็ต้องคิดเวลาขากลับด้วย ก็จะกลายเป็น 290 มิลลิวินาที
โดยส่วนใหญ่แล้ว Latency มักถูกวัดระหว่างอุปกรณ์ของผู้ใช้งาน (Client) กับ ศูนย์ข้อมูล (Data Center) การวัดค่านี้ช่วยให้นักพัฒนาทราบว่าเว็บเพจ, เกมออนไลน์ หรือแอปพลิเคชัน จะตอบสนองได้รวดเร็วขนาดไหนสำหรับผู้ใช้งาน
ภาพจาก : https://www.ookla.com/articles/latency-the-next-frontier-of-consumer-experience
คำว่า "Latency" กับ "Ping" สองคำนี้มักมาเคียงคู่กันอยู่เสมอ บางคนเข้าใจว่าเป็นสิ่งเดียวกัน ซึ่งมันก็มีความใกล้เคียงกันอยู่ แต่มันก็แตกต่างกันนะ
เป็นการวัดค่าความล่าช้าระหว่าง "การกระทำของผู้เล่น" และ "การตอบสนองจากเซิร์ฟเวอร์"
หมายถึงระยะเวลารวมที่ข้อมูลใช้ในการเดินทางระหว่าง "ผู้ส่ง" และ "ผู้รับ" โดยรวมถึงความล่าช้าทั้งหมดที่อาจเกิดขึ้นได้ด้วย
ภาพจาก : https://www.alphr.com/how-to-lower-your-ping/
หนึ่งในสาเหตุหลักของค่าความหน่วงเวลา หรือ Latency คือระยะทาง ยิ่งระยะห่างระหว่างอุปกรณ์ที่ส่งข้อมูล (Client) อยู่ห่างจากอุปกรณ์ที่รับข้อมูล (Server) มากเท่าไหร่ ? ค่า Latency ก็จะมากขึ้นเท่านั้น เช่น หากคำขอต้องเดินทางเป็นระยะไกล 160 กิโลเมตร ค่า Latency อาจจะอยู่ 5-10 มิลลิวินาที แต่หากผู้ส่งอยู่ห่างจากเซิร์ฟเวอร์ออกไปสัก 3,540 กิโลเมตร ค่า Latency ก็ขยับไปแตะที่ 40-50 มิลลิวินาที
แม้ว่าการเพิ่มขึ้นของค่า Latency เพียงไม่กี่มิลลิวินาทีอาจดูเหมือนไม่มาก แต่เมื่อรวมกับการสื่อสารไปมาระหว่างอุปกรณ์ไคลเอนต์ และเซิร์ฟเวอร์ เพื่อสร้างการเชื่อมต่อ ขนาดรวมของข้อมูลทั้งหมด และระยะเวลาในการดาวน์โหลด รวมถึงปัญหาเกี่ยวกับอุปกรณ์เครือข่ายที่ข้อมูลต้องผ่านระหว่างการเดินทาง ค่าเหล่านี้จะถูกทบเพิ่มขึ้น
ระยะเวลาที่ใช้สำหรับการตอบสนองนี้จะเรียกว่า "Round Trip Time (RTT)" โดย RTT จะมีค่าเท่ากับสองเท่าของค่า Latency เพราะข้อมูลต้องเดินทางไป และกลับ
เมื่อข้อมูลเดินทางผ่านอินเทอร์เน็ต มันมักต้องเดินทางข้ามไปยังหลายเครือข่าย ไม่ใช่วิ่งตรงแค่เครือข่ายเดียว ยิ่งข้อมูลต้องเดินทางผ่านเครือข่ายมากเท่าไหร่ ? โอกาสเกิดความล่าช้าก็จะเพิ่มขึ้น ตัวอย่างเช่น เมื่อแพ็กเก็ตข้อมูลข้ามระหว่างเครือข่าย พวกมันจะต้องผ่าน "จุดแลกเปลี่ยนอินเทอร์เน็ต" (Internet Exchange Points - IXPs) ในจุดนี้ จะมีการประมวลผล และกำหนดเส้นทางให้แพ็กเก็ตข้อมูล ซึ่งบางครั้งอาจต้องแยกข้อมูลออกเป็นแพ็กเก็ตที่เล็กลง ซึ่งทั้งหมดนี้เพิ่มเวลาหลายมิลลิวินาทีให้กับ RTT
ภาพจาก : https://www.ookla.com/articles/latency-the-next-frontier-of-consumer-experience
การใช้ เครือข่ายส่งเนื้อหา (CDN) เป็นหนึ่งในวิธีหลักที่ช่วยลดค่า Latency ได้อย่างมีประสิทธิภาพ โดย CDN จะจัดเก็บข้อมูลแบบสถิต (Static Content) เอาไว้ในแคช (Cache) และส่งมอบเนื้อหาเหล่านี้ไปยังผู้ใช้ เซิร์ฟเวอร์ของผู้ให้บริการ CDN ถูกตั้งกระจายตัวอยู่ในหลายพื้นที่ทั่วโลก เพื่อให้เนื้อหาถูกจัดเก็บไว้ใกล้กับตำแหน่งของผู้ใช้งาน ทำให้ข้อมูลไม่ต้องเดินทางไกล ซึ่งช่วยลดเวลาการโหลดหน้าเว็บเพจ, เพิ่มความเร็ว รวมถึงประสิทธิภาพของเว็บไซต์ให้ทำงานได้ดีขึ้น
ภาพจาก : https://nitropack.io/blog/post/cdn-beginners-guide
นอกจากเหนือ CDN แล้ว นักพัฒนาเว็บยังสามารถลดจำนวนทรัพยากรที่ขัดขวางการเรนเดอร์ เช่น การโหลด JavaScript เป็นลำดับสุดท้าย, ปรับแต่งรูปภาพบีบอัดไฟล์ให้เล็กลงเพื่อการโหลดที่เร็วขึ้น, การทำ Code Minification เพื่อลดขนาดของไฟล์ JavaScript และ CSS เทคนิคเหล่านี้ก็สามารถลดค่า Latency ให้ต่ำลงได้เช่นกัน
ภาพจาก : https://www.linkedin.com/posts/swapnilpawar0777_javascript-webdev-performance-activity-7168664349140611072-KEz0
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |