เกม Ping เน็ต Ping

เชื่อว่าหลาย ๆ คนที่เล่นเกมออนไลน์อาจจะผ่านประสบการณ์หัวร้อนเพราะ Ping เยอะจนตัวละครที่เราควบคุมมัน Delay เช่น ในเกม FPS ก็คือเรากดเดินไป กว่าตัวละครจะเดินจริงกินเวลาไปจนโดนเก็บซะแล้วอะไรแบบนั้น ซึ่งมันมีความเชื่อหนึ่งที่น่าสนใจมาก ๆ คือ การที่เราจะแก้ปัญหานี้ได้ เราจะต้องเพิ่มความเร็วอินเทอร์เน็ตสิ จ่ายฉ่ำ ๆ เดี๋ยวมันจะดีขึ้นเอง วันนี้เราจะมาไขปริศนานี้กันว่ามันเป็นเรื่องจริงหรือไม่

Ping คืออะไร ?

ก่อนอื่น เราต้องบอกก่อนว่า Ping จริง ๆ เป็นเพียงชื่อโปรแกรมเท่านั้น มันเป็นโปรแกรมตัวหนึ่งที่ใช้ในการวัดสิ่งที่เรียกว่า Latency ระหว่างจุดสองจุดเท่านั้น คาดว่าเหตุที่หลาย ๆ คนมักเรียก Ping แทนคำว่า Latency น่าจะเกิดจากคำสั่งที่ใช้ในการเรียกขอ Latency เราจะใช้คำสั่ง Ping แล้วตามด้วยที่อยู่ของเครื่องปลายทาง ก็จะได้ค่าออกมามีหน่วยเป็น ms (Millisecond) โดยในระบบปฏิบัติการส่วนใหญ่จะมีโปรแกรม Ping ติดตั้งอยู่ โดยสามารถลองเปิด Command Line ในเครื่องของเราแล้วพิมพ์คำสั่งลองเล่นได้

โดยที่ค่าเวลาในหน่วยนี้ มันคือเวลาที่เครื่องต้นทางส่งหาปลายทาง และปลายทางตอบกลับส่งมาที่ต้นทางอีกครั้ง เราเรียกมันว่า Round Trip Time (RTT) ระหว่างเครื่องต้นทางกับปลายทาง

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

อะไรคือสิ่งที่ทำให้ Latency มากหรือน้อย ?

การจะตอบคำถามนี้ได้ จะต้องกลับไปที่วิธีการที่ระบบใช้จับเวลา ตัวละครในเรื่องนี้ เรามีเครื่องต้นทาง, เครื่องปลายทาง และอีกตัวละครที่สำคัญคือ การเชื่อมต่อระหว่างเครื่องสองเครื่อง

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

เมื่อข้อมูลถึงเครื่องปลายทางแล้ว มันยังไม่สามารถตอบได้ทันที เพราะยังไม่รู้เลยว่าใครส่งอะไรมา เครื่องจะต้องเปิดอ่านแล้วถึงจะตอบกลับไปได้ เวลาตรงนี้เราเรียกว่า Processing Time ซึ่งข้อมูลที่ใช้ในการทดสอบ Latency เรียกว่า ICMP (Internet Control Message Protocol) ถูกออกแบบมาเพื่อ Processing Time อยู่แล้ว แต่ถ้า Server ปลายทางนั้นมี Load หนัก ๆ อยู่ จนทำให้ไม่สามารถ Process ข้อมูลที่เข้ามาได้ทั้งหมดจนต้องต่อคิวกันเข้า ก็ย่อมทำให้ Processing Time เพิ่มขึ้นได้เช่นเดียวกัน จากที่จะเห็นได้ในตอนที่เล่นเกมที่อาจจะเพิ่งเปิดตัวใหม่ อย่าง Helldrivers 2 ที่จะเห็นได้จากผู้เล่นจำนวนมากรายงานปัญหาว่า Server ตอบสนองกลับมาช้ามาก ๆ เป็นบางเวลา เกิดจากปัญหาคนเข้าเล่นเยอะจน Server ของผู้ผลิตเกมมันรับไม่ไหวนั่นเอง

การเพิ่มความเร็วอินเทอร์เน็ตทำให้ Latency ลดลงได้หรือไม่ ?

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

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

เราจะลด Latency ได้อย่างไร ?

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

