Home Datenkomprimierung bei UMTS
Datenkomprimierung bei UMTS Drucken E-Mail
Beitragsseiten
Datenkomprimierung bei UMTS
Negative Auswirkungen
Passwortgeschützte Verzeichnisse
Die Datei 'bmi.js'
Alle Seiten

Viele Mobilfunknetze unterstützen Datenkomprimierung nach dem ITU-T-Standard V.42bis. Dadurch kann bei Datenverbindungen die zu übertragende Datenmenge reduziert und somit der Datendurchsatz erhöht werden. Dies gilt für das Senden und Empfangen von unkomprimierten Daten.

Dieser Artikel beschreibt nicht den ITU-T-Standard V.42bis !

Der Artikel bezeichnet als "Datenkomprimierung" die Veränderung des HTML-Quelltextes und die Dateigrößenreduzierung von Bildern. Dieser Ausdruck wurde gewählt, da er oft in verschiedenen Foren verwendung findet.

Verschiedene Anbieter von Internet über UMTS komprimieren die übertragenen Bilder, um Transfervolumen zu sparen. Leider wird dies nicht nur auf die Bilder angewendet. Teilweise werden externe Java Script und CSS-Dateien in die Webseite eingebettet. Dadurch entstehen oft Fehler in der Darstellung oder es treten Java Script-Fehler auf.

Bei der "Datenkomprimierung" handelt es sich um einen Zusatz, den der Mobilfunkprovider absichtlich in den Datenverkehr schleust. Die meisten Provider – darunter alle deutschen – nutzen ein Verfahren, das Anwendern beim Surfen nicht die Originalbilder schickt, sondern stärker komprimierte. Dadurch wollen sie Übertragungskapazitäten sparen. Der gesamte Datentransfer wird über einen transparenten Proxy beim Provider umgeleitet, der an jede HTML-Datei eine JavaScript-Datei anhängt – die Technik stammt von ByteMobile Inc. (ByteMobile bei Wikipedia), daher der Name "bmi.js".

In den meisten Fällen bekommt man von dem transparenten Proxy nicht viel mit. Ein Blick in den Quelltext macht aber sichtbar, dass die Daten über einen Proxyserver laufen. An den Bildern bemerkt man, dass sie z.B. von der IP 1.1.1.3 stammen.
Man sieht dann z.B folgendes:

 
<img src="http://1.1.1.4/bmi/joomla-office.net/umts/smily.jpg"
 alt="Smily" align="left" />
 

Es gibt verschiedene IP Adressen, doch die fangen meistens mit 1.1.1.* an.

Verbindungen über das HTTPS-Protokoll sind von dem Proxyserver nicht betroffen, da hier die Daten in verschlüsselter Form übertragen werden. Ein Abfangen der Daten würde einem Man-In-The-Middle Angriff gleichkommen, was für den Proxybetreiber rechtliche Konsequenzen bedeuten würde.

Es gibt eine einfache Möglichkeit die Komprimierung zu umgehen. Durch das Drücken von STRG + F5 wird die Seite ohne Komprimierung neu geladen. Dies hat aber einen großen Nachteil. Nach dem ersten Aufruf muss die Seite erneut geladen werden. Dadurch entsteht doppeltes Datenvolumen. Der Grund für die Datenkomprimierung ist Transfervolumen zu sparen. Die "Datenkomprimierung" bewirkt aber eher das Gegenteil.

Bei einigen Anbietern kann man die Komprimierung über die mitgelieferte Software oder über eine Weboberfläche deaktivieren. Bei T-Mobile Austria kann man sie über die Adresse "1.2.3.4" deaktivieren. Leider werden zur Zeit Wartungsarbeiten durchgeführt, weshalb auf dieser Seite nur eine Information findet.

Deaktivierung über die Software unter MS Windows

