Les speedtest en Flash ouvrent et utilisent directement des sockets réseaux ce qu'un navigateur ne peut pas faire directement en Javascript meme les plus récents.
Les test en HTML5 doivent utiliser XHR ou des websockets
Les WebSockets = +/- 4 octets d'overhead sur tes paquets TCP, pas une grosse affaire.
Dans les deux cas, il y a un mécanisme d'initiation ajouté par-dessus (le crossdomain.xml cherché sur le port 843 pour les sockets Flash, l'en-tête Upgrade pour les WebSockets) et celui de la techno web est moins lourd.
Le JavaScript dans un navigateur récent te permet de faire passer une couche de communication à base d'UDP (via les WebRTC data channels pour lesquels on a quelques
implèmentations serveur qui commencent à apparaître) ; pour Flash, je crois qu'il y a une techno +/- assimilable qui s'appelle RTMFP mais je n'ai pas fait de recherches dessus.
et les spécificités de Javascript (asynchronisme, I/O non bloquantes) font qu'on a pas du tout le meme degrés de contrôle et de mesure qu'en Flash.
flash.net.Socket n'est pas tout ça ?