Ich schreibe ein vernetztes iOS-Spiel. Beim Senden von Paketen mit GKMatchSendDataReliable
(von denen ich annahm, dass es sich um UDP mit einem eigenen geschriebenen Paketempfangscode handelt) mit 60 Paketen pro Sekunde (also 16 ms zwischen benachbarten Paketen) verschlechtern sich die durchschnittlichen Ping-Zeiten schnell: Ich habe unten 7 GameCenter-Übereinstimmungen geöffnet (nacheinander) ) und schickte einfach eine "Flut" von 100 Paketen (mit einer Rate von 60 Paketen pro Sekunde). Ich habe die durchschnittliche Hin- und Rückfahrt gemessen und dies sind die Ergebnisse:
[ 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
Nach den letzten 2 Tests liegen die Ergebnisse bei ca. 1000 ms.
Es scheint, dass ich gedrosselt werde, höchstwahrscheinlich von meinem ISP. Da es sich um ein iOS-Spiel handelt, werden die Benutzer regelmäßig Verbindungen zu Wohngebieten verwenden.
Wenn ich die Paketsenderate auf 10-mal langsamer geändert habe (also 1 Paket alle 160 ms), dauern die Tests viel länger, aber die Roundtrip-Zeiten bleiben konstant niedrig.
[21:31:27]: Ich habe eine durchschnittliche Hin- und Rückfahrtzeit von 55,289109 ms gesehen, er hat 69,032727 ms gesehen
Es sieht also so aus, als würde die Latenz bei der Verbindung gering gehalten (und nicht von ISPs "bestraft" werden). Ich muss die Rate der von mir gesendeten Pakete reduzieren. Denken Sie daran, dass dies sehr kleine Pakete sind, wie maximal 40 Bytes, aber ich werde immer noch gedrosselt.
Ich suche nach Richtlinien, wie viele UDP-Pakete ich pro Sekunde senden kann, um nicht gedrosselt zu werden! Gibt es irgendwo allgemeine Richtlinien?