Technology

ความลับของ Internet Speed Test ที่อาจไม่เคยรู้มาก่อน

By Arnon Puitrakul - 14 มกราคม 2022 - 2 min read min(s)

ความลับของ Internet Speed Test ที่อาจไม่เคยรู้มาก่อน

เครื่องมือที่หลาย ๆ คนมักจะใช้เยอะมาก ๆ เวลาเราจะทดสอบความเร็วอินเตอร์เน็ต คือ Speed Test ทั้งหลาย แล้วพอเวลาเราทดสอบแล้ว อะ โอเคแหละ เราอาจจะได้ความเร็วใกล้เคียงกับที่เราเลือก Promotion ที่เราสมัครกับ ISP ไว้ แต่ทำไมเวลาเราเข้าเว็บบางเว็บ หรือโหลดไฟล์จากบางเว็บทำไมมันช้าจังเลย แบบนี้ ISP โกงเราหรือเปล่า วันนี้เราจะมาเล่าให้อ่านกันว่าทำไมมันถึงเป็นแบบนั้น

Speed Test คืออะไร ? มันทำอะไร ?

เป้าหมายของ Speed Test ที่เราน่าจะรู้กันคือการหา Bandwidth ที่เรามี หรือก็คือ ความเร็วที่เราสามารถใช้งานได้นั่นเอง ซึ่งปกติแล้ว ถ้าเราอยากรู้ Bandwidth จริง ๆ ง่าย ๆ เลย เราก็ลองโหลดไฟล์ใหญ่ ๆ สักตัวดูดิ โหลดไปสักพักจนความเร็วในการดาวน์โหลดมันนิ่ง น่าจะพอทำให้เราประเมิน Bandwidth ได้ง่าย ๆ

ใช่แล้วฮ่ะ สิ่งที่ Speed Test ทำคือ การ Download และ Upload ไฟล์ไปมา ระหว่าง เครื่องเรา และ Server ปลายทาง ซึ่งปกติแล้วหน่วยที่เราได้ผลออกมาจะเป็น Mbps (Megabit per Second) หรือก็คือ ใน 1 วินาที เราสามารถรับส่งข้อมูลได้กี่ล้านบิต

Bandwidth Unit Conversion

เช่น 20 Mbps ก็คือ ใน 1 วินาที เราสามารถส่งข้อมูลได้ 20 ล้าน Bits ไปเลย อ่านแล้วอาจจะยังนึกภาพยาก งั้นเราแปลงให้เป็น MB/s (Megabyte per Second) แทนละกัน เรารู้ว่า 1 Byte = 8 Bits ดังนั้นวิธีแปลงง่าย ๆ คือ เราก็จับหาร 8 ไปเลย เราก็จะได้ออกมาเป็น 2.5 MB/s นั่นเอง

แล้วมันมีปัญหายังไงละ ?

ดู ๆ แล้ว การใช้วิธีนี้ในการทำ Speed Test เพื่อหา Bandwidth ดูจะเป็นอะไรที่ เออ ก็ Make Sense ของมันนะ แต่เอาเข้าจริงแล้วมันมีความยาก และ ความเข้าใจผิดในตัวมันค่อนข้างมาก เราขอแบ่ง ปัญหาออกเป็น 2 ด้าน คือ ด้านการเชื่อมต่อ และระหว่างเรากับ Server และ ในบ้านของเราเอง เริ่มจาก ระหว่างเรากับ Server กันก่อน

อย่างแรก คือวิธีที่เราใช้ ถ้าเรานึกภาพดี ๆ ถ้าเราเชื่อมต่อไปที่ Server นึง แล้ว Speed Test มัน นั่นอาจจะไม่ใช่ Bandwidth ของเราจริง ๆ แต่เป็น Throughput ระหว่าง เรา และ Server ปลายทางเท่านั้น

Connection between client and server maximum bandwidth calculation

