คู่มือเกมแลค › L4 เส้นทางอินเทอร์เน็ต
การจำกัด UDP และตรวจแพ็กเก็ตระดับประเทศหรือ ISP UDP blocking, throttling and inspection by networks
ID สาเหตุ isp-udp-block · ผู้รับผิดชอบหลัก ภายนอก (ภายนอก) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม), พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม), อินฟราเครือข่าย (ทีมอินฟรา)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
บางเครือข่ายบล็อก IP หรือพอร์ต UDP บางตัว หรือจำกัดความเร็ว UDP และอุปกรณ์ตรวจแพ็กเก็ตจะกรองโปรโตคอลที่ไม่รู้จักทิ้ง เกมที่สื่อสารด้วย UDP จึงเชื่อมต่อในเครือข่ายนั้นไม่ได้หรือหลุดบ่อย
ทำไม เชื่อมต่อจากเครือข่าย ISP บางรายที่จำกัดความเร็ว UDP หรือจากเครือข่ายที่มีอุปกรณ์ตรวจทราฟฟิก (เพื่อเซ็นเซอร์) ระดับประเทศหรือ ISP → ผลคือ บล็อก IP หรือพอร์ต UDP บางตัว, จำกัดความเร็ว UDP ในช่วงที่แออัด, กรองพอร์ตหรือโปรโตคอลที่ไม่อยู่ในรายการอนุญาตทิ้ง หรือปล่อยผ่านแค่ไม่กี่แพ็กเก็ตแรกแล้วบล็อก → บนหน้าจอ เฉพาะผู้เล่นในบางประเทศหรือบาง ISP ที่เข้าเกมไม่ได้หรือโหลดไม่จบ, เข้าได้แล้วหลุดในไม่ช้า, วาร์ปเพราะแพ็กเก็ตหายในช่วงที่แออัด
- อาการ
- เข้าเกมไม่ได้/โหลดไม่จบ, หลุด, วาร์ป
- ปัจจัย
- แพ็กเก็ตหาย
- ใครเจอ
- บางพื้นที่/บาง ISP
- เกิดเมื่อไร
- หลังล็อกอิน/หลังปิดปรับปรุง, ตลอดเวลา, ช่วงพีคหัวค่ำ
- ผู้รับผิดชอบ
- ผู้รับผิดชอบหลัก ภายนอก (ภายนอก) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม), พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม), อินฟราเครือข่าย (ทีมอินฟรา)
- งานฝั่งทีมพัฒนาเกม
- ไคลเอนต์: ถ้า UDP เชื่อมต่อไม่ได้ภายในไม่กี่วินาที ให้สลับไปเส้นทางสำรอง TCP/TLS 443 อัตโนมัติ, ตรวจจับกรณีที่เชื่อมต่อได้ตอนแรกแล้วหลุดในไม่ช้าด้วย แล้วลองใหม่ผ่านเส้นทางสำรอง, บันทึกลง log ว่าเชื่อมต่อผ่านเส้นทางไหน เซิร์ฟเวอร์: รับโปรโตคอลเกมเดียวกันผ่าน TCP 443 (TLS) ด้วย, ปรับไทม์เอาต์เพราะเส้นทางสำรองอาจมีความหน่วงเพิ่มขึ้น
- งานฝั่งทีมอินฟรา
- ก่อนขยายบริการไปประเทศใหม่ ให้วัดในเครือข่าย ISP ท้องถิ่นว่า UDP ไปถึงได้หรือไม่และแพ็กเก็ตหายช่วงพีคเท่าไร, ตั้ง relay หรือเกตเวย์ที่รับเส้นทางสำรอง TCP 443 ไว้ใกล้ประเทศนั้น, เฝ้าดูอัตราการเชื่อมต่อสำเร็จของ UDP และ TCP แยกตามประเทศและ ASN, ถ้ายืนยันได้ว่า ISP ใดจำกัดความเร็ว UDP ให้รวบรวมข้อมูลแล้ว escalate
- งานฝั่งภายนอก
- สอบถาม ISP หรือหน่วยงานนั้นถึงเกณฑ์การจำกัด UDP และขอให้ผ่อนปรน, แนะนำผู้เล่นให้ลองเชื่อมต่อจากเครือข่ายอื่นเพื่อเปรียบเทียบ
- ตัวเลขที่ควรรู้
- ตามการวัดที่เอกสาร IETF อ้างถึง 3–5% ของเครือข่ายบล็อก UDP ทั้งหมด เมื่อ Google ดูผลการใช้ QUIC (ที่ทำงานบน UDP) ในปี 2016 พบว่าไคลเอนต์ 4.4% ใช้ไม่ได้เพราะ UDP หรือ QUIC ถูกบล็อก หรือ path MTU เล็กเกินไป ส่วนใหญ่อยู่หลังไฟร์วอลล์ขององค์กร และไม่พบกรณีที่ ISP บล็อกทั้งเครือข่าย อีก 0.3% อยู่ในเครือข่ายที่แพ็กเก็ตหายเพิ่มขึ้นมากในช่วงพีค ซึ่งดูเหมือนจำกัดความเร็ว UDP และหลังจากขอให้ ISP แก้ไข สัดส่วนนี้ก็ลดลงจาก 1% ในปี 2015
- บนกราฟ
- สูงเฉพาะบางกลุ่ม · อัตราการเชื่อมต่อ UDP สำเร็จ (แยกตามประเทศ/ASN)
- จุดที่ต้องดู
- ดูอัตราการเชื่อมต่อสำเร็จของ UDP และของเส้นทางสำรอง TCP 443 แยกกันตามประเทศและ ASN ทดสอบเชื่อมต่อไปที่พอร์ต UDP ของเกมและ TCP 443 แยกกันจาก VM บนคลาวด์ในเครือข่าย ISP นั้นหรือจาก PC ของผู้เล่น แล้วใช้ mtr -u -P (พอร์ตเกม) และ mtr -T -P 443 เทียบว่าการตอบกลับหายไปตั้งแต่ช่วงไหน
- สัญญาณว่าใช่
- เฉพาะบางประเทศหรือบาง ASN ที่ UDP ไม่ได้รับการตอบกลับครั้งแรก หรือหลุดภายในไม่กี่วินาที ขณะที่ TCP 443 จากที่เดียวกันปกติ ถ้าเป็นการจำกัดความเร็ว แพ็กเก็ตหายของ UDP จะเพิ่มชัดเจนเฉพาะช่วงพีค และ TCP ได้รับผลกระทบน้อยกว่า
- สัญญาณว่าไม่ใช่
- ถ้า TCP ล้มเหลวด้วย น่าจะเป็นเส้นทางขัดข้อง, IP ถูกบล็อก หรือ “DNS ขัดข้อง/ช้า” ถ้าเป็นเหมือนกันทุกประเทศ น่าจะเป็นการตั้งค่าเซิร์ฟเวอร์หรือไฟร์วอลล์ของเรา ถ้าแพ็กเก็ตหายเฉพาะตอนที่ส่งข้อมูลปริมาณมากในชั่วขณะ ไม่ว่าจะเป็น UDP หรือ TCP น่าจะเป็น “policer ทิ้งส่วนที่เกิน”
- วิธีตรวจ
- ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
- รายละเอียดเพิ่มเติม
- เอกสารสำรวจของ IRTF ระบุว่าอุปกรณ์ตรวจแพ็กเก็ตอาจเลือกบล็อก flow ของ UDP ตาม IP, พอร์ต และโปรโตคอล หรือบล็อกทุกอย่างที่ไม่ใช่โปรโตคอลที่อนุญาต (allowlist) ถ้าอุปกรณ์ตัดสินจากฟิลด์บางส่วนของแพ็กเก็ตเท่านั้น แค่เปลี่ยนโปรโตคอลเล็กน้อยก็อาจถูกบล็อกได้ ในช่วงแรกของ QUIC มีไฟร์วอลล์ตัวหนึ่งที่หลังจาก 1 บิตในเฮดเดอร์เปลี่ยน ก็ปล่อยให้ไม่กี่แพ็กเก็ตแรกผ่านแล้วบล็อกแพ็กเก็ตหลังจากนั้น ทำให้ลอจิกที่ให้ไคลเอนต์สลับไปเชื่อมต่อด้วย TCP ทำงานไม่ได้ ปัญหานี้อาจโผล่มาตอนขยายบริการไปประเทศใหม่ ในรูปของรายงานว่า “ในเกาหลีปกติดี แต่ ISP บางรายในประเทศนั้นเข้าเกมไม่ได้” ถ้าถูกบล็อกเฉพาะในเครือข่ายของสถานที่หนึ่ง เช่น ร้านกาแฟหรือบริษัท ให้ดูสาเหตุ “ข้อจำกัดของ Wi-Fi สาธารณะและเครือข่ายบริษัท”
แหล่งอ้างอิง
- RFC 9308: Applicability of the QUIC Transport Protocol IETF
ตามงานวิจัยที่วัดจริง 3–5% ของเครือข่ายบล็อก UDP ทั้งหมด แอปที่ใช้ UDP จึงต้องยอมรับว่าอาจเชื่อมต่อไม่สำเร็จ หรือมีเส้นทางสำรองผ่าน TCP (TLS), ไฟร์วอลล์อาจบล็อกพอร์ตที่ไม่ได้ผูกกับบริการที่ลงทะเบียนไว้ - The QUIC Transport Protocol: Design and Internet-Scale Deployment (SIGCOMM 2017) ACM
ปี 2016: ไคลเอนต์ 4.4% ใช้ QUIC (UDP) ไม่ได้ (UDP หรือ QUIC ถูกบล็อก หรือ path MTU เล็ก ส่วนใหญ่อยู่หลังไฟร์วอลล์ขององค์กร และไม่พบ ISP ที่บล็อกทั้งเครือข่าย), 0.3% อยู่ในเครือข่ายที่ดูเหมือนจำกัดความเร็ว UDP (แพ็กเก็ตหายเพิ่มในช่วงพีค หลังขอให้ ISP แก้ไขก็ลดลงจาก 1% ในปี 2015), กรณีไฟร์วอลล์ที่หลัง 1 บิตในเฮดเดอร์เปลี่ยน ก็ปล่อยผ่านแค่ไม่กี่แพ็กเก็ตแรกแล้วบล็อกที่เหลือ ทำให้ลอจิกสำรองไปใช้ TCP ใช้การไม่ได้ - RFC 9505: A Survey of Worldwide Censorship Techniques IRTF
อุปกรณ์ตรวจในเครือข่ายอาจเลือกบล็อก flow ของ TCP หรือ UDP ตาม IP, พอร์ต และโปรโตคอล (พบการบล็อก endpoint UDP ของ QUIC), วิธีบล็อกทุกอย่างที่ไม่ใช่โปรโตคอลที่อนุญาตทำให้บล็อกเกินจำเป็น และยังมีวิธีจำกัดความเร็วของทราฟฟิกบางประเภทด้วย - mtr(8) manual page source mtr
ใช้ -u ส่ง UDP, -T ส่ง TCP SYN และ -P กำหนดพอร์ตปลายทาง เพื่อวัดเส้นทางด้วยโปรโตคอลและพอร์ตเดียวกับเกม
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L4 เส้นทางอินเทอร์เน็ต
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (เข้าเกมไม่ได้/โหลดไม่จบ)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง