TCP-Estimated round-trip test

In an attempt to evaluate different methods for measuring the performance of a TCP/IP connection, I’ve bumped into FreeBSD‘s getsockopt(TCP_INFO) system call, cloned from a similar call invented by Linux, which kindly returns interesting data about the current TCP connection.

I was mainly interested about round-trip time (RTT, called tcpi_rtt) and its standard deviation, mistakenly called tcpi_rttvar even though it’s not a variance.

I’ve written a small proof-of-concept tool accessible at http://eu.org:4500/ to display operating system information retrieved from the current HTTP access. The page currently runs on a FreeBSD 9-CURRENT machine; feel free to try it out, it works either in IPv4 or IPv6. Here’s a sample as of today:

This experimental page displays raw system TCP estimates, in microseconds.

Address: 2a01:e35:8b50:2c40::4
Estimated round-trip time: 15437
Estimated standard deviation: 27937

Note that the measures are very rough. First, the real resolution is about 1 millisecond (one kernel tick), not 1 microsecond. Then, several RTT samples are smoothed into the provided values, with a bigger weight for more recent samples. I left the actual values obtained from the kernel, for clarity, even though giving them up to a 1 microsecond resolution is somewhat misleading.

Then, of course, the results also depend on the number of samples, which tends to be low: the above page waits for the client HTTP headers to be fully received, then emits its own headers in reply, then waits for one second to give some time for the TCP ack(s) to come back, then displays the then-current estimations.

The results are probably sufficient for TCP’s internal needs, but they may differ wildly from real RTT values. Plus, the real RTT value depends on packet size, which TCP doesn’t seem to take into account. The above example is taken from my local network and displays over 15 ms for the RTT, whereas the real RTT is well below 1 ms (0.23 min, 0.4 average with 0.01 standard deviation, according to ping). The results are not always wildly up, I’ve noticed the opposite effect from a remote mobile phone displaying ~100 ms whereas the ping time was more like ~200 ms…

Feel free to use it and add comments below.

SEO : référencement et liens entrants

Mon billet d’hier sur les experts SEO a eu un succès certain (plus de 1000 visites à ce jour), principalement grâce à un grand nombre de citations sur Twitter. Suite à certains commentaires et après avoir consulté les explications données par certains experts en référencement sur leur propre site, je pense utile de compléter mes explications par quelques considérations sur le système des « liens entrants », aussi appelés « backlinks ».

Google utilise, comme évoqué hier, l’analyse du contenu d’une page pour lui associer des mots clés. Mais l’invention principale de Google, qui lui a permis une bien meilleure qualité de recherche, a été de prendre en compte également les références aux pages indexées faites depuis d’autres pages, établissant un système de pondération appelé PageRank, et ouvertement inspiré du système d’évaluation de l’influence des publications scientifiques (H-number).

Il est donc très efficace pour un site qui souhaite être mieux placé dans les résultats de recherche d’obtenir des liens entrants provenant d’autres sites.

Et c’est là que les choses commencent à se gâter. Car pour obtenir des liens, il n’y a pas des dizaines de solutions :

  • attendre qu’ils viennent spontanément d’autres responsables de sites ou de pages, grâce à la qualité du contenu ;
  • en solliciter en tant que relations de « bon voisinage » (le plus souvent en effectuant une proposition réciproque de lien : on appelle cela un échange de lien). Cette technique relève du démarchage commercial ;
  • en créer soi-même « à la main » en écrivant d’autres pages ailleurs, ou des commentaires sur des blogs comme celui-ci, des forums, etc. On commence à entrer dans la manipulation pure et simple, voire la propagande, le contenu enrobant lesdits liens ayant toutes les chances de n’avoir aucun intérêt, sinon publicitaire ;
  • en fabriquer plus ou moins automatiquement en créant des pages bidon ou en allant écrire des commentaires sur des blogs pris plus ou moins au hasard. On entre là dans les techniques de spam pur et simple. Ce blog pourtant relativement confidentiel reçoit chaque jour plusieurs dizaines de commentaires-spam, heureusement filtrés plus ou moins automatiquement. Comme son équivalent en courrier électronique, ce spam pourrit la vie des internautes.

L’expert en SEO va donc s’attacher à obtenir des liens par tout ou partie des trois dernières méthodes, suivant l’idée qu’il se fait de l’éthique. On parle de black-hat ou de white-hat (comme en sécurité informatique), comme si les choses étaient binaires, mais en la matière on devrait le plus souvent parler de tons de gris…

Parallèlement, Google, dont le succès repose largement sur la qualité de ses résultats, n’a pas envie de la voir démolie par ceux qui sauront se placer mieux que les autres indépendamment de la qualité ou de la popularité spontanée de leur contenu. Google effectue donc un sérieux travail de nettoyage de ce que chez eux aussi on appelle du spam, et n’hésite pas à descendre dans son classement les sites qui ont abusé un peu trop éhontément des méthodes « créatives » d’obtention de liens évoquées ci-dessus.

Un bon aperçu de ce que cela peut donner a été fourni hier par l’expert en référencement qui a montré son savoir-faire en établissant une page parodique pratiquement vide de contenu, mais portant quasiment le même titre que la mienne, pour la faire apparaître temporairement mieux classée dans les résultats de Google à l’aide de liens entrants obligeamment fournis par ses relations.

Facile ? Oui, comme il l’a dit lui-même, cela ne lui a pris que quelques minutes. Encore bravo à lui, et merci pour cette démonstration, qui apporte de l’eau à mon moulin en mettant en évidence la nature de la contribution à l’écosystème des experts en référencement.