ตัวอย่างเช่น ถ้าเราบอกว่า เราสมัครเน็ตที่ 2 Gbps ไปเลยแรง ๆ แล้วเราไป Speed Test กับ Server ที่มีความเร็วแค่ 1 Gbps คิดว่า เราจะได้เท่าไหร่ คำตอบคือ 1 Gbps เท่านั้น หรืออาจจะน้อยกว่านั้น ที่มันเป็นแบบนั้นเพราะ มันไปคอขวดที่ Speed Test Server ไงละ แต่เพราะเราไม่รู้มาก่อนนิว่า Bandwidth เรามีเท่าไหร่ เลยทำให้เราประเมินไม่ได้ว่า เราควรจะเอาอันไหน แต่เคสนี้ เราบอกเลยว่า ยากแล้วละ เพราะ Speed Test Server หลาย ๆ เจ้า ณ ปัจจุบัน มันสามารถทำได้ถึง 10 Gbps ไปเลย มันเป็นความเร็วทั่ว ๆ ไปสำหรับ Data Centre แล้ว

High server load

เคสต่อไปคือ ความหนาแน่นของ Server เนื่องจาก Server มันก็คือ Server ดังนั้น มันก็มี Limit ของมันอยู่เช่นกัน ถ้าสมมุติว่า ทุกคนรุม Test พร้อม ๆ กัน โดยเฉพาะประเทศไทย เราที่เน็ตเร็วมาก ๆ รุม ๆ กันคนละ 1 Gbps ตัว Speed Test Server ก็หนาว ๆ ร้อน ๆ ได้อยู่เหมือนกันนะ ฮ่า ๆ เพราะต้องเข้าใจว่า Server พวกนี้ มันไม่ได้ออกแบบมาให้เรารุมกันขนาดนั้น เพราะมันไม่ได้เป็นเรื่องที่เราทำกันในทุก ๆ วัน เผลอ ๆ บางคนยังไม่เคย Speed Test ด้วยซ้ำ มันจะมีเคสที่เราเคยเจอ เราไม่แน่ใจว่า มันเกิดอะไรขึ้นเหมือนกัน น่าจะเป็นที่ฝั่ง Speed Test Server มีปัญหาด้านการสื่อสารบางอย่างละมั้ง ทำให้เราทำ Speed Test ไป บ้านเรามี Bandwidth 500 Mbps ทั้งสองฝั่ง แต่ทดสอบออกมาได้แค่ 200 Mbps เท่านั้น แต่พอเปลี่ยน Server มันโดดไป 600 Mbps กว่า ๆ เลย Server นั้นน่าจะมีปัญหาตอนเราใช้งานแหละ ไม่ก็คนรุมอยู่

และสุดท้ายของเรากับ Server คือ ระยะทาง มันมีผลจริง ๆ นะ ถึงเราจะมองว่าโลก Internet คือโลกที่ไร้พรมแดน ดูจะไม่มีระยะทาง แต่เอาเข้าจริง Internet ก็คือเครื่องคอมพิวเตอร์เข้ามาเชื่อมต่อกันจนเป็นเครือข่ายขนาดใหญ่ ทำให้ไม่ว่ายังไง เวลาเราส่งข้อมูลกัน มันก็จะมีระยะห่างระหว่างเครื่องเข้ามาเกี่ยวข้องแน่นอน ขนาดข้อมูลเดินทางได้เร็วสุด ก็ได้แค่ความเร็วแสงเท่านั้น ผ่านพวกสาย Fibre Optics ทำให้การส่งข้อมูลจริง ๆ มันไม่ได้ต่างกับการที่เราเดินทางในโลกแห่งความเป็นจริงเท่าไหร่

มิหน่ำซ้ำ ถ้าเราเริ่มเดินทางระหว่างประเทศเท่านั้นแหละ ความสนุกมันจะมากขึ้นอีก เพราะ การที่เราจะส่งข้อมูลไปไกล ๆ บางทีข้อมูลของเรา ก็อาจจะไปวิ่งอยู่บน Fibre Optics ที่อยู่ใต้ทะเล การเดินสายใต้ทะเลเป็นอะไรที่แพงมาก ๆ ทั้งในการติดตั้ง และ ดูแลรักษา ทำให้ ผู้ให้บริการทั้งหลาย ก็ไม่อยากลงทุน เลยไปเช่า Bandwidth ออกเอาละกันอาจจะซื้ออยู่ที่ 10 Gbps อะไรก็ว่ากันไป ทำให้ลูกค้าของ ISP นั้น ๆ ทั้งหมด ก็ต้องแชร์ความเร็วได้สูงสุดแค่ 10 Gbps เท่านั้น ดังนั้น ถ้าเราทดสอบโดยที่ไม่ดู Server ที่เลือกเลย ก็อาจจะทำให้เราไม่ได้ Maximum Bandwidth ของเราได้เหมือนกัน ดังนั้น เวลาเราทดสอบ เราก็จะต้องเลือก Server ที่ใกล้เราที่สุด

