ฉันกำลังเขียนเกม iOS บนเครือข่าย เมื่อส่งแพ็คเก็ตที่มีGKMatchSendDataReliable
(ซึ่งฉันสันนิษฐานว่าเป็น UDP พร้อมรหัสรับแพ็คเก็ตของตัวเองเขียน) ที่ 60 แพ็คเก็ตต่อวินาที (ดังนั้น 16 ms ระหว่างแพ็คเก็ตที่อยู่ติดกัน) เวลา ping เฉลี่ยแย่ลงอย่างรวดเร็ว: ) และเพียงแค่ส่ง "ท่วม" จาก 100 แพ็คเก็ต (ในอัตรา 60 แพ็คเก็ตต่อวินาที) ฉันวัดเวลาไปกลับโดยเฉลี่ยและนี่คือผลลัพธ์:
[ 21:16:39 ]: I saw an average roundtrip time of 52.342787 ms, he saw 54.496590 ms
[ 21:16:34 ]: I saw an average roundtrip time of 62.631942 ms, he saw 61.991655 ms
[ 21:16:45 ]: I saw an average roundtrip time of 88.394380 ms, he saw 83.619123 ms
[ 21:16:51 ]: I saw an average roundtrip time of 179.053118 ms, he saw 156.869141 ms
[ 21:16:57 ]: I saw an average roundtrip time of 75.025076 ms, he saw 75.419723 ms
[ 21:17:23 ]: I saw an average roundtrip time of 8832.082488 ms, he saw 7616.877558 ms
[ 21:19:33 ]: I saw an average roundtrip time of 25088.962344 ms, he saw 16833.064914 ms
หลังจากการทดสอบ 2 ครั้งล่าสุดผลลัพธ์จะอยู่ที่ประมาณ 1,000 ms
ดูเหมือนว่าฉันกำลังควบคุมปริมาณ ISP ของฉันน่าจะเป็นไปได้มากที่สุด เพราะนี่เป็นเกม iOS ผู้คนจะใช้การเชื่อมต่อที่อยู่อาศัยปกติ
เมื่อฉันเปลี่ยนอัตราการส่งแพ็คเก็ตเป็นช้าลง 10 เท่า (ดังนั้น 1 แพ็คเก็ตทุก 160 มิลลิวินาที) การทดสอบใช้เวลานานกว่ามาก แต่เวลาไปกลับยังคงต่ำอย่างต่อเนื่อง
[21:31:27]: ฉันเห็นเวลาไปกลับโดยเฉลี่ย 55.289109 ms เขาเห็น 69.032727 ms
ดังนั้นจึงดูเหมือนว่าจะมีเวลาแฝงต่ำในการเชื่อมต่อ (และไม่ถูก "ลงโทษ" โดย ISP) ฉันต้องลดอัตราแพ็กเก็ตที่ฉันส่ง โปรดทราบว่านี่เป็นแพ็คเก็ตที่มีขนาดเล็กมากเช่นสูงสุด 40 ไบต์ แต่ฉันยังคงถูกควบคุมปริมาณ
ฉันกำลังมองหาแนวทางเกี่ยวกับจำนวนแพ็กเก็ต UDP ที่ฉันสามารถส่งได้ต่อวินาทีเพื่อหลีกเลี่ยงการถูก จำกัด ปริมาณ! มีแนวทางทั่วไปใด ๆ บ้างไหม?