# Modeling concurrent internet users

I'm feeling generous in the new year and want to open my Wifi connection to the public. I want to estimate the effect that $N$ additional users on my router would have on download times. In other words, how does my waiting time for an average piece of data degrade as the number of users increases?

To keep things simple I've formalized the problem in the following way:

N: the number of users.
B: the bandwidth I have (e.g. 1024 KB/s).
D(x): the distribution of file sizes (for simplicity sake, I'm going to assume that each piece of data is a file $x$ KB large).
I(y): the distribution of interval between requests in seconds
WT: denote the waiting time in seconds for a file.

Now I know that in the real-world a user makes parallel requests, but for this particular version of the problem a single user will only issue requests in sequence.

My question is: what is E[WT]?

For example, if $N = 1, E[WT]$ is simply $E[D(x)]/b$.

But for $N = 2$, I get all confused because the users could have overlapping requests that could affect each others waiting time, and subsequently, $I(y)$.

How do I model this problem? What branch of mathematics is suitable for it?

-
At a glance, this looks to me like it is related to the planning/scheduling area of Mathematical Modeling. Perhaps Brucker's "Scheduling Algorithms" (2004) or Parker's "Deterministic Scheduling Theory" (1995) would be reasonable places to start. – Benjamin Dickman May 3 '13 at 7:01

If the idea is to have a toy model to "start getting your hands dirty" and gain some experience in model creation and analysis, then I can see why you would start with this particular setup. If the goal is to end up with a more refined model that gives an acceptable representation of what happens with real networks, then I am puzzled by your initial choice.

As a prelude to such a more refined model, I would analyze the case of one user issuing different requests over a span of time that was less than a day (one to eight hours, depending on the kind of user). I would have the requests overlap, so that a user could request one or more files while one is already downloading. To make things simple, leave latency and other timing issues aside and assume the router deals with passing packets to you using a FIFO queue mechanism, with whatever parameters you like for the queue. Then you can try various distrbutions to guess when the last packet of each file arrives.

The benefit of this model is that it is readily adaptable to many users: just change the distribution of requests I(y). You can also add other features to see how wait time is impacted (Hint: once you reach over 75% continuous capacity, not much additional impact will be felt).

I do not presume to know the literature to give you good recommendations; as a start though, I recommend books on queueing theory and network/communication protocol design. I recall Tenenbaum as an author on engineering texts for design of computer hardware and networks; his bibliography might be of some use.

Gerhard "Anyone Remember Gopher And WAIS?" Paseman, 2013.05.02

-
I'd like to treat this more as a math problem than a networks/queuing problem that's supposed to emulate a real-world scenario. I want to know how to model the particular problem as stated. I'm struggling particularly with the fact that I(y) changes with multiple users, because there could be overlapping requests that affect waiting time. – Andy May 2 '13 at 21:22
What happens in the real world is that the information is sent as packets to the various recipients, assuming some variant of TCP/IP is being used. As a simple case, model two requests for files of different sizes requested at slightly different times. If the requests were simltaneous and the file sizes the same, the wait time would double in an idealized situation. Since the requests are offset, the wait time for each is increased by the amount of time the pipe needs to be shared. After doing two requests, try three. Gerhard "Also Look For Bandwidth Graphs" Paseman, 2013.05.01 – Gerhard Paseman May 2 '13 at 21:53