ปัญหาเกิดจากฝั่งเราได้ด้วยเหมือนกันนะ

ที่ผ่านมา เราเล่าถึงปัญหาที่อาจจะเกิดขึ้นได้ เพราะฝั่งของ Speed Test Server แล้วถ้าเราบอกว่า Speed Test Server Perfect ไม่มีปัญหาอะไรเลย หันกลับมามองที่เราละ คิดว่ามันจะเกิดปัญหาอะไรได้บ้าง

NPerf Speed Test Between UTP cable and WiFi
ด้านซ้ายเราเชื่อมต่อผ่าน WiFi และ ด้านขวาเสียบสายเข้ากับ Switch ตรง ๆ เราจะเห็นได้เลยว่า ความเร็วค่อนข้างแตกต่างกันอย่างเห็นได้ชัด ด้านขวาที่เสียบสาย สามารถทำความเร็วได้ดีกว่า ซึ่งอย่างที่เห็นมันได้ประมาณ 500 Mbps ตามที่ตกลงกับ ISP นั่นเอง

อย่างแรกคือ Interface ในการเชื่อมต่อของเรา บ้านทั่ว ๆ ไป เราก็จะเชื่อมต่อจากกล่องของ ISP อยู่ 2 ช่องทางใหญ่ ๆ ด้วยกันคือ การใช้ WiFi และ การใช้สาย ซึ่งมันก็จะมีรายละเอียดยิบย่อย เช่น เราบอกว่า เราทดสอบผ่านอุปกรณ์ที่เสียบสายเลยอะ บางที สายที่เราใช้อาจจะเป็นสายที่มาตรฐานไม่ถึง เช่น UTP CAT5 ทดสอบออกมา ก็จะได้ความเร็วไม่เกิน 100 Mbps ถึงเน็ตเราจะเร็ว 1 Tbps ก็ตาม หรืออันที่รายละเอียดเยอะจริง ๆ คือ WiFi หรือการเชื่อมต่อแบบไร้สายต่าง ๆ ถึงทางทฤษฏี จะบอกว่า มันทำได้เร็วกว่าความเร็วเน็ตเราแต่ถ้าเราทดสอบออกมา มันก็อาจจะได้ไม่ถึงก็ได้ ถามว่าเพราะอะไร มันก็ตอบยาก เช่น ระยะห่างของเรากับ Access Point เป็นต้น

UTP Cable

อีกปัญหาคือ ตัวเครื่องที่ใช้ทดสอบ ต้องยอมรับว่า เครื่องที่เราสามารถทดสอบทำ Speed Test ได้มันเยอะมาก ๆ สเปกที่มีมันก็กว้างมาก ๆ บางครั้งเราอาจจะเจออุปกรณ์ที่บอกว่า รองรับ WiFi 6 เลย ได้ระดับ Gigabit เลย เช็ค Link Speed ก็ได้ 1 Gbps หรือมากกว่านั้นเลย แต่พอเอาเข้าจริงมันได้ไม่ถึง จนไปดู CPU อ้าว 100% ไปตันที่ CPU อีก หรือเครื่องบางเครื่องเสียบสายเลย อ๋าาา ได้ความเร็วสุด ๆ แน่ ๆ ตัดปัญหาเรื่องอากาศไปเลย ใช้สาย CAT6a ยังไงก็ได้ประมาณ 1 Gbps สรุปออกมาได้แค่ 100 Mbps เพราะ NIC เราเป็น Fast Ethernet ที่รับความเร็วได้แค่ 100 Mbps เท่านั้น

เราจะ Speed Test ให้ได้ใกล้เคียงกับผลลัพธ์ที่แท้จริงได้อย่างไร ?

NIC

