2 Punkte von GN⁺ 2024-06-01 | 1 Kommentare | Auf WhatsApp teilen

Interneterfahrung in der Antarktis

  • 14 Monate lang erfolgte der Internetzugang über eine begrenzte Satellitenverbindung.
  • An der McMurdo-Station teilen sich etwa tausend Menschen einige Dutzend Megabit Bandbreite.
  • Stand Oktober 2023 war am Südpol eine Internetverbindung nur für einige Stunden pro Tag verfügbar.
  • Durch die Satellitenanbindung entsteht eine hohe Latenz von etwa 750 Millisekunden.

Probleme bei der Web- und App-Entwicklung in einer Umgebung mit langsamem Internet

  • Viele Web-Apps berücksichtigen langsames Internet nicht.
  • So funktionierte eine bestimmte App nur, wenn zuerst 20 MB JavaScript geladen wurden.
  • Wenn Apps unter langsamen Netzbedingungen nicht richtig funktionieren, führt das zu erheblichen Einschränkungen für die Nutzer.

Zentrale Probleme und Lösungsansätze

Fest codierte Timeouts und Chunk-Größen

  • Fest codierte Timeouts und Chunk-Größen verursachen in langsamen Netzumgebungen große Probleme.
  • Lösungsansätze:
    • Wenn Daten fließen, den Vorgang weiterlaufen lassen und den Fortschritt in der UI anzeigen.
    • Bei fehlgeschlagenen HTTPS-Aufrufen mit längeren Timeouts erneut versuchen.
    • Große Daten nicht auf einmal senden, sondern in kleine Chunks aufteilen.
    • Bei Problemen die Ursache über DNS, ICMP, HTTP usw. diagnostizieren.

Beispiel 1 – Download von App-Metadaten

  • Eine bestimmte Desktop-App scheiterte wegen eines fest codierten Timeouts am Download von Metadaten.
  • Lösungsansätze:
    • Mit schrittweise längeren Timeouts erneut versuchen.
    • Zwischengespeicherte Daten oder Standardwerte verwenden.
    • Eine Möglichkeit bereitstellen, damit Nutzer die Daten manuell herunterladen können.

Beispiel 2 – Chat-App

  • Eine bestimmte Chat-App scheiterte, weil für die Initialisierung von WebSockets ein Timeout von 10 Sekunden verwendet wurde.
  • Eine andere Chat-App kam dagegen mit verschiedenen Netzwerkbedingungen gut zurecht.
  • Lösungsansätze:
    • Timeouts dynamisch anpassen und bei Fehlern intelligent erneut versuchen.
    • Den aktuellen Netzwerkstatus klar anzeigen.

Beispiel 3 – Schrittweise Übertragung

  • Ein Blog-Posting-Tool überträgt Daten in kleinen Chunks und setzt den Vorgang nach Fehlern fort.
  • Eine andere kommerzielle Plattform scheiterte, weil sie große Dateien auf einmal übertragen wollte.

Download-Funktionen für Nutzer bereitstellen

  • Falls die Download-Funktion innerhalb der App fehlschlägt, sollten Links bereitgestellt werden, über die Nutzer direkt herunterladen können.
  • Nutzer können eine Datei einmal herunterladen und anschließend auf mehrere Geräte verteilen.
  • Das gibt Nutzern mehr Flexibilität bei der Verwaltung ihrer Downloads.

Beispiel 1 – macOS-Updates

  • macOS-Updates verursachten Probleme wegen großer Dateigrößen und unvollständiger Cache-Funktionen.
  • Lösungsansätze:
    • Download-Links bereitstellen, damit Nutzer Dateien direkt herunterladen können.
    • Pause-/Fortsetzen-Funktionen in Download-Tools ergänzen.
    • Ein vollständiges Installationsprogramm mit allen benötigten Dateien bereitstellen.

Beispiel 2 – OS-Updates für Samsung-Android-Smartphones

  • Die OS-Updates für Samsung-Android-Smartphones scheiterten, weil es keine Pause-/Fortsetzen-Funktion gab.
  • Lösungsansätze:
    • Pause-/Fortsetzen-Funktionen in Download-Tools ergänzen.
    • Links bereitstellen, über die Nutzer die Dateien direkt herunterladen können.

