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
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.