In this section, we analyze a festival dataset that will be utilized for our solution, and then we discuss which protocols would be suitable as a means of communication for ONs and their limitations. We also discuss a type of application that might benefit from the use of ONs and what communication patterns it implies. We then analyze existing mobility models and their drawbacks, and propose a novel mobility model better suited for approximating festival contacts.
3.2. Wi-Fi Direct vs. Bluetooth
Choosing one technology over the other implies making different sacrifices. Although Bluetooth has a better power consumption, this comes at the cost of a lower transfer speed. Moreover, Wi-Fi Direct has a larger range of transmission given optimal conditions, but the crowd present at a mass event such as a festival is far from optimal.
Wi-Fi experiences a considerable drop in performance in the context of crowded events [
2]. The authors have named this phenomenon “the effect of dense crowds”. They state that, because the Wi-Fi signals are mainly transmitted in the 2.4 GHz range (which happens to be around the resonance frequency of water), people might affect the transmission of these signals. Experiments have established that the human body can attenuate the signal, and the authors’ conclusions were that the Wi-Fi signal strength loss caused by the human body is stronger when a person is closer to an access point than further away [
15].
Furthermore, the Wi-Fi signal drops when receiving the signal from behind a person than receiving it in front, and smartphones carried inside trouser pockets are still able to communicate over a distance of up to 50 m, but they can sporadically lose their connection when the subjects move further away [
2]. Although these tests were not performed on Bluetooth, it is worth taking into account that Bluetooth also operates in the 2.4 GHz range, so there may also be some attenuation of signal in this case.
In light of these findings, the maximum ranges should be set lower than their current values. It is safe to assume a range of 5 m for Bluetooth devices and 30 m for Wi-Fi Direct devices. Although MobEmu nodes do not run over an actual network stack implementation, the comparison between Bluetooth and Wi-Fi Direct can be useful when generating contacts between people in a crowd. For the simulation to be more realistic, when using Bluetooth as a means of communication, a node should have an average of 5–7 contacts at a certain point in time, while Wi-Fi Direct allows for a higher number of contacts within a larger radius.
3.3. Communication Use Case at a Music Festival
When analyzing the mobility patterns that people attending a festival follow, we can observe that, during a concert, very few nodes change their position. Furthermore, when not attending a concert, people usually move from a stage to another, or go to the food court or other entertainment areas. We chose to focus on the former scenario because it poses a more significant challenge, since that is when the network is heavily loaded and barely works, resulting in poor connectivity and large delivery delays for festival attendees.
First of all, in order to create our festival mobility model, we need to address the way messages are generated during a simulation. To do so, we need to identify what applications would be relevant to the people attending a music festival. We propose such an application: a messaging app similar to WhatsApp, which could benefit from an opportunistic network through the use of an API.
In this use case, in terms of the communication pattern employed, participating nodes are more likely to send messages to the nodes in their social network than to any other nodes. Our proposal for the default method of generating messages during a simulation run using MobEmu is the following:
We had to modify the default method in order to better serve the communication pattern described earlier. First, we need to establish the concept of “chat pairs”. A chat pair is a pair of two nodes which attend the festival together and exchange messages while one of them is away. This behavior is implemented in the synthetic mobility model presented in the
Section 3.4. Moreover, each node has a number of friends that are eligible message destinations. The messages between chat pair nodes are generated more often than the messages between regular nodes, every 6 and 15 min, respectively. The new method consists of the following steps:
If the node is not part of a chat pair, pick a random message destination, the only constraint being that the destination has to be a friend;
For every chat pair, generate two messages, each message originating from one of the two pair members.
3.4. Simulating Festival Mobility Behavior
Before attempting to propose our own festival mobility, we analyzed existing solutions. One potential solution was PedSim (
https://github.com/chgloor/pedsim, accessed on 10 May 2021) in conjunction with the ONE simulator (
https://akeranen.github.io/the-one/, accessed on 10 May 2021), used in [
16] to simulate pedestrian mobility in an open square and a subway station. However, when comparing the existing solutions with the real-life traces that we analyzed (such as the Sonar Festival dataset), we found that the accuracy of PedSim was not sufficiently high. We wanted to have a better approximation of real movement at a festival, which is why we opted for creating our own mobility model, which we present here.
After conducting a thorough analysis of a real dataset recorded at the Sonar festival in Spain, we have concluded that it is best to create our own novel generator of contacts due to a couple of reasons:
Even after applying outlier removal to the Sonar dataset and grouping the nodes by location, we found it challenging to generate a close-to-reality trace due to the lack of location information; without any data regarding the vicinity of a node or its social ties, no strategy other than randomly generating contacts can be assumed to be better;
The validation of an opportunistic network algorithm relies heavily on how realistic the movement models used in the simulation are [
17]; therefore, it is of paramount importance to identify realistic mobility models in order to tailor an algorithm for the desired scenario and to later fine-tune it for better performance.
One can test an opportunistic algorithm in two ways, namely by using real mobility traces or a synthetic model. Both strategies come with their limitations:
CRAWDAD (
https://crawdad.org/, accessed on 10 May 2021) is an archive of wireless trace data publicly available to the research community; unfortunately, these traces are related to particular scenarios and can hardly be generalized for different use cases; moreover, there is only one festival trace available, but the data recorded did not suit our needs;
Many mobility models are based on the random movement of individuals such as the Random Walk model (where nodes move by randomly choosing a direction and speed) or the Random Waypoint model (where pauses are introduced between changes in direction or speed); however, there are also two mobility models, CMM [
17] and HCMM [
18], which are founded on social network theory and, therefore, closer to reality.
The Community-based Mobility Model [
17] (HCMM) is based on the observation that opportunistic networks consisting of mobile devices display mobility patterns based on human decisions and social behavior. Furthermore, it is crucial to understand that individuals move in groups and between groups. It is comprised of three steps: modeling social relationships, identifying communities, and groups in the networks based on step 1, and using an algorithm for the dynamics of the nodes based on social relationship strength.
The representation of social relationships is done with the use of a weighted graph that models the strength of the interactions between nodes. CMM uses a symmetric matrix called the interaction matrix, which contains information about the social degree of interaction between nodes, and is used to generate a connectivity matrix necessary for the second step. At step 2, a community detection algorithm is executed, which results in a network composed of different groups of nodes. After this process, each of the identified communities is randomly associated with a specific grid location.
The third step establishes how the nodes move across the simulation space. This is achieved by assigning a goal to each node. A goal is simply a cell on the simulation grid, which acts as a final destination, and it is selected by computing a metric called social attractivity for every grid cell and choosing the one with the highest value. This metric is measured as the strength of social relationships with the nodes within that cell. For this model to work, a social network is required as an input.
This Home-cell Community-based Mobility Model [
18] (HCMM) takes the CMM model one step further and introduces the idea that users are attracted by particular physical locations [
18], in which they tend to preferentially spend their time, such as the workplace, their home after work, etc.
CMM and HCMM serve as a great inspiration when implementing a mobility model. HCMM was the mobility model already implemented in the simulator used for this project, MobEmu. The shortcomings which led to a custom implementation of a mobility model, with the ideas of HCMM as a starting point, were that HCMM:
Has no support for a custom social network;
Measures cell attractivity differently than CMM—the social attraction towards a cell is evaluated based on the social relationships with nodes having that cell assigned as their home cell; the idea of a home cell is not relevant in a festival scenario, but it is of great importance when simulating a workday in a city;
Allows for a single group to be placed in a cell regardless of cell size;
Has no crowd density mechanism.
3.5. A Proposed Festival Mobility Model (FMM)
The model that we propose here borrows the concept of an interaction matrix from CMM. The matrix can also be derived from social investigation, besides generating it with social network models. In our case, this social information, which shows how many of a person’s Facebook friends have attended a festival, was gathered using a form with 67 valid answers. The survey asked participants what festivals they attended in the last year and, through Facebook check-ins, which of their social network friends also participated. The results of the survey show that the majority of people participating in this study have between 3 and around 50 Facebook friends that attended the same festival as them, as can be observed in
Figure 3.
The information provided by this form has been used as a pool of values when assigning the number of friends to a node. The weights of the interaction matrix have been generated randomly, but making sure a node is part of a custom-sized community. The second step of CMM has been skipped and the communities have been established along with the number of friends per node. It was assumed that a person attending a festival has around five close friends who form its community.
The reason behind choosing 5 as the average community size is the result of a study on human social behavior at large-scale events [
19]. The event where the experiment took place was an 8-day 6-stage music festival with 130,000 attendees. A part of this research was to model the crowd’s internal structure with the help of a community discovery algorithm. The groups are defined as sets of people that are frequently located in the same spatio-temporal bins. The model consists of directed graphs, with the weight of an edge being defined as “the number of co-occurrences of participant
A with participant
B divided by total number of occurrences of participant
A” [
19]. For an edge to be accepted as valid, a constraint was imposed, which specifies that the only links chosen were the ones that occurred in more than two different locations, with a weight of at least 0.5 [
19]. After employing a rewiring algorithm [
20] and performing 35 tests, the conclusions were that the average group size was 5 (with a standard deviation of 4.32) and the average number of links for a node was 3 (with a standard deviation of 2.60). A rewiring algorithm is the process of creating a randomly generated network from an existing network while preserving some of its topological properties, such as the degree of nodes, so one can focus only on certain aspects of the network design instead of dealing with the whole complexity of the system.
The groups are assigned randomly to a cell in the grid, but not without taking into account the density of the crowd. A crowd safety and risk analysis study [
15] conducted in 2019 shows that the upper limit for standing/viewing spaces is 5 people per square meter. The study also maps different densities of people per square meter. For this model, 4 ppsm (people per square meter) has been chosen as the upper limit for the most crowded areas at a festival, usually registered near the stage. 3 ppsm has been chosen as an intermediary density, as the distance to the stage increases. 2 ppsm will be the minimum density, used for the back rows of a crowd.
Another shortcoming of the implementation of HCMM, which emerges from the fact that a cell can host only one community, is that the members of that community are randomly placed in that cell, sometimes at distances that would not comply with a festival crowd distribution.
One important aspect of our proposed festival mobility model is the way it handles crowd distribution. First of all, depending on the position of the stage (assumed to be in the north of the grid), the model computes a maximum number of hosts per cell based on the three values for crowd density mentioned earlier. Moreover, it randomly chooses a cell for a group, without exceeding the maximum number of hosts allowed in that cell. Lastly, it generates coordinates for every host in a group. This process is done randomly, but only after further partitioning the cell, so the nodes of a group do not appear scattered across the cell. Depending on the dimensions of the grid, the area of the cell can be divided by its width or by its height. The model randomly places a maximum of two groups in the same partition, after the division of the cell area.
The results of this approach can be noticed in
Figure 4, which shows screenshots captured from the MobEmu simulator, where nodes with the same color are part of the same community.
Figure 4a displays community placement without partitioning the cell area. Some of the groups appear to be composed of nodes far away from each other, which is very unlikely in a festival crowd.
Figure 4b, which shows the case where the partitioning mechanism is employed, looks more similar to a real crowd distribution.
The model keeps the CMM and HCMM node categories, i.e., hosts and travelers. The hosts are the nodes belonging to a custom-sized community and might play the role of festival attendees, while the travelers are independent nodes, community-free, which might play the role of festival staff.
In terms of movement, a node can move by itself or can move along with its community. Given this behavior, three types of movement are distinguishable:
Move alone towards a target destination;
Move with the whole group towards a target destination;
Return to the community after having spent a certain time at the destination.
FMM has been configured to perform the first type of movement three times more often than moving an entire community with the help of a Zipf distribution of size 4. The reason behind this choice is that, during a short simulation (30 min–1 h), it is more likely that a festival attendee will move alone to the food court or the restroom area and then get back to the group rather than an entire group relocating.
As for the target destinations which drive the movement, we have identified two main categories: edge cells (assumed to be the food court area or restroom area) and friend cells (where determining the friend cells of a node is a process very similar to the one employed by CMM). For a given node, the process consists of the following steps:
For every cell on the grid, compute a metric called cell attractivity, defined as the sum of the social relationship weights of the nodes present in that cell with regards to the given node;
Normalize the sum by the total number of nodes present in that cell.
It is only natural that a node would choose as its target a cell where more friends will be. Another aspect of node movement is the time it would take for a node wandering away from its community to get back. FMM will pick a time between two ranges depending on the type of movement. For instance, a node moving towards a friend cell will be away from the community for a time interval of 10–20 min.
Given the fact that a festival stage is a crowded place, we have chosen a threshold that measures how many nodes are moving at every time instance t of the simulation. This limit is configurable and is currently set at 5% of the number of nodes in the simulation.
Thus, as shown here, the proposed festival mobility model generates the movements of nodes inside a given space. Then, based on the protocol that we want to test and analyze, we consider a contact whenever two nodes are closer to each other than the range of the short-distance protocol employed. The mobility model is therefore decoupled from the actual routing algorithm implementation, which comes on top of the contacts generated by the model. At each contact (per the model), the routing decision function is run on the two encountering nodes, thus deciding which messages are exchanged.
We performed a validation of our model using the Sonar festival dataset, in terms of similarity between number and duration of contacts, interactions, etc., which we wish to present in future work. We would also like to extend this model to be able to accommodate more stages, to implement conclusions found in real festival traces, and to support more types of node movement.