# Time it takes to transfer a file to a client

#### SlurrerOfSpeech

Let's say I have a client that asks for a file from a remote server that then asks for the file from some other remote server (Let's say Azure Blob Storage, for example). Let's say that the file can be transferred from blob storage to the web server at 60mb/s and from the web server to the client at 40mb/s.

Client <==== T1=40mb/s ==== Web Server <===== T2=60mb/s ==== Blob Storage

Is my intuition correct that 40mb/s is essentially the total transfer rate, since the bytes are basically being produced faster than they can be consumed?

So, basically, the formula is like

• If T1 < T2, then T = T1
• If T1 >= T2, then T = T1 + T2
In the example I showed, let's say that the Client could directly get the file from Blob Storage at 50mb/s. Then I suppose this would be faster and cost less money.

Sorry if this sounds like a super-n00b question. It's only recently that I've dealt with these kinds of questions.

Related Programming and Computer Science News on Phys.org

#### anorlunda

Mentor
Gold Member
It depends on whether the two transfers are done in parallel or sequentially.

Internet transfer speeds are time variable. Also, data is transferred in packets, so the data rate for each packet is higher than the average for many packets including idle time.

In the end, it depends on how precise you want to be and how many complexities you want to consider. But for the simplest case, yes 40 is the correct answer.

#### Filip Larsen

Gold Member
I have no idea why you add two transfer rate.

If you have a chain of sequential transfers, then the total effective transfer rate for the client is in general limited to that of the smallest transfer rate.

#### SlurrerOfSpeech

I have no idea why you add two transfer rate.

If you have a chain of sequential transfers, then the total effective transfer rate for the client is in general limited to that of the smallest transfer rate.
Is there a theorem for this?

Staff Emeritus
Is there a theorem for this?
Not an named one, because it's obvious. Think about it in a non-computer setting. For example, if I have three piles of pebbles, A, B and C, and I can move pebbles from A to be at 1 pebble/second and B to C at 2 pebbles/second, how many pebbles can move per second from A to B to C? If I increase the B to C rate from 2 to a zillion, does that change the total rate at all?

#### SlurrerOfSpeech

Not an named one, because it's obvious. Think about it in a non-computer setting. For example, if I have three piles of pebbles, A, B and C, and I can move pebbles from A to be at 1 pebble/second and B to C at 2 pebbles/second, how many pebbles can move per second from A to B to C? If I increase the B to C rate from 2 to a zillion, does that change the total rate at all?
But let's say that the rates are

A -> B: 1 pebble/second
B -> C: 1 zillion pebbles/second
C -> D: 1 pebble/second

That's a different rate than if we change C -> D to be 1 zillion/second.

The formula for K piles with rates r0, ..., rk is complicated but it would involve summing the rates, for certain.

#### PeterDonis

Mentor
let's say that the rates are

A -> B: 1 pebble/second
B -> C: 1 zillion pebbles/second
C -> D: 1 pebble/second

That's a different rate than if we change C -> D to be 1 zillion/second.
No, it isn't. The rate of the whole process is the rate of the slowest transfer, as has already been noted. For example, you could have both B -> C and C -> D be 1 zillion pebbles/second; but if A -> B is 1 pebble/second, then the B -> C and C -> D processes will spend all but one zillionth of each second waiting for the next pebble, so they will still only be transferring one pebble per second. A process can't transfer pebbles if there are no pebbles in the pile it's moving pebbles from.

The formula for K piles with rates r0, ..., rk is complicated but it would involve summing the rates, for certain.
No, it wouldn't. The correct answer has already been given in #3 (and I stated it again above). It's not a complicated formula at all.

Staff Emeritus
That's a different rate than if we change C -> D to be 1 zillion/second.
Asz Peter said, no it's not. You might want to try it yourself on pencil and paper - what's in each pile at step 1, step 2, step 3.

#### Svein

So, basically, the formula is like

• If T1 < T2, then T = T1
• If T1 >= T2, then T = T1 + T2
If only it were that simple...
In real life you have additional delays such as:
• Congestion problems
• Store-and-forward delays
• "Light-speed" delays (the time it takes for a symbol to transverse a physical connection)
• etc.

#### Tom.G

But let's say that the rates are

A -> B: 1 pebble/second
B -> C: 1 zillion pebbles/second
C -> D: 1 pebble/second

That's a different rate than if we change C -> D to be 1 zillion/second.
Consider automobile vehicle flow on a highway, no side streets and no on or off ramps for your trip.
• Start of trip is one lane each direction
• Traffic is flowing at 30mph (50kph)
• using the rule-of-thumb for vehicle spacing of one car length for each 10mph of speed,
there will be about 300 vehicles per hour entering and leaving the roadway
• The highway now widens to three lanes in each direction
• Traffic speeds up to 60mph (100kph)
• Vehicles-per-hour is still 300 per hour because no more cars can enter from the one lane highway, there is no place for more vehicles to come from
• The next section of highway has an 80mph (130kph) speed limit
• There will still be only 300 vehicles per hour passing any point because there is no source for any more cars
Reading this over, the above is hard to follow. Here is a simpler example of grocery shopping in a supermarket.
• You enter to purchase only one item
• You get to the checkout cash register and discover there is a long line
• It doesn't how fast you can pick your item or how fast people can get from the cash register to the exit, you still have to wait for the slow checkout
Your data transmission and both of the above are 'sequential' or 'serial' processes, and are limited by the slowest step in the process. The slowest step is often referred to as the 'choke point' or the 'limiting process.'

Hope this helps.

Cheers,
Tom

#### Mark44

Mentor
Your data transmission and both of the above are 'sequential' or 'serial' processes, and are limited by the slowest step in the process. The slowest step is often referred to as the 'choke point' or the 'limiting process.'
This

Another term used is "bottleneck."

### Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving