Network Technologies and Concepts

vodacom3g

Vodacom Representative
Joined
Jan 14, 2005
Messages
12,065
Reaction score
2
Location
(mostly) Plattekloof, Cape Town
I'm starting a new thread where we can specifically discuss network technologies (as it relate to the Vodacom network), the concepts behind it, etc.

The idea is to form a tut-type thread where people new to networking can come and read up on concepts such as latency, throughput, contention ratio, network protocols, radio transmissions, specifications, etc. Anything relevant to get a packet into your PC over the Vodacom network.

I'll kick it off by re-posting the info I posted in the 'Need for speed thread'.

Let's try and keep it on-topic. I've linked this from the FAQ.
 
Various Specifications

In this post I'll add in various specifications, for example GPRS / EDGE / 3G / HSDPA, etc.

Let me have them and I'll collate them here at the top.

GPRS and EDGE

GPRS and EDGE are two methods employed to provide packet data over a GSM radio network. Depending on the Coding Scheme (in GPRS) or Modulation and Coding Scheme (in EDGE), you'll get a specific throughput per time-slot assigned to you. The number of time-slots can vary based on handset and tower capabilities. Depending on signal quality you can be moved up or down the MCS stack.

Speeds

On GPRS: Max Throughput per Time-Slot

- CS 1: 9.05kb/s
- CS 2: 13.4kb/s
- CS 3: 15.6kb/s
- CS 4: 21.4kb/s

On EDGE: Max Throughput per Time-Slot

- MCS 1: 8.8kb/s
- MCS 2: 11.2kb/s
- MCS 3: 14.8kb/s
- MCS 4: 17.6kb/s
- MCS 5: 22.4kb/s
- MCS 6: 29.6kb/s
- MCS 7: 44.8kb/s
- MCS 8: 54.4kb/s
- MCS 9: 59.2kb/s

So if you have a 3-Down, 1 Up connection, you'll get a theoretical max of 64.2/21.4 kb/s on GPRS and 177.6/59.2 kb/s on EDGE.

Note all numbers are in kilo-bits / second and not kilo-byes per second.

3G and HS(D/U)PA

