================================

As mentioned in [Sec. \[sec:intro\]]{}, our high-level goal is to use the [*demand*]{} information available in the datasets to understand the [*deployment*]{} we need, i.e., how much computational capacity shall be placed within the network, and where. To this end, we perform three main steps:

1.  we design and perform a set of experiments measuring the computational load associated with different types of traffic, as detailed in [Sec. \[sec:sub-exp\]]{};

2.  we use the experimental data to train a [*model*]{} connecting the two quantities, as described in [Sec. \[sec:sub-learn\]]{};

3.  we exploit the model to estimate the computational capacity needed to serve the traffic we observe in our dataset, as discussed in [Sec. \[sec:sub-enrich\]]{}.

Experimental setup {#sec:sub-exp}
------------------

We focus on three different, highly representative types of traffic, namely, video streaming, gaming, and maps. For reproducibility purposes, we restrict ourselves to open-source programs, namely:

-   for video, the FFserver server and the VLC client;

-   for gaming, the Minecraft server and the corresponding Minecraft Pocket mobile client;

-   for maps, the OpenMapTiles server [@tiles-server], based on data from OpenStreetMap [@osm].

For our experiments, we use a testbed, composed of two computers – a client and a server – connected via 