Bei einigen Programmen ist es möglich über die Software selbst Einstellungen vorzunehmen, die das Komprimieren verhindern.
Die hier vorgestellte Methode bezieht sich auf T-Mobile Austria und den web'n'walk Manager 1.6.

Erstellen Sie ein neues Profil, in dem Sie die APN auf "statisch" setzen und als Wert "noproxy" eintragen.
Danach definieren Sie dieses Profil als Standard.

Die Profile findet man beim web'n'walk Manager 1.6 unter:
Einstellungen - Optionen... - Profilmanagement

Ebenfalls Abhilfe schafft ein Tool von ByteMobile, das eine genauere Konfiguration der Komprimierung erlaubt. Beim Hersteller selbst ist es nicht erhältlich, aber einige Mobilfunkprovider stellen es zum Download bereit, beispielsweise Vodafone als „HighPerformance Client“. Dieser Client erlaubt nicht nur die feinere Einstellung der Komprimierung – beispielsweise getrennt für JPG- und GIF-Dateien –, sondern bietet auch die Möglichkeit, einzelne IP-Adressen oder ganze IP-Bereiche von den Modifikationen auszunehmen. Webentwickler können beispielsweise dabei ihren Hosting-Provider eintragen oder Anwender ihre Lieblings-Fotoportale.

  • Download des HighPerformance Client von Vodafone

Unter Umständen hilft auch die Freeware MWConn. Diese Zugangssoftware ersetzt die Einwahlsoftware des Mobilfunkproviders komplett und hat eine Option (MOD=G), um die Komprimierung komplett auszuschalten. Allerdings unterstützt sie nicht alle Mobilfunkkarten und Handys.

  • Website von MWConn

Deaktivierung unter Linux mit Vodafone Mobile Connect

Es gibt ein Programm von Vodafone, das man ebenfalls für andere Anbieter verwenden kann.
Das Programm "Vodafone Mobile Connect" steht unter der GPL und kann von folgender Seite gedownloadet werden: https://forge.betavine.net/frs/?group_id=12

Auf dieser Seite gibt es Pakete für die verschiedensten Distributionen.
Ebenfalls ist dort eine Liste mit den unterstützen Geräten zu finden.
Sollte Ihr Modem nicht in der Liste aufscheinen probieren Sie es einfach aus.

Wenn das Modem von dem Programm unterstützt wird, sollte es automatisch erkannt werden und Sie können ein Profil erstellen.
Geben Sie beim Punkt "APN Host" einfach wieder "noproxy" ein.

Einstellungen im Profil:
Profilname: beliebig
Benutzername: t-mobile
Passwort: tm oder t-mobile
Bevorzugte Verbindung: 3G bevorzugt
Authentifizierungsmodus: CHAP
APN Host: noproxy DNS: keine Einstellungen notwendig.

Technischer Hintergrund

Durch das Drücken von "STRG + F5" wird die Seite neu aufgerufen, und es wird der Header "Cache-Control" mit dem Wert "no-cache" dem HTTP-Header angehängt. Dadurch weiß der Proxy, dass die Seite unkomprimiert übertragen werden soll.

Über diesen Proxy werden die Bilder komprimiert, damit sie schneller übertragen werden. Weiters werden bei HTML Seiten die externen Java Script und CSS-Dateien in die Seite integriert. Leider können dadurch Darstellungs- und Java Script-Fehler entstehen.

Der Proxy Server überprüft die Browserkennung, damit nur bestimmte Browser komprimierte Daten erhalten. Durch die Datei "bmi.js" können komprimierte Bilder nachgeladen werden, die dann in Originalqualität angezeigt werden. Um Probleme mit dieser Datei zu vermeiden wird hierbei die Browserkennung überprüft.
Die Komprimierung hängt einzig von der Browserkennung ab. Wird der Browser nicht erkannt, gilt er als nicht unterstützt und es werden die Originaldateien gesendet.