จะเห็นได้ว่า ปัญหาจริง ๆ แล้วมันลึกซึ้งกว่านั้นมาก มันเกิดจากได้หลาย สาเหตุ ซึ่งหลักการคิดง่าย ๆ คือ Bandwidth ระหว่างคอมพิวเตอร์ 2 เครื่องคือ Bandwidth ที่น้อยที่สุดของเครื่องใดเครื่องหนึ่ง หรือก็คือ อีกคนจะเป็นคอขวดของอีกคนนั่นเอง เพื่อเป็นการ "ลด" ข้อจำกัดตรงนี้ เหล่าคนที่คิดพวก Speed Test ทั้งหลาย เขาเลยทำพวก Automantic Server Selection ขึ้นมา โดยมันจะไปเลือก Server ที่อยู่ใกล้เราที่สุด และ มี Load น้อยที่สุดให้เรา เพื่อที่จะลดปัญหาที่อาจจะเกิดขึ้นได้จาก Server ปลายทางได้อยู่ ส่วนปัญหา Bandwidth เราเกิน อันนี้ส่วนใหญ่แล้ว ทั่ว ๆ ไป เน็ตบ้านเรา ณ วันที่เขียนไม่มีปัญหาเท่าไหร่ เร็วสุดที่เราสมัครได้ ณ วันที่เขียนคือ 2 Gbps ของ AIS เท่านั้น ซึ่ง Server ทั้งหลายในไทย มันรับที่ 10 Gbps หมดแล้ว ถือเป็นความเร็วกระจอก ๆ ระดับ Server แล้ว พวก Server NIC มันไป 100 - 400 Gbps กันแล้ว (แต่ราคาก็เดือดเอาเรื่องอยู่)

Speed Test Interface
ด้านซ้าย เราเชื่อมต่อผ่านสาย และ ด้านขวา เราเชื่อมต่อผ่าน WiFi ซึ่ง เราจะเห็นจาก Icon ว่า มันเป็นละแบบกัน

แต่ปัญหาของฝั่งเราเองนี่แหละ ที่ฝั่งของ Speed Test ยังแก้ให้เราไม่ได้ทั้งหมดคือ ฝั่งเราเองทั้งหมดเลย ทั้งเรื่องของ Interface ในการเชื่อมต่อ และ อุปกรณ์ที่เราใช้ในการเชื่อมต่อด้วย ถึงฝั่งของ Speed Test เขาจะแก้ปัญหาไม่ได้ แต่วิธีในการที่เขาจะเอาข้อมูลไปวิเคราะห์ต่อได้ คือการเก็บข้อมูลส่วนนี้ไปด้วย ถ้าเราเคยเข้าไปในเว็บ Speed Test หลาย ๆ เจ้า เราจะเห็นเลยว่า เราเชื่อมต่อผ่านสาย หรือ WiFi แม้กระทั่งเก็บจนพวกรายละเอียดของเครื่องเราด้วยเลย เพื่อที่เขาจะสามารถเอาข้อมูลมาวิเคราะห์ได้ว่าเอ๊ะ การที่มันได้ความเร็วแค่นี้ มันเป็นเพราะอะไรนะ อะไรแบบนั้นได้อยู่เหมือนกัน

ดังนั้น เพื่อให้เรามั่นใจว่า เราได้ความเร็วสูงที่สุดเท่าที่จะเป็นไปได้ในการทดสอบที่ ISP จ่ายให้เรา เราแนะนำให้ ทำการเสียบสายเพื่อทำการทดสอบเป็นหลัก โดยอาจจะเสียบตรงเข้ากับกล่องของ ISP เลยเพื่อลดจำนวนอุปกรณ์ที่ต่อพ่วงที่อาจจะเป็นเหตุที่ทำให้ความเร็วตกได้ กับตัวเครื่องเอง ถ้าทดสอบออกมาแล้วเรามี Bandwidth สูงกว่า 100 Mbps ให้เราเช็คที่เครื่องของเรา และ สายว่ามันรองรับมากกว่านั้นหรือไม่ กับถ้าเราลอง Speed Test ออกมาแล้วพบว่า ความเร็วมันเหวี่ยง ๆ ไม่นิ่ง เราอาจจะเช็ค CPU Utilisation ของเครื่องว่ามันรันอยู่ 100% หรือไม่ ถ้าใช่ก็คือ คอขวดที่เครื่องเราละ แต่ถ้ารันอยู่ไม่เท่าไหร่ก็น่าจะเป็นที่อื่นละ แค่เท่านี้เลย เราก็น่าจะได้ความเร็วสูงสุดที่เป็นไปได้ละ ถ้าทำขนาดนี้ แล้วเรายังไม่ได้ใกล้เคียง หรือมากกว่า ความเร็วที่เราสมัครกับ ISP ไว้ แจ้งเลย เช่นสมัครไป 500 Mbps แต่ได้มา 390 Mbps อะไรพวกนั้น คือ ไม่โอเคละนะ

