(pas besoin d'être sur le même serveur pour se parler)
Ben justement, en XMPP, si. Pour parler dans le salon de discussion fictif mouling@conf.linuxfr.org, tout le monde se connecte à son serveur XMPP perso, qui va se connecter au serveur responsable des MUCs de linuxfr.org. Alors, tu me diras, si tout le monde a un compte sur le même serveur (au hasard, google.com ou facebook.com), ça ne fera qu'une seule connexion entre le gros silo et linuxfr.org... Mais c'est tout contre l'esprit de décentralisation. Dans le cas extrême où chacun a son propre serveur, linuxfr.org devra avoir une connexion ouverte avec chaque serveur. Quand j'envoie un message dans le salon, mon serveur envoie ce message à tous les autres serveurs, qui les distribuent à leurs clients. Pire: même s'il y a 36 utilisateurs sur ungrosserveur.com, linuxfr.org devra envoyer le message 36 fois (!) à ungrosserveur.com, une fois pour chaque client.
À l'inverse, IRC fabrique un spanning tree, de manière à ce qu'il y ait le moins de trafic réseau possible. Tu te connectes au serveur le plus proche de chez toi du réseau, et quand tu envoies un message, le serveur auquel tu es connecté n'envoie le message qu'aux serveurs les plus proches, une fois par serveur, qui à leur tour distribuent le message, jusqu'à ce qu'il arrive sur tous les serveurs (et donc chez tous les clients). En pratique ça veut dire que le réseau est beaucoup plus sensible aux coupures réseau, mais quand ça marche, ça marche bien.
Il y a eu plusieurstentatives de résoudre ce problème de passage à l'échelle, malheureusement aucune n'est arrivée très loin. Le principal problème est qu'elles demandent plus ou moins de faire confiance aux intermédiaires, ce qui est quand même difficile.
Je ne parle même pas du fait que XMPP soit du (presque-) XML, ce qui implique une plâtrée de problèmes quand on veut envoyer des caractères un poil exotiques comme, par exemple, du XML, ou du binaire pour signer un message.
[^] # Re: Coquille ou péssimisme ?
Posté par rakoo (site web personnel) . En réponse au journal Organisation de tests de sécurité pour XMPP. Évalué à 8.
Ben justement, en XMPP, si. Pour parler dans le salon de discussion fictif
mouling@conf.linuxfr.org, tout le monde se connecte à son serveur XMPP perso, qui va se connecter au serveur responsable des MUCs de linuxfr.org. Alors, tu me diras, si tout le monde a un compte sur le même serveur (au hasard,google.comoufacebook.com), ça ne fera qu'une seule connexion entre le gros silo etlinuxfr.org... Mais c'est tout contre l'esprit de décentralisation. Dans le cas extrême où chacun a son propre serveur,linuxfr.orgdevra avoir une connexion ouverte avec chaque serveur. Quand j'envoie un message dans le salon, mon serveur envoie ce message à tous les autres serveurs, qui les distribuent à leurs clients. Pire: même s'il y a 36 utilisateurs surungrosserveur.com,linuxfr.orgdevra envoyer le message 36 fois (!) àungrosserveur.com, une fois pour chaque client.À l'inverse, IRC fabrique un spanning tree, de manière à ce qu'il y ait le moins de trafic réseau possible. Tu te connectes au serveur le plus proche de chez toi du réseau, et quand tu envoies un message, le serveur auquel tu es connecté n'envoie le message qu'aux serveurs les plus proches, une fois par serveur, qui à leur tour distribuent le message, jusqu'à ce qu'il arrive sur tous les serveurs (et donc chez tous les clients). En pratique ça veut dire que le réseau est beaucoup plus sensible aux coupures réseau, mais quand ça marche, ça marche bien.
Il y a eu plusieurs tentatives de résoudre ce problème de passage à l'échelle, malheureusement aucune n'est arrivée très loin. Le principal problème est qu'elles demandent plus ou moins de faire confiance aux intermédiaires, ce qui est quand même difficile.
Je ne parle même pas du fait que XMPP soit du (presque-) XML, ce qui implique une plâtrée de problèmes quand on veut envoyer des caractères un poil exotiques comme, par exemple, du XML, ou du binaire pour signer un message.