แต่ถ้ามันเกิดจากฝั่งเราเอง เช่น ท่อของเราเล็กเกินไป บางทีการขยายขนาดท่อนั้นอาจจะไม่ได้ทำให้ปัญหานี้หมดไป ปัญหาลักษณะนี้เราจะพบได้กับระบบเครือข่ายที่มีบางเครื่องดาวน์โหลดและอัปโหลดข้อมูลจำนวนมากอยู่ตลอดเวลา อาจจะกำลังดาวน์โหลด Linux ISO อยู่ก็มิอาจทราบได้ ดังนั้น การยิ่งเพิ่มความเร็วขยายท่อไปเรื่อย ๆ คนที่ดาวน์โหลดหรืออัปโหลด Linux ISO อยู่ก็จะได้ความเร็วเพิ่มขึ้น แต่เกมก็ยังต้องรอออกอยู่เหมือนเดิม

วิธีการแก้ปัญหาลักษณะนี้คือการ Block ไม่ให้โหลด Linux ISO ไปเลยสิ ใจเย็นนะ วิธีการนี้ก็ดุดันไม่เกรงใจใครเกินไปเนอะ สิงดาวน์โหลดไม่ถูกใจสิ่งนี้แน่ ๆ โดยวิธีการที่ดีไม่แพ้กันและไม่ต้องตบตีกันคือ การใช้สิ่งที่เรียกว่า QoS (Quality of Service) มันเป็น Service ตัวหนึ่งบน Router ของเราที่สามารถหาได้ในหน้าตั้งค่าของ Router ที่ใช้งาน มันทำหน้าที่จัดการคิวในการออกของข้อมูล สามารถตั้งให้ข้อมูลจากเกม ไม่ว่ามันจะมาหลังหรือก่อน เราจะให้ข้อมูลส่วนนี้ออกไปก่อนเป็นอันดับแรกเสมอ ทำให้สามารถลด Latency ที่เกิดจากการต่อคิวรอออกไปที่อินเทอร์เน็ตผ่าน Router ได้

วิธีการ QoS ที่พูดถึงไปนั้นอาจจะตั้งค่าได้ยาก จนทำให้ผู้ให้บริการอินเทอร์เน็ตหัวใส ปล่อย Package Gaming ออกมา โดยมีการอ้างสรรพคุณว่าทำให้ Latency ในการเล่นเกมบางเกมนั้นดีมากขึ้น ซึ่งเอาเข้าจริงวิธีการที่ผู้ให้บริการทำคือ การทำ QoS หรือวิธีการที่ใกล้เคียงกันเลย บางค่ายบอกว่ามีเน็ตเข้ามา 2 เส้น มันก็คือการที่เขาต่อท่อเข้ามาท่อเดียวแหละ แต่ใช้ Splitter แยกกันซะเลย ให้ท่อปกติมีขนาดประมาณหนึ่ง และมีการสำรองท่อสำหรับส่งข้อมูลเกมไว้อีกท่อ แล้วใช้ QoS ในการแยกบอกว่าถ้าข้อมูลนี้เป็นของเกมก็ให้วิ่งออกท่อเกม ทีนี้ก็จะช่วยลด Latency ได้ เพราะเกมออกผ่านท่อที่แออัดน้อยกว่า

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

สรุป

ปัญหา Latency เกิดได้จากหลายสาเหตุด้วยกัน อาจจะเป็นเพราะเครื่องเราช้าเอง หรืออาจจะเป็นที่อินเทอร์เน็ตที่เราใช้เชื่อมต่อไปหา Server ของเกม หรือกระทั่ง Server ของเกมเอง การที่จะรู้ว่ามันเกิดจากอะไร ต้องมีการมานั่งงมหาสาเหตุ ซึ่งในโลกคอมพิวเตอร์ก็จะมีเครื่องมือที่ใช้ในการตรวจสอบได้ เช่น Ping, Traceroute และ Touch เป็นต้น หรือกระทั่งถ้าเราไม่รู้จักเครื่องมือเหล่านี้ ก็สามารถที่จะใช้วิธีการทดลองเข้าหลาย ๆ Server ค่อย ๆ ตัดตัวละครออกไปเรื่อย ๆ ได้เช่นเดียวกัน

AUTHOR

I believe in technology and sharing, as they enable us with a better world via several clicks. Especially, programming is one of the most powerful tools which inspire people to make their dreams come true. I want to share, publicise and innovate new technology so as to change our world in the way we could hardly imagine.