ทำไมเข้า หรือโหลดบางเว็บมันช้าจังเลย ?

หลังจากเรา Speed Test แล้วเราได้ความเร็ว ตรง หรือมากกว่าที่เราตกลงกับ ISP แล้ว แต่ทำไม !!! เราโหลดข้อมูลบางอย่าง แล้วทำไมมันช้าจังเลย ทำไมมันไม่ได้เท่ากับความเร็วที่เราตกลงกับ ISP ไว้ละ

อย่างที่เราบอกไปว่า ความเร็วในการเชื่อมต่อ มันคือความเร็วที่ต่ำที่สุดของทั้งสองฝั่ง ทำให้ถึงฝั่งเราจะมี Bandwidth มหาศาล แต่ถ้าอีกฝั่งช้า เราก็จะโหลดข้อมูลได้ช้าเช่นกัน ดังนั้น สิ่งนึงที่ Speed Test บอกเราคือ Throughput ระหว่าง Speed Test Server และเรา แต่ไม่ได้บอก ของเรากับ Server ที่เราจะไปเชื่อมต่อได้

ทำให้ ถ้าเราต้องการที่จะรู้ Throughput ระหว่างเรา กับ Server ปลายทางที่เราต้องการจริง ๆ ก็คือการโหลดไฟล์แหละ ถ้าเขามีให้โหลดอันนั้นเดี๋ยวรู้เลย หรืออย่าง ผู้ให้บริการบางเจ้า เขาก็มี Speed Test ของตัวอย่างอย่าง Fast.com ที่เป็นของ Netflix เอง อันนี้มันจะวิ่งที่ Netflix ที่ใกล้เราที่สุดเลย นั่นแปลว่า มันน่าจะสะท้อน Bandwidth ระหว่างเรากับ Netflix ได้นั่นเอง ซึ่งเราจะบอกว่า ถ้าเราเข้าบางเว็บแล้ว มันไม่ได้เท่ากับที่ ISP เคลมไว้ มันไม่ใช่ความผิดของ ISP ซะทีเดียว เพราะ ISP ก็ไม่อาจจะไปบังคับได้แหละ แต่ว่า มันขึ้นกับว่า ISP เขามี Bandwidth ออกไปข้างนอกเท่าไหร่ด้วย บาง ISP บอกว่า 1 Gbps ราคาถูกมาก แต่เอาเข้าจริง เข้าเว็บทั่ว ๆ ไปที่อยู่ Singapore อย่างช้าเลยอะไรแบบนั้น อันนั้นก็เลิกใช้มันเถอะ !

สรุป

การทำ Speed Test เป็นการวัดความเร็วของ 2 ฝั่ง นั่นทำให้ความเร็วที่เราได้ อาจจะไม่ได้สะท้อนความเร็วในการใช้งานจริง ๆ ก็ได้ มันเป็นปัญหาที่ละเอียดอ่อนมาก ๆ ตัวแปรเยอะไปหมด เพราะมันมีอุปกรณ์ที่เกี่ยวข้องหลายร้อยชิ้นเลยทีเดียว ทำให้การ Speed Test เป็นเพียงการ Diagnostics เบื้องต้นเท่านั้นในการทดสอบ Bandwidth ดังนั้น ถ้าเราทดสอบออกมาแล้วไม่ได้เท่ากับที่เราตกลงไว้กับ ISP ให้เราค่อย ๆ ตรวจสอบทีละขา ว่าขาไหนละที่เป็นคอขวด