Je me souviens que l'été dernier, avec quelques amis, nous avons ouvert une partie de jeu de mains noires, nous avons poussé vers le haut, et soudain le délai est monté en flèche jusqu'à 460 ms, la carte de l'écran est entrée dans le PPT, et la bataille de groupe s'est directement effondrée. L'ADC de l'équipe est tombé en colère sur son téléphone portable, j'ai aussi un estomac de feu - ce réseau brisé, tout simplement plus que des cochons de coéquipiers de fosse. Plus tard, j'ai découvert qu'il ne s'agissait pas du tout d'un problème de WiFi, mais que le taux de perte de paquets du réseau mobile était trop élevé, et que le serveur était en train de se frotter au DDoS, ce qui a provoqué l'effondrement de la liaison. À partir de ce moment, j'étais déterminé à trouver un moyen de résoudre ce problème.
Le retard du jeu de main et la perte de paquets de cette merde, pour dire les choses crûment, sont les faiblesses inhérentes au réseau mobile plus les attaques externes pour semer le trouble. Le réseau mobile n'est pas aussi stable que le réseau fixe, la commutation des stations de base, l'atténuation du signal, le contrôle de la congestion, n'importe lequel des liens peut vous faire subir un retard de type loterie. J'ai mesuré les données dans de nombreuses zones, le délai moyen dans l'environnement 4G fluctue entre 80 ms et 200 ms, la 5G est meilleure, mais j'ai rencontré beaucoup de gens sur place, comme d'habitude, qui s'écrasent. Plus dégoûtant est la perte de paquets, le mécanisme de retransmission TCP dans le jeu est trop tard pour sauver le jeu, UDP est rapide, mais pas de somme de contrôle, la perte de paquets est vraiment perdue, le rôle du changement instantané, les compétences sont vides est un événement commun.
Le coût des attaques DDoS est faible au point d'être ridicule, il suffit de louer un botnet pour atteindre quelques centaines de Gbps de trafic, ce que la salle ordinaire ne peut tout simplement pas supporter. L'année dernière, un grand jeu d'usine a été martelé, parce qu'il n'avait pas une défense élevée, le taux d'abandon des joueurs est monté en flèche jusqu'à 30%, et la réputation du jeu s'est retrouvée directement dans la rue. Ne croyez pas à ces absurdités du genre “une seule pièce difficile à transporter”, j'ai vu trop de cas, le dernier est le joueur grondé pour l'opération de l'arrière du pot.
En fin de compte, la racine du problème se situe au niveau de la liaison réseau et de la protection de la sécurité. L'adaptation du réseau mobile est médiocre, l'optimisation côté serveur est insuffisante, les mesures de sécurité sont pratiquement inexistantes - ces trois axes sont coupés, et le jeu du bétail doit également s'agenouiller.
Le programme d'accélération CDN de haute défense est actuellement la solution la plus fiable, le cœur des deux mots : dispersion plus hard shoulder. Grâce aux nœuds mondiaux, le trafic est partagé, ce qui permet aux joueurs d'avoir un accès proche et de réduire naturellement les temps de latence. En même temps, la capacité intégrée de nettoyage DDoS, le trafic malveillant n'a pas touché le serveur sur le nœud de bord a été étranglé. Mon propre projet de test, le délai peut être pressé à 40 ms ou moins, le taux de perte de paquets de 15% à 0,5% en dessous, l'effet d'un lot de féroces.
L'adaptation au réseau mobile est la clé du succès. Les CDN ordinaires ne s'intéressent qu'à l'accélération, mais le réseau mobile fluctue beaucoup, et nous devons donc ajuster le routage de manière dynamique. Par exemple, en utilisant BGP Anycast pour diriger les demandes des utilisateurs vers le nœud optimal, ou à travers le protocole d'optimisation TCP pour réduire la retransmission. Voici un exemple de code, utilisant Nginx pour configurer une politique de routage dynamique :
Cette configuration peut basculer automatiquement en fonction de la charge du nœud et de l'état du réseau afin d'éviter un crash d'un seul nœud. Je penche pour CDN5 dans les paramètres de pondération parce qu'ils ont l'optimisation de réseau mobile la plus impitoyable, avec des nœuds couvrant les villes de niveau 3 et 4, et même les zones montagneuses avec des poches de signal.
Au niveau de la sécurité, un CDN de haute défense doit être capable de résister à 7 couches d'attaques. Par exemple, les attaques CC touchent spécifiquement l'interface de connexion au jeu, cela peut sembler peu de trafic, mais le CPU peut vous épuiser. J'ai essayé leurs règles WAF sur CDN07, qui ont directement bloqué la fréquence des requêtes anormales :
Cet ensemble de règles m'a permis de bloquer pas moins de dix attaques, et la solution de 08Host est similaire, mais un peu moins souple en termes de personnalisation, et il faut écrire davantage de scripts pour l'étayer.
Les comparaisons de données sont les plus révélatrices. J'ai fait appel à trois fournisseurs de services - CDN5, CDN07, 08Host - pour effectuer des tests de pression, en simulant des scénarios de forte concurrence sur des réseaux mobiles. Le résultat est que CDN5 a un délai médian de 38 ms, et le taux de réussite du nettoyage est de 99,9% ; CDN07 a un délai de 42 ms, mais la capacité anti-D est légèrement plus faible, et le taux de nettoyage est de 98,5% ; 08Host est bon marché, et le délai fluctue beaucoup, oscillant entre 50 ms et 100 ms, ce qui convient aux petites équipes avec des budgets serrés. Mais pour être honnête, cette année, économiser n'importe quoi ne peut pas économiser le budget réseau, les joueurs ne peuvent pas avoir la patience d'attendre que vous optimisiez.
Lors de l'élaboration de la mise en œuvre, vous devez également prêter attention à l'adaptation côté client. La taille des paquets étant sensible, les nœuds CDN doivent prendre en charge la compression et l'optimisation du protocole. Par exemple, utiliser QUIC au lieu de TCP pour réduire le délai de la poignée de main. J'ai mesuré les performances de QUIC dans le réseau faible, le délai peut être réduit à nouveau 20%, mais le côté client et le côté serveur de la prise en charge de la double extrémité, jetant une légère douleur.
Le dernier point à ne pas négliger : pour choisir un CDN, il ne faut pas se contenter de regarder l'offre, il faut tester la qualité du nœud et de la réponse après-vente. J'ai été une fois attaqué au milieu de la nuit, le service client de CDN5 10 minutes sur la ligne pour ajuster les règles, CDN07 lent une demi-heure, 08Host ne peut tout simplement pas trouver les gens - vraiment hors de l'ordinaire, le temps est le taux de rétention des joueurs.
En résumé, le CDN de haute défense du Hand Tour n'est pas la cerise sur le gâteau, c'est la neige dans le charbon de bois. L'adaptation du réseau mobile est faite, la pression de perte de paquets retardée diminue, la réputation du joueur s'améliore naturellement. Bien sûr, il n'y a pas de solution unique, il faut continuer à surveiller l'adaptation. Quoi qu'il en soit, ma vague de marche sur les fosses se résume en une phrase : stabilité du réseau, la partie est gagnée ; effondrement de la sécurité, toute la partie est perdue.