3G (more correctly 3G-r99, for release '99) and HSDPA (typically called HS), is based on WCDMA and does not use the concept of time-slots but rather can be seen as shared media.

The Vodacom network today supports a maximum of 384/64 kb/s on 3G and 1800/384 kb/s on HSDPA.

What is HSDPA and HSUPA?

High Speed Downlink Packet Access was the first enhancement of R99 ('Vanilla-3G')and gave us much higher down-link speeds, first release at 1.8Mb/s. Next two versions will first push this up to 3.6Mb/s and then, not much later, to 7.2Mb/s.

Uplink speed on HSDPA is currently 384kb/s.

High Speed Uplink Packet Access (HSUPA) will increase the up-link speed. Actual numbers are still being determined by the vendors. HSUPA specification point to a max. of 5.7Mb/s but this probably won't be achieved in the first few versions.

Latency will improve as raw speed increases, not just on the radio link but also by forcing the upgrade of the interconnecting links.

What is Cell Breathing?

Any radio cell has an effective footprint in which you will get coverage. To get comms, you need a certain signal to noise ratio. It makes sense the closer to the edge of the cell you are (and thus prone to more interference between you and the tower) the lower your signal to noise will become till it is so bad, you can't establish a connection anymore. This is the edge of the cell.

With 3Gdown-link, the more users are in a cell the more the 'noise' increase as your handset will see other handsets as noise generators! So the more users in the cell, the worse the average SNR.

It therefore follows that users who had a bad SNR in the first place (typically on the edge of the cell), will now see even more noise, further impacting their own SNR till it's so bad the handset disconnects as it can no longer communicate anymore. You just dropped the connection but you've not moved!

For all intents and purposes it appears as if the cell had shrunk past you, as more users entered the cell. The inverse will happen as users leave the cell, the footprint will increase.

Therefore the cell seems to be 'Breathing'.
 
Last edited:
A Networking Analogy

When you sit at your PC and work on the web (surf a web page for example), data packets flow across a large number of different elements, all which impact the throughput and latency you'll get.

Thinks of lots of different pipes bolted together to make one long pipe, from your PC to a web server in New York. These pipes are all of varying thickness, and therefore the pipe with the smallest diameter will restrict the water flow the most.

Now, these pipes start right there in your PC (lots and lots of different pipes, most of them software), then some network components, then the radio network, then more network components, lots of bits of kit that interconnect these pipes, also acting as pipes themselves, more pipes that leave the country, more pipes in the US and so on, till you hit the server, which has more pipes itself.

So you can see there are literally hundreds of connected pipes and you're trying to get a stream of water through all of these. "GPRS" will count as one of these pipes, in series with hundreds of others.

Not only is it obvious that the smallest pipe will become the biggest bottleneck but on most of these pipes multiple streams must be accommodated. Think of lots of little pipes inside one big pipe. Only one of these small pipes will carry your stream, let's call it 'shared pipes' or shared media. The number of small pipes (typically in network layer and up in the ISO model) can also increase or decrease (contention ratio) but can never exceed the total volume of the 'big' pipe (Phy and MAC layers) that contain them. This 'lots of small pipes in one big pipe' happens inside every pipe that serves multiple users, i.e. most of them.

The diameter of the pipe times the speed of water gives you the total flow (in litres / second). You can either make the pipe bigger (more bits) or use bigger pumps (higher clock frequency) to increase the flow.

Diameter x flow rate gives you 'throughput' but another, very important parameter is 'latency' (these two are often confused).

Let's say you start with all the pipes that connect you PC to the server empty. You then insert just one drop into the system. No single diameter should be less than the size of the drop so we can remove the thickness parameter. Yet you'll find the drop does not appear instantaneously at the server. Why not?

The speed of the drop is actually limited in each pipe by various factors. On the long, interconnecting pipes (back-haul links, for example), the speed is determined by the clock frequency of that link, say 10m/s or 100m/s. You'll agree that the higher the clock speed, the faster the drop will move.

Now the drop arrives at the first pumping station (router or other network element). It will be pumped into the engine at the same speed as the interconnecting pipe (otherwise pressure will start to build up), but then the poor drop get analyses more than a typical American gets probed by a Grey! This analysis might take some time and only when the pump station is done with the drop does it 'clock' it out onto the next pipe whose speed is again specific to that pipe (the clock frequency).

And so it goes, pipe - pump station - pipe - pump station, till it hits the server in New York after some time. This is called one-way latency. Now the server in NY send the same drop back to you and all the same time delays or latencies are incurred again before you get the drop back. You basically will see twice the one-way delay, called the round-trip delay or latency. (You've just done a one-drop ping!)

For one drop in the system this will be a fixed number.

You'll agree this is a pretty slow process and making the pipes bigger will have no impact on getting it there faster.

Now, let's say you want to send a bucket of water to New York (upload a file). If you had to do this drop by drop, inserting one drop at a time and waiting for the "I got your drop" acknowledgement to come back, before you send the next drop, it would take forever.

Rather what you'll do is to just pour the bucket of water into the first pipe!

The system will now fill up with the bucket of water and it will travel down the system as a 'bundle' of water, still individual drops, but tightly packed together filling up the width of all the pipes. On a big pipe the 'bundle' of water might only be a centimetre in thickness, while on a smaller pipe, it might be a few meters. But there are no gaps between the drops.

You'll agree that the first drop will still be delayed by the inherent latency of the system (the time it takes for one drop to reach NY), but the next drop will appear right on his bum with no time delay after the first drop.

The only thing that restricted the 'upload speed' was the thickness of the pipes x the size of the pumps. All drops saw the latency BUT AT THE SAME TIME.

So you can see that latency and throughput are different aspects.

If we could always trust the system to pump all the water across, we would do it this way, just chuck it in and forget about it.

Unfortunately we cannot. The systems are not failsafe, you might loose drops along the way.

To accommodate this we introduce a concept of 'handshaking' where we acknowledge receiving a number of drops every now and then. The system sending the water will now be ensured the water is actually delivered and there are no holes in the pipes along the way.

The most reliable but worst in performance would be to get a response drop back for every drop you send. In other words; You send one drop and then wait to hear (by return drop) that the drop was actually received. Then you send the next one, etc. This would be extremely slow but sometimes it is done (think Telnet).

Chucking all the water in at once, will give the best throughput but if you loose one drop, you have to resend everything.

A better solution would be to guess the reliability of the system and pick a number of drops to send as a single stream before you wait for an OK drop. Lets say we pick a thousand drops. Now you send a thousand drops and then stop and wait for the return drop. If you receive it and all is OK, you send the next 1000 drops. If not you resend the first 1000 drops (You kept a copy!).

The problem with this concept is we have now introduced latency again! Only the first drop saw the latency but then we stop and wait for the return drop (which incurs the same latency) then we start up again and again the first drop sees the latency.

So although we can have a high throughput (diameter x pump rate), every 1000 drops we stop and then have to start all over again.

Obviously we want to make this number as large as possible but it is always a trade off. If we make it too big, and we loose 1 drop, we have to resend a large number of drops and the effective throughput suffers. If we make it too small (and we never loose drops) we introduce unnecessary latency.

So we would like to choose this number and often (like in TCP) we can. It's called the 'sliding window'. The bigger the 'window' the more drops are sent before we wait. Sometimes the systems are even clever enough to change it on the fly.

The problem is (as always), all these different pipes. A reliable pipe might only require a sliding window of a 1000 while an unreliable pipe might need 10. So you always need to run at some compromise.

OK, so we've discussed three concepts:

1) Number of network elements in the link and if they're dedicated or shared (contended)
2) Latency (how long does it take one drop to travel down the system)
3) Throughput (how many drops can it carry at any one time)

