Bonjour à tous,
Je bosse actuellement sur un petit projet perso de messagerie instantanée (en python). Mon but est que cette messagerie soit le plus confidentielle possible, puisque je me suis débrouillé pour que la personne qui possède le serveur ne puisse pas accéder aux messages, via des systèmes de chiffrements symétrique/asymétrique. Bref je ne vais pas poster le code ici, il y a deux mille lignes ça ferai un peu trop (mais si quelqu'un y tiens, je peux le faire...)
Mon problème vient du fait que lors de la création d'un compte sur la messagerie, le client doit envoyer de grandes quantités de données au serveur (notamment les clés RSA, publique en clair et privée chiffrée avec le mot de passe de l'utilisateur) allant jusqu'à plus de sept mille caractères. Lorsque je lance le serveur sur la même machine que le client, tout passe impec et les données sont correctement récupérées. Mais lorsque le serveur s’exécute sur une machine distante, cela ne fonctionne plus. J'ai investigué un peu de mon côté et j'ai fini par voir que le serveur n'avait pas l'air de traiter toute la demande, comme si il tronquait le message que le client lui fait parvenir. Pour savoir si cela venait du client ou du serveur, j'ai lancé Wireshark et là j'ai obtenu ça :
Comme vous pouvez le voir, le gros message de 7 000 caractère n'est pas envoyé par le client, il est décomposé en plusieurs paquets contenant tous 1460 bytes de données. Or le serveur lui, n'analyse que le premier paquet qu'il reçoit, ce qu'il veut dire qu'il ne traite que 1/6 des données. Du coup il plante...
Alors voila ma question : Quelqu'un pourrait-il m'expliquer pourquoi les données sont fragmentées, et quelqu'un aurait-il une solution pour moi, que ce soit du côté serveur ou client, cela me serai d'une grande aide...
Voila merci d'avoir pris le temps de me lire et j'espère que quelqu'un sera en mesure de me répondre,
Victor Josso
-----