Ever wondered why internet in the UAE sucks? I have a theory…
- Etisalat runs a Great Firewall of UAE for HTTP traffic, and is overloaded and/or buggy.
- Commonly accessed files are sometimes cached by the Great Firewall, and can be delivered/inspected/passed through quickly. However, less common files need to be fetched by the Great Firewall before being delivered to the end user. Because the Great Firewall is overloaded or buggy, it can sometimes inspect and deliver the first bytes of a file quickly before slowing to a crawl. For example, this could manifest as downloading a file at 300 KBps for a few seconds before dropping down to 50 KBps for the remainder of the file, or producing a sawtooth-like bandwidth graph. If it’s a large file, it could end up taking hours. Sometimes the Great Firewall is unable to do any caching due to cache settings on the web server, in which case it has to inspect the file each time it is downloaded (you will see this with the results from speedtest.net).
- Encrypted data cannot be inspected and seems to be ignored by the Great Firewall. This suggests a few ways around the firewall: the most commonly used one is to VPN out. Another way is to use HTTPS. This is particularly useful with Google Maps, for example (http://maps.google.com/ vs. https://maps.google.com/). You can also see a pronounced difference when using Speedtest over an encrypted connection or not (https://dustin.li/tmp/st/ vs. http://dustin.li/tmp/st/ – this is my server in North Virginia). In my own testing, direct encrypted (e.g. HTTPS) connections outperform VPN encrypted connections, which in turn outperform unencrypted HTTP connections. We’re talking almost an order of magnitude – 4.83 Mbps HTTPS vs. 0.64 Mbps HTTP.
- Etisalat’s DNS service occasionally slows to a crawl, which introduces non-bandwidth related latency. I have sometimes worked around this when I am at home by switching to Google’s DNS servers or my personal DNS server.