Question

Imaginez que vous avez beaucoup de serveurs en cluster, à travers de nombreux hôtes, dans un environnement de réseau hétérogène, de sorte que les connexions entre serveurs peuvent avoir différentes d'une manière extravagante latences et la bande passante. Vous voulez construire une carte des connexions entre serveurs en transférant des données entre eux.

Bien sûr, cette carte peut devenir obsolète au fil du temps que les changements de topologie du réseau -. Mais permet d'ignorer ces complexités pour l'instant et supposons que le réseau est relativement statique

Compte tenu des latences entre les noeuds dans ce graphique hôte, le calcul de la bande passante est un exercice relativement simple synchronisation. Je vais avoir plus de difficulté avec les latences - cependant. Pour obtenir le temps aller-retour, il est une simple question de synchronisation d'un ping-retour de l'hôte local à un hôte distant -. Les deux événements dans le temps (démarrage, arrêt) se produisent sur l'hôte local

Et si je veux fois à sens unique sous l'hypothèse que la latence n'est pas égale dans les deux sens? En supposant que les horloges sur les différents hôtes ne sont pas synchronisés avec précision (au moins que leur erreur est de même ordre de grandeur que les latences impliqués) - comment puis-je calculer le temps d'attente à sens unique?

Dans une question connexe - est cette latence asymétrique (où un lien est plus rapide dans le sens que l'autre) commun dans la pratique? Pour quelles raisons / configurations matérielles? Certes, je suis conscient des scénarios de bande passante asymétrique, en particulier sur les liaisons consommateurs dernière milles tels que DSL et câble, mais je ne suis pas sûr de temps d'attente.

Ajouté: Après avoir examiné le commentaire ci-dessous, la deuxième partie de la question est sans doute mieux sur

Était-ce utile?

La solution

Au meilleur de ma connaissance, les latences asymétriques - en particulier « dernier mille » asymétries - ne peut être déterminé automatiquement, car tout protocole de synchronisation temporelle du réseau est également affecté par la même asymétrie, de sorte que vous ne disposez pas d'un point de référence à partir duquel évaluer l'asymétrie.

Si chaque critère d'évaluation a, par exemple, sa propre horloge GPS, alors vous auriez un point de référence pour travailler.

Mesure rapide des paramètres LogP pour les plates-formes de message Passing , les auteurs notent que la mesure de latence nécessite une synchronisation d'horloge externe au système mesuré. (Boldface Souligné par l'auteur, en italique dans le texte original.)

  

latence asymétrique ne peut être mesurée par l'envoi d'un message avec un horodatage t s , et en laissant le récepteur dériver le temps de latence de t r - t s , t r est le temps de réception. Cette nécessite une synchronisation d'horloge entre l'émetteur et le récepteur. Sans externe Synchronisation d'horloge (comme l'utilisation de récepteurs GPS ou des logiciels spécialisés comme le temps de réseau protocole , NTP), les horloges ne peuvent être synchronisées à granularité de l'aller-retour temps entre deux hôtes [10], ce qui est inutile pour la mesure de la latence du réseau.

Aucun algorithme basé sur le réseau (comme NTP) éliminera les problèmes de liaison dernier mile, cependant, puisque chaque entrée à l'algorithme sera lui-même uniformément soumis aux caractéristiques de performance du lien dernier mile et est donc pas « externe »dans le sens indiqué ci-dessus. (Je suis convaincu qu'il est possible de construire une preuve, mais je ne veux pas avoir le temps de construire un moment.)

Autres conseils

Il y a un projet appelé One-Way Ping (OWAMP) spécifiquement pour résoudre ce problème. L'activité peut être vu dans le LKML pour ajouter horodatages haute résolution aux paquets entrants (SO_TIMESTAMP, SO_TIMESTAMPNS, etc.) pour aider dans le calcul de cette statistique.

http://www.internet2.edu/performance/owamp/

Il y a même une version Java:

http://www.av.it.pt/jowamp/

Notez que timestamping paquet a vraiment besoin de support matériel et beaucoup de cartes réseau de génération actuelle ne proposent que la résolution de milliseconde qui peut être hors de synchronisation avec l'horloge hôte. Il y a des articles MSDN dans le DDK sur la synchronisation des horloges hôtes et carte réseau montrant les problèmes potentiels. Timestamps à nanosecondes de la TSC est problématique en raison des différences fondamentales et peuvent nécessiter l'architecture Nehalem pour fonctionner correctement à des résolutions nécessaires.

http://msdn.microsoft.com /en-us/library/ff552492(v=VS.85).aspx

Vous pouvez mesurer la latence asymétrique sur le lien en envoyant différents paquets de taille à un port qui retourne un paquet de taille fixe, comme envoyer des paquets UDP à un port qui répond avec un message d'erreur ICMP. Le message d'erreur est icmp toujours la même taille, mais vous pouvez ajuster la taille du paquet udp que vous envoyez.

voir http://www.cs.columbia.edu/techreports /cucs-009-99.pdf

En l'absence d'une horloge synchronisée, l'asymétrie ne peut pas être mesuré comme prouvé dans le "Fundamental limits on synchronizing clocks over networks". papier 2011

https://www.researchgate.net/publication/224183858_Fundamental_Limits_on_Synchronizing_Clocks_Over_Networks

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top