Das Ändern der Browserkennung hat aber einen großen Nachteil. Es sind davon alle Webseiten betroffen. Java Script und Browserweichen funktionieren nicht mehr richtig. Desshalb ist von der Änderung der Kennung abzuraten.

Betroffene Betriebssysteme

Von der Datenkomprimierung sind alle Betriebssysteme betroffen.
Bei meinen Tests verwendete ich Windows XP und Linux (Kubuntu Feisty, openSUSE 10.2) mit KDE.
Bei allen Betriebssystemen traten die gleichen Probleme auf.

Bei den Tests wurde jedes Betriebssystem auf einem eigenen Computer ohne Netzwerkverbindung installiert.
Es wurden 2 Modems getestet:

  • PCMCIA Karte: Option Modell: GT 3G+ EMEA
  • USB Modem: Huawei Modell: E220

Unter Linux wurde das Programm "UMTSmon" verwendet um die Verbindung herzustellen und es wurde nur die PCMCIA Karte getestet.
Bei Windows XP kamen beide Modems zum Einsatz.
Für die PCMCIA Karte wurden das Programm von Option und die mitgelieferte Software von T-Mobile getestet.

Das USB Modem wurde nur unter Windows mit der Software "web'n'walk Manager" von T-Mobile getestet.

Details zu den Browsern

Mozilla Firefox (Linux und Windows)

Die Lösung des Problems ist sehr einfach. Durch Hinzufügen des Header "Cache-Control = no-cache" bei jedem Seitenaufruf wird jede Seite unkomprimiert übertragen. Bei Mozilla Firefox gibt es eine Erweiterung, mit der man die Header bearbeiten kann.

Die Erweiterung heißt "Modify Headers" und kann von folgender Seite gedownloaded werden:
https://addons.mozilla.org/en-US/firefox/addon/967

In dem "Modify Headers"-Plugin erstellen sie folgende Regel:

  • Als Typ wählen Sie "Modify" aus
  • In das erste Eingabefeld schreiben Sie: "Cache-Control"
  • In das zweite Feld schreiben Sie: "no-cache"
  • Speichern Sie die Regel, und wechseln Sie auf die Seite "Configuration"
  • Aktivieren Sie "Always On: Enable Modify Headers when this window is closed"

Danach werden alle Seiten unkomprimiert übertragen.

Eine weitere, wenn auch nicht ganz so gute Lösung ist das Verwenden der Erweiterung "User Agent Switcher".
Mit dieser Erweiterung kann man auf einfache Weise die Browserkennung ändern. Mozilla Firefox kann sich dann z.B. als IE oder Opera ausgeben.
Diesen Effekt kann man nützen, um die Komprimierung zu umgehen, indem man einen Browser (z.B. Opera) auswählt, bei dem keine Daten komprimiert werden.
Der Nachteil dabei ist aber, dass dann Webseiten aufgrund der falschen Browserkennung falsch dargestellt werden. Browserweichen und Java Script funktionieren dann nicht mehr richtig.

Internet Explorer (Windows)

Leider gibt es diese Erweiterung "Modify Headers" nur für Mozilla Firefox. Die einzige Möglichkeit, die mir bekannt ist, ist der Umweg über einen lokal installierten Proxy Server.
Diesen Proxy Server konfiguriert man so, dass er jedesmal den Header "Cache-Control = no-cache" mitsendet.
Diese Lösung ist aber nur für versierte Anwender zu empfehlen, die mit dem IE Webseiten testenmüssen. Für den normalen Gebrauch ist diese Möglichkeit nicht praktikabel.

Opera (Linux und Windows)

getestet wurde Opera 9. Es waren keine Änderungen oder Modifikationen notwendig.
Ältere Versionen wurden nicht getestet.
Die HTML-Seiten werden unkomprimiert übertragen. Bei den Bildern fiel mir auch nicht auf, dass sie über einen Proxy komprimiert wurden.

Konqueror (Linux)

Beim Konqueror sind ebenfalls keine Änderungen oder Modifikationen notwendig.