(A 4th concept you need to understand which we did not discuss in this analogy, is that of the peer-to-peer nature of protocol stacks, where one layer will only communicate with it's corresponding layer. It's extremely important to understand as each layer effectively implements the whole scenario described here)

So in a system where many of the pipes are not under your control (you cannot control diameter, pump speed, delays or number of streams) there is no way you can guarantee the final water flow rate. So you can only provide a 'best effort'.

A pipe provider might be able to guarantee a specific pipe which is easy if you control all the aspects of the pipe. For example, one time-slot on a GPRS link will give a fixed throughput. Lower than that it'll actually break and stop working altogether. Or a diginet link between two points (say Cape Town and JHB) will always have the same speed (clock), thus throughput. This is what TT implied. But the moment one of these becomes a link in a much longer chain, there can be no end-to-end guarantees.

So when you sit at your PC and you do a speed test, all you do is to mostly measure the throughput of the 'thinnest' pipe in the chain of pipes. Even if you know a specific pipe in the string is bigger than what you're measuring, it will not improve the test result as its impact will be very small.

You also need to understand the concepts above as these will impact your test results but often in a way you can't determine as it's 'hidden' in the system itself.

For example what were all the 'pipes' in the test, what was the latency and throughput of each, what was the contention on each of them and what was the overall management overhead of the end-to-end test.
 
So what is more important; latency or raw throughput?

As always, it depends :)

- If you need to download large files (say movies), raw throughput is king and latency is secondary. A satellite link (high bandwidth, high latency) would be perfect for the down-link.
- If you need interactive, real-time applications (telnet, on-line gaming, etc.), the inverse is true. Latency is suddenly much more important, probably more than raw bandwidth. A point-to-point Diginet link would work well here. Satellite would be disastrous!

Most people need a compromise though (some browsing, some downloading, some gaming, etc.) and if you chuck the need for mobility in, HSDPA is a very good choice with both decent latencies and more than decent throughput.

You can measure latency with an ICMP ping command, but keep in mind that you might not be using a packet size that's representative of the average packet size your apps are using. A 200 to 500 byte packet is probably more representative than the default 64 bytes.
 
Last edited:
I hope this is the correct thread top ask this, but can anybody explain (in semy laymans terms) what HSUPA is acually going to give us.

As far as I can see its pretty much faster ping times in the end.
 
I hope this is the correct thread top ask this, but can anybody explain (in semy laymans terms) what HSUPA is acually going to give us.

As far as I can see its pretty much faster ping times in the end.

Give me two minutes and I'll add it into the specification post above.

Basically faster downlink, but especially uplink speeds.
 
Top
Sign up to the MyBroadband newsletter
X