Packet Loss Test

Techniek

Deze testsite laat een webpagina met JavaScript over https legt dat een WebSockets verbinding ge gebruikt een externe STUN server om een WebRTC verbinding naar de server de maken. Dan maakt de site een in principe onbetrouwbare verbinding op basis van WebRTC een stuurt een reeks netwerkpakketjes naar de seriver, die ze ontvangt en direct een antwoord terugstuurt. De client meet dan de pingtijd en houdt bij welke er terugkomen. De server stuurt houdt ook bij wat er ontvangen wordt, en stuurt die lijst via de (betrouwbare) WebSockets verbinding terug, zodat de client weet welke pakketjes de heenweg al niet gehaald hebben.

Gebruikte diensten en technieken

De gebruikte diensten en technieken zijn:

  • Het SSL certificaat is gemaakt door Let's Encrypt.
  • De statische HTPS website wordt gehost door Netlify, die updates haalt van GitHub.
  • De WebSocket en WebRTC server worden gehost door Linode.
  • De WebSocket en WebRTC server draaien Node.js.
  • Node.js gebruikt uWebSockets.js, n die maakt weer gebruik van uWebSockets (Wat, dankzij C++, en stuk sneller is JavaScript ooit kan zijn.)
  • Daarnaast gebruikt de server wrtc oor WebRTC in Node.js. (Dat zit er namelijk niet standaard in. WebRTC is zit niet in JavaScript zelf, maar is een JavaScript API in WebIDL.)
  • Ik gebruik de gratis Google STUN server (stun.l.google.com:19302) om een ICE verbinding op te zetten.
  • Chart.js maakt de staafgrafiek onderin de resultaten.
  • Alles is eigenlijk verder gewoon handmatig gecodeerd in HTML, CSS, JS, and Bash. Ik gebruik alleen Mustache (in JavaScript) op de server-side de pagina's op te bouwen op basis van templates, zodat delen herbruikt kunnen worden.
  • Daardaast is de vertaling grotendeels (maar niet helemaal) gebaseerd op Google Translate. >.>
    En, DeepL en Linguee hebben ook geholpen, ik kan ze aanraden.