Beispiel 3 – Automatische Updates kleiner Apps

  • Automatische Updates kleiner Desktop-Apps verursachten Probleme, weil es keine Schaltflächen zum Pausieren oder Abbrechen gab.
  • Lösungsansätze:
    • Schaltflächen zum Pausieren und Abbrechen in Download-Tools ergänzen.

Meinung von GN⁺

  • Langsame Internetumgebungen berücksichtigen: Viele Apps berücksichtigen langsame Internetverbindungen nicht, was zu erheblichen Unannehmlichkeiten für Nutzer führt. Das ist besonders in abgelegenen Regionen oder maritimen Umgebungen ein wichtiges Problem.
  • Verbesserung der User Experience: App-Entwickler sollten unterschiedliche Netzwerkbedingungen berücksichtigen, um die User Experience zu verbessern. Das erhöht die Zufriedenheit der Nutzer und verbessert die Zuverlässigkeit der App.
  • Technische Lösungsansätze: Probleme lassen sich durch technische Maßnahmen wie Timeout-Anpassungen, Chunk-Übertragung und Wiederaufnahme von Downloads lösen.
  • Empfehlung anderer Produkte: Wenn man Apps sucht, die unter langsamen Netzbedingungen gut funktionieren, kann auch ein Vergleich mit Konkurrenzprodukten sinnvoll sein. So kann etwa eine bestimmte Chat-App in langsamen Umgebungen besser funktionieren.
  • Worauf bei der Einführung von Technologien zu achten ist: Bei der Einführung neuer Technologien sollten die Netzwerkbedingungen ausreichend berücksichtigt werden. Das ist besonders in abgelegenen oder eingeschränkten Umgebungen ein wichtiger Faktor.

1 Kommentare

 
GN⁺ 2024-06-01
Hacker-News-Kommentare
  • Internetumgebung in China: Die Internetumgebung in China ist instabil, und auch VPNs sind eingeschränkt. Entwickler müssten gedanklich ins Jahr 2005 zurückkehren und wieder effizientere Web-Apps bauen.

  • Netzwerkprobleme in Australien und in der Londoner U-Bahn: In Australien und in der Londoner U-Bahn bricht die Verbindung häufig ab, aber die meisten Apps gehen damit schlecht um. WhatsApp ist eine seltene Ausnahme und funktioniert bemerkenswert gut.

  • Vorschlag zur Nutzung von Remote Desktop: Es stellt sich die Frage, ob die Nutzung von Remote Desktop eine bessere Erfahrung bieten könnte. Wie gut VNC/Windows Remote Desktop unter schlechten Netzwerkbedingungen funktioniert, ist allerdings unklar.

  • Probleme mit langsamem Internet: Bei langsamem Internet funktionieren viele Websites nicht richtig. Selbst Seiten mit reinem Text laden nur träge. Der Umstieg auf einen Static Site Generator hat die Produktivität stark verbessert.

  • Local-First-Software: Es braucht Local-First-Software. Das entspricht dem ursprünglichen Zweck des Internets und hilft dabei, die Kontrolle über die eigenen Daten zu behalten.

  • Blogs und Bandbreitenprobleme: Der Autor eines Blogs verbraucht viel Bandbreite, was bei anderen für Unmut sorgt. Wegen des PR-Werts bekommt er jedoch Vorrang.

  • Erfahrungen mit Netzwerk-Hacks: Vorgeschlagen wird, in unterschiedlichen Netzwerkumgebungen NNCP zu verwenden, um Daten in Chunks aufzuteilen und zu übertragen. NNCP gewährleistet eine zuverlässige Datenübertragung.

  • Langsame Netzwerke müssen berücksichtigt werden: Viele Menschen haben keinen Zugang zu schnellem Internet. Apps sollten deshalb auch in langsamen Netzwerkumgebungen zuverlässig funktionieren.

  • Erfahrungen im Südpazifik: Wegen des hohen Stromverbrauchs von Starlink wurde eine lokale SIM-Karte verwendet, doch das EDGE-(2G-)Netz war extrem langsam. Softwaretests sollten daher auch Verbindungen mit niedriger Bandbreite und hoher Latenz einschließen.

  • Lösungen für Internetprobleme auf Schiffen: Um das Internet auf Schiffen effizient zu nutzen, werden etwa DNS-Abfragen blockiert, Nutzersitzungen begrenzt und die Bandbreite fair verteilt.