คู่มือเกมแลค › L4 เส้นทางอินเทอร์เน็ต
เส้นทางวิ่งอ้อม Suboptimal routing
ID สาเหตุ isp-routing · ผู้รับผิดชอบหลัก อินฟราเครือข่าย (ทีมอินฟรา) · ร่วมกับ ภายนอก (ภายนอก)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
เพราะสัญญาการเชื่อมต่อระหว่าง ISP แม้เซิร์ฟเวอร์จะอยู่ใกล้ แพ็กเก็ตก็ยังวิ่งอ้อมไปทางไกล
ทำไม ISP ของเรากับ ISP ฝั่งเซิร์ฟเวอร์ไม่ได้เชื่อมต่อกันโดยตรง → ผลคือ วิ่งผ่านประเทศอื่นหรือเมืองอื่น ระยะทางและจำนวนอุปกรณ์ที่ผ่านจึงเพิ่มขึ้น → บนหน้าจอ เฉพาะผู้เล่นของ ISP บางค่ายที่ปิงสูงผิดปกติ
อาการ อินพุตดีเลย์
ปัจจัย ความหน่วง
ใครเจอ บางพื้นที่/บาง ISP
เกิดเมื่อไร ตลอดเวลา
ผู้รับผิดชอบ ผู้รับผิดชอบหลัก อินฟราเครือข่าย (ทีมอินฟรา) · ร่วมกับ ภายนอก (ภายนอก)
งานฝั่งทีมอินฟรา เชื่อมต่อกับ ISP หลายค่าย (multihoming), มอนิเตอร์ปิงแยกตาม ISP เพื่อหาค่ายที่วิ่งอ้อม, เจรจาปรับเส้นทางกับ ISP
งานฝั่งภายนอก ร้องขอให้ ISP ค่ายนั้นปรับเส้นทาง
ตัวเลขที่ควรรู้ แม้อยู่ในประเทศเดียวกัน ปิงก็อาจต่างกันสองสามเท่าตามเส้นทาง
บนกราฟ สูงตลอดตั้งแต่แรก · RTT (แยกตาม ISP/ASN)
จุดที่ต้องดู เทียบ RTT แยกตาม ISP (ASN) แล้วดูว่าเส้นทางผ่านประเทศหรือเมืองใด จาก probe ของ RIPE Atlas ใน ISP ที่ช้า หรือจาก traceroute หรือ mtr ที่ได้จากผู้เล่น วัด IPv4 และ IPv6 แยกกัน (mtr -4, -6) สัญญาณว่าใช่ ภูมิภาคเดียวกันแต่ ISP บางค่ายสูงตลอด และเส้นทางมีช่วงที่ผ่านประเทศอื่นหรือเมืองที่อยู่ไกล หรือสูงเฉพาะ IP เวอร์ชันเดียว (IPv4 หรือ IPv6) สัญญาณว่าไม่ใช่ ถ้าทุก ISP สูงพอ ๆ กัน น่าจะเป็น “ความหน่วงในการแพร่สัญญาณ (ระยะทางจริง)” ถ้าสูงเฉพาะหัวค่ำ น่าจะเป็น “จุด peering แออัดช่วงพีค” วิธีตรวจ ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
รายละเอียดเพิ่มเติม IPv4 และ IPv6 กำหนดเส้นทางแยกกัน แม้เป็นเซิร์ฟเวอร์เดียวกันก็อาจมีฝั่งเดียวที่อ้อมไกลจนช้า (การวัดของ APNIC ปี 2016: ภายใน ISP เดียวกันพบกลุ่มผู้ใช้ที่ IPv6 ช้ากว่า IPv4 อยู่ 15 ms, 25 ms และ 75 ms แยกกันเป็นกลุ่ม) แอปที่ใช้วิธี Happy Eyeballs (RFC 8305) ซึ่งเลือกใช้ฝั่งที่เชื่อมต่อได้ก่อนระหว่าง IPv6 กับ IPv4 จะลอง IPv6 ก่อน และถ้า IPv6 เชื่อมต่อได้ภายในค่าแนะนำ 250 ms ก็จะไม่ลอง IPv4 ดังนั้นแม้ฝั่ง IPv6 จะช้ากว่านิดหน่อย ก็มักจะเชื่อมต่อผ่านเส้นทางนั้น ถ้าปิงสูงเฉพาะบาง ISP ให้ลองวัด IPv4 และ IPv6 แยกกัน
กรณีจริง Riot Games 2015: ทราฟฟิก League of Legends ที่วิ่งอ้อมไปไกล และ Riot Direct
แหล่งอ้างอิง Quantifying the Causes of Path Inflation (SIGCOMM 2003) ACM วิเคราะห์ ISP 65 ราย: นโยบาย peering ระหว่าง ISP และ routing ระหว่างโดเมน (inter-domain) ทำให้เส้นทางยาวขึ้นมาก The Internet at the Speed of Light (HotNets 2014) ACM เส้นทางจริงที่ผ่านเราเตอร์ยาวกว่าไฟเบอร์ที่ลากเป็นเส้นตรงประมาณ 1.5 เท่า (ค่ามัธยฐาน) และมีกรณีที่แพ็กเก็ตระหว่างสองจุดที่อยู่ใกล้กันวิ่งอ้อมไปอีกฟากโลก (hairpinning) Probe Selection (RIPE Atlas REST API) RIPE NCC เลือก probe ของ RIPE Atlas ตามประเทศ, ภูมิภาค, ASN หรือช่วง IP แล้วรัน ping และ traceroute mtr(8) manual page source mtr ใช้ -4 หรือ -6 เพื่อวัดเส้นทางด้วย IPv4 หรือ IPv6 อย่างเดียว RFC 8305: Happy Eyeballs Version 2: Better Connectivity Using Concurrency IETF IP หรือเวอร์ชันของ IP (IPv4/IPv6) อาจถูกบล็อก เสีย หรือช้า ขึ้นอยู่กับเครือข่าย, ลอง IPv6 ก่อน แล้วรอค่าแนะนำ 250 ms ก่อนเริ่มเชื่อมต่อครั้งถัดไป IPv6 Performance – Revisited APNIC เทียบเวลาไปกลับของ IPv6 กับ IPv4 จากผู้ใช้ dual-stack คนเดียวกัน: บางเครือข่ายปลายทาง (access network) จัดการแพ็กเก็ต IPv6 ต่างไปโดยสิ้นเชิง จึงพบกลุ่มที่ IPv6 ช้ากว่า 15 ms, 25 ms และ 75 ms ภายใน ISP เดียวกัน
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L4 เส้นทางอินเทอร์เน็ต
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (อินพุตดีเลย์)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง