I'm increasingly seeing mobile networking technologies being used to get internet access in areas where it is otherwise not available.
While mobile networking is usually not yet viable as the primary internet connection, mobile technology looks like a good option for an emergency fallback.
Bandwith is not the problem: With HDSPA, speeds of several MBit are possible, which provides a decent uplink. However, I know from personal experience that mobile networks internet links (via GPRS, UMTS etc.) have much higher latencies than regular DSL (200-400 ms for UMTS, even more for GPRS). This of course makes them unsuitable for many applications, such as VoIP and teleconferencing.
- Where does this latency come from?
- Are there any technologies available that can mitigate this problem, to make UMTS viable for low-latency applications?
I assume there must be some inherent technical reason, but what is it? Does it have to do with how data is transmitted over the air? And if it is because of the wireless transmission, why does WLAN have much lower latencies?
The book "High Performance Browser Networking" from Ilya Grigorik answers exactly this. There is a whole chapter (7th) dedicated to mobile networks. The book states that the problem with high performance is almost always tied to latency, we usually have plenty of bandwidth but the protocols gets in the way. Be it TCP slow start, the Radio Resource Controller (RRC) or suboptimal configurations. If you are experiencing poor latency only in mobile networks it's the way they are designed.
There is a table in the book about typical latencies:
Table 7-2. Data rates and latency for an active mobile connection
Although very relevant to latency the TCP characteristic three-way handshake or the slow-start don't really answer the question, as they affect wired connections equally. What does really affect the latency in mobile networks is the layer under IP. If the layer under IP has a latency of half a second, a TCP connection to a server will take ~1.5 sec (0.5s*3), as you see the numbers add up pretty quick. As said before that's supposing that the mobile is not idle. If the handset is idle it first has to "connect" to the network, that requires to negotiate a reserve of resources with the tower (simplified), and that takes between 50-100ms in LTE, up to several seconds in 3G, and more in earlier networks.
Figure 7-12. LTE request flow latencies
In practice, the end-to-end latency of many deployed 4G networks tends to be in the 30–100 ms range once the device is in a connected state.
So, you have for one request (Figure 8-2. Components of a "simple" HTTP request):
And with real data:
Table 8-1. Latency overhead of a single HTTP request
In addition if you have a interactive application that you want to perform moderately ok in a mobile network you can experiment disabling the Nagle algorithm (the kernel waits for data to coalescence into bigger packets instead of sending multiple smaller packets) look for ways to test it in https://stackoverflow.com/a/17843292/869019.
There is the option to read the entire book for free by everyone at https://hpbn.co/ sponsored by Velocity Conference. This is a very highly recommended book, not only to people developing websites, it is useful to everyone who does serve bytes over some network to a client.
I suspect that a large proportion of the latency you may experience when using "cellular broadband" technologies is a compound issue of a number of things.
There's distance, but as syneticon-dj's mentioned, that's realistically only a very small proportion of the round-trip time.
Here's something to consider... The delays you experience as a customer (especially as a home, or small business customer) are probably artificially induced, at least to some extent. There is a class of 3G and GSM communications for M2M utilisation, for SCADA and so on, which sometimes can provide a greater reliability and lower latency transmission. As a result, they're usually prohibitively expensive.
So basically, you're up against traffic shaping. Either the ISP/Telco is doing it to prioritise better paying customers, or the cell you're connected to is a bit busy, or their entire network is a little bit sluggish (try 00:00 GMT on 1/1/2012, for example).
But there is a way around all of this, it's a bit sneaky though. You'd basically need a TCP connection proxy before your traffic heads out over the mobile WWAN. This proxy would essentially send a spoofed ACK to your application, as the real ACK might be delayed by the ISP's traffic shaping.
It's distinctly dubious, but a number of satellite providers use this mechanism to make the latency seem lower than it actually is.
Kind of late to the game, but you may want to check out my Performance Calendar's article about the topic: http://calendar.perfplanet.com/2012/latency-in-mobile-networks-the-missing-link/
tl;dr - a major part of mobile latency is due to unoptimized routing on the back-haul.
Cell phone modem technologies suffer from high latency due to the nature of open-air communications: WLAN transmission distances are typically much shorter than that of the other technologies you mentioned, hence this is one reason the latency is lower.