Packet Loss Test

Technologia

Tak więc, na poziomie podstawowym, gdy łączysz, to pobiera stronę internetową przez HTTPS, witryny i serwera następnie ustanowić połączenie WebSockets, a następnie witryny i serwera korzysta z zewnętrznego serwera STUN do negocjowania WebRTC połączenia. Witryna następnie ustanawia niewiarygodny kanał danych za pomocą WebRTC i wysyła kilka pakietów do serwera, który je rejestruje, a następnie wysyła je z powrotem. Klient następnie zapisuje czasy pingów i które z nich otrzymał z powrotem. Serwer wysyła również log przez WebSockets, który pokazuje, które pakiety dotarły do celu, dzięki czemu można odróżnić straty pakietów wysyłania od strat pakietów pobierania.

Usługi używane

Tak więc, jeśli chodzi o konkretne technologie i wykorzystywane usługi:

  • Nazwa domeny została zarejestrowana w NameSilo.
  • Certyfikat SSL jest dostarczany przez Let's Encrypt.
  • Statyczna strona HTTPS jest hostowana na Netlify, który czerpie z GitHub.
  • Serwer WebSocket i WebRTC jest hostowany w Linode.
  • Ten serwer WebSocket i WebRTC działa Node.js jako oprogramowanie serwera.
  • Node.js uruchamia uWebSockets.js, który z kolei uruchamia uWebSockets (który, będąc C++, jest znacznie szybszy niż JavaScript kiedykolwiek mógłby być).
  • Serwer następnie używa wrtc do implementacji WebRTC w Node.js. (Ponieważ nie implementuje tego. WebRTC nie jest w rzeczywistości JavaScript, ale tylko API JavaScript w WebIDL).
  • Używam darmowego, publicznego serwera STUN firmy Google (stun.l.google.com:19302), aby nawiązać połączenie ICE.
  • Chart.js renderuje wykres słupkowy na dole wyników.
  • Wszystko jest w zasadzie tylko ręcznie kodowane HTML, CSS, JS i Bash. Używam Mustache (w JavaScript) po stronie serwera do szablonowania stron, aby były łatwiejsze do przetłumaczenia (z widokami) i do zmiany wspólnych części (z partials).
  • Ponadto, do tłumaczenia, I w dużej mierze (Ale nie całkowicie!) używane Google Translate. >.>
    Jak również DeepL i Linguee były niesamowite pomoce, które całkowicie polecam.