Ajout : un lien très intéressant montrant les limites de PageRank et ce que l’on peut obtenir à l’extrême en SEO, avec une société aux USA qui profite des liens posés par des clients indignés pour être mieux classée et avoir encore plus de clients…

Ajout du 1er décembre 2010 : autre lien qui fait suite au précédent, qui montre que ce genre de problème ne fait pas du tout, mais alors pas du tout, rigoler Google, qui a été spectaculairement réactif sur ce coup-là. Chapeau.

Optimisation du référencement sur moteur de recherche : le SEO est-il une arnaque ?

Le dernier métier à la mode est celui de rebouteux-web, aussi appelé (expert en) SEO pour Search Engine Optimization, littéralement optimisation pour moteurs de recherche. En français on parle plutôt de référencement ; et principalement il s’agit d’être référencé sur Google, c’est à dire être bien placé dans les résultats de ce moteur, de préférence sur la première page, et idéalement en première position.

Vu la polémique provoquée par une page concernant les pratiques du SEO rédigée par Stéphane Bortzmeyer cet été, qui s’est fait violemment prendre à partie par les professionnels de la profession, j’ai souhaité effectuer une petite démonstration pour en avoir le coeur net.

La technique de base du SEO est très simple : trouver une combinaison de mots-clés qui soit à la fois en rapport avec la page à référencer, et rare (voire inexistante) dans le reste du web. Puisque Google donne lui-même dans ses résultats le nombre de pages contenant les mots-clés demandés ou des variations de ceux-ci, évaluer leur fréquence est extrêmement facile. L’utilisation de plusieurs mots-clés dans une recherche privilégie très fortement les pages qui les contiennent tous. Plus les mots clés utilisés sont rares, plus on peut limiter leur nombre. Un voire deux mots-clés très rares peuvent suffire à placer une page en première position sur Google.

C’est Google qui choisit lui-même les mots-clés pour indexer une page. Comment procède-t-il ?

  • d’abord, il utilise naturellement le texte de la page indexée.
  • ensuite, il complète par les mots trouvés dans le nom de domaine (la partie qui suit http://, jusqu’au / suivant)
  • enfin, il ajoute les mots trouvés à droite du nom de domaine, qui donnent l’adresse de la page au sein du site.

Le poids de ces différents éléments est variable, non dévoilé par Google (cela fait partie de leur sauce secrète). On peut supposer que le nom de domaine a un poids élevé, suivi par l’URL [MàJ : en fait pas tant que ça, cf les rectifications en commentaires] et le titre, les mots du contenu ayant un poids moindre, mais il existe des ajustements pour éviter que le système soit trop facilement exploitable par des spammeurs.

N’importe quelle personne rédigeant un blog apprend vite ces notions simples. Inutile d’être un « expert en SEO ».

Un court exemple valant mieux qu’un long discours, j’ai choisi quelques mots-clés pour voir si cela fonctionne. D’abord, des mots-clés liés au référencement : référencement, SEO, optimisation, arnaque, Google, moteur, recherche, web. Parmi ces mots-clés, à ce jour le plus fréquent est web (2,5 milliards d’occurrences !), le moins fréquent est moteur (66 600 occurrences seulement). Le second moins fréquent est arnaque.

Puis j’ai choisi les trois mots-clés les moins fréquents dans la liste qui précède : arnaque, optimisation, moteur pour les placer en titre de cet article. Il a fallu compléter pour que cela constitue une phrase, j’en ai profité pour utiliser d’autres mots-clés cités. Opportunément, le logiciel WordPress qui propulse ce blog utilise le texte du titre pour constituer l’URL. Rien de plus à faire de mon côté, donc.

Ensuite, j’ai choisi au hasard 3 mots dans le dictionnaire : eupatoire, contraction et dyspepsique. Ces mots sont tellement rares (notamment eupatoire) que cette page doit probablement être la seule du web (pour l’instant) à les contenir tous les trois…

Enfin, pour compléter cet essai, j’ai inventé un mot en tapant au hasard : xkvqoiikjbzrjwqdcqsd.

Vous pouvez vérifier par vous-même le classement de la page en effectuant des recherches sur des combinaisons des mots clés qui précèdent.

Tout cela, écriture de ce texte comprise, m’a pris environ 20 minutes. Évidemment, il s’agit d’un exemple simplifié, destiné à mettre en évidence les mécanismes principaux en oeuvre.

On comprend bien qu’un expert en SEO ne peut décemment pas avouer à ses clients qu’il leur facture plusieurs centaines, voire milliers d’euros, pour un travail aussi simple. Il va donc délayer la sauce avec des techniques qui, au mieux, s’apparentent plus à l’imposition des mains ou au placebo (très bien caricaturées ici), ésotériques à souhait, et au pire relèvent du spam pur et simple contre lequel Google lutte pour préserver la qualité de ses résultats. Le but est de bien montrer que le spécialiste, c’est lui, et que ses services valent le prix élevé auquel il vous les facture.

Et l’intérêt de la page, dans tout ça ? Eh bien, personne ou presque n’en parle, à part les vendeurs honnêtes de SEO, bien que cela soit le plus important au final. Cette technique étant applicable aveuglément pour être relativement bien référencé, personne ne se soucie de la qualité du contenu. Le SEO finit par devenir une fin en soi, proposée par de mauvais professionnels à de mauvais clients…

Une fois la page référencée par Google, j’ajouterai ici les mots-clés qui permettent de la faire apparaître en bonne position dans une recherche. Évidemment, ces résultats seront susceptibles de varier au fil du temps ; encore une bonne raison pour les experts en SEO de facturer leurs services de manière récurrente…

Mise à jour : voir aussi mon article complémentaire, SEO : référencement et liens entrants.