Ceci dit, j'ai déjà un peu réfléchi à la question en rapport avec les jeux vidéos.
Prenons un FPS (First Person Shooter = quake 3, half-life). En gros, le client envoies ses déplacements et la direction de ses tirs. Tout cela passe par le serveur.
Une implémentation simple du serveur consisterais à simplement renvoyer aux autres clients les données reçues. Dans ce cas-là, on peut effectivement tricher facilement.
Maintenant, le serveur peut vérifier les données du client (il stock la position précédente du client et compare avec le déplacement envoyé par le client, si c'est au-delà de la vitesse limite, il réagit).
En prenant le problème dans l'autre sens, à savoir quelles infos le serveur envoie au client, si on prend un modèle simple dans lequel chaque client connait la position de tout les autres, alors on peut facilement faire des wallhacks (vision a travers les murs).
Ceci dit, le serveur peut, pour chaque client, n'envoyer que les positions des joueurs que ledit client voit.
Le seul problème, c'est que ça demande beaucoup de calcul côté serveur....
Maintenant pour le p2p, ou il n'y a pas de serveur central, pour éviter le monopole de bande passante:
Imaginons un client A qui est "gentil" et un client B qui tente de monopoliser la bande passante de A.(B aurait mis sa vitesse de download très haut et sa vitesse d'upload très bas)
Quand B demande à A de lui envoyer un fichier, A peut regarder à quelle vitesse il télécharge chez B et fixer une vitesse d'envoie maximum vers B en fonction de ça.
Voilà, je ne suis pas sûr d'avoir été très clair... et je peux très bien me tromper.
# Je ne suis de loin pas un expert...
Posté par Jux . En réponse au journal Faille de l'open-source ?. Évalué à 7.
Prenons un FPS (First Person Shooter = quake 3, half-life). En gros, le client envoies ses déplacements et la direction de ses tirs. Tout cela passe par le serveur.
Une implémentation simple du serveur consisterais à simplement renvoyer aux autres clients les données reçues. Dans ce cas-là, on peut effectivement tricher facilement.
Maintenant, le serveur peut vérifier les données du client (il stock la position précédente du client et compare avec le déplacement envoyé par le client, si c'est au-delà de la vitesse limite, il réagit).
En prenant le problème dans l'autre sens, à savoir quelles infos le serveur envoie au client, si on prend un modèle simple dans lequel chaque client connait la position de tout les autres, alors on peut facilement faire des wallhacks (vision a travers les murs).
Ceci dit, le serveur peut, pour chaque client, n'envoyer que les positions des joueurs que ledit client voit.
Le seul problème, c'est que ça demande beaucoup de calcul côté serveur....
Maintenant pour le p2p, ou il n'y a pas de serveur central, pour éviter le monopole de bande passante:
Imaginons un client A qui est "gentil" et un client B qui tente de monopoliser la bande passante de A.(B aurait mis sa vitesse de download très haut et sa vitesse d'upload très bas)
Quand B demande à A de lui envoyer un fichier, A peut regarder à quelle vitesse il télécharge chez B et fixer une vitesse d'envoie maximum vers B en fonction de ça.
Voilà, je ne suis pas sûr d'avoir été très clair... et je peux très bien me tromper.