# Semantic Distributed Data for Vehicular Networks Using the Inter-Planetary File System
## 7 Experimental Results  
In the experiments, the Go implementation of IPFS has been used, specifically the September 2020 release 0.7. The initial test consisted of the capture of traffic generated by a real IPFS node over a span of 8 h. The scenario setup involved a default IPFS installation running over a Ubuntu 18.04 quad-core computer with 8 GB of RAM and a 100 Mbps fiber-optic Internet connection. During the test time, the node had complete freedom to create temporary connections and converse with the rest of the network. In the eight monitored hours, the local node exchanged data with 673 different peers around the world. However, 75% of the messages were exchanged with just 10 of those peers, with more than 50% of the total data being exchanged with just two particular peers. The inbound traffic was moderately low, while the outbound traffic was residual. This is an expected result given that the test node had to receive numerous updates from other nodes, but it did not publish any content. See Table 1 for additional results. The objective of this test was to measure the network usage of an idle node and to corroborate the stability of IPFS. Note that, during the realization of this test, the global network was still in the middle of the process to migrate to the QUIC protocol, and the majority of the nodes of the global network still preferred to use TCP connections. For the rest of the experiments the setup was replaced by a private IPFS network, isolated from the global public network, formed by up to 30 nodes, each running a stand-alone Go-IPFS 0.7 client. The 30 nodes were built using Ubuntu 18.04 Docker containers. Each container was assigned a virtual IPv4, and connected to Docker virtual bridge. The containers setup and the virtual bridge were built over a single quad-core computer running Ubuntu 18.04 with 8 GB of RAM. The setup was limited to a maximum of 30 nodes to guarantee that the host computer did not run out of memory and processing power. In this setup, all the IPFS messages are exchanged in real-time. The performance of a Docker virtual network is only limited by the host CPU, with a measured end-to-end delay of less than 100 us, and a measured throughput of more than 1 million packets per second. However, in order to simulate real-life V2X conditions, during the following tests, the end-to-end delay and the maximum throughput of the virtual bridge were programmatically altered using Linux Traffic Control capabilities. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Measurement** & **Transmission** & **Reception** \\ \hline Total frames & 573,312 frames & 552,750 frames \\ Average frame size & 77 bytes & 153 bytes \\ Average frames per second & 19.0 fps & 19.2 fps \\ Average throughput & 12 kbps & 23 kbps \\ Maximum throughput peak & 462 kbps & 2.8 Mbps \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Results of running an idle IPFS node for 8 h.  
For the first test with the private network, all the nodes were set to perform the same role. The scenario tries to emulate a private network formed by several RSUs. All the connections during the test were stable with no congestion and no message loss. After the initial network discovery, all the nodes got connected to each other, creating a fully connected mesh of \(n*(n-1)/2\) P2P connections (where \(n\) is the number of nodes). While all nodes were idle, the measurements showed that the total number of frames transmitted in the network was small, with less than one frame per second per active connection. IPFS default configuration is set to support large networks formed by thousands of nodes, and the default maximum number of simultaneous connections that a node allows is considerably higher than the 29 connections created during this test. The data exchanged while the 30 nodes were idle were residual and used to keep the network alive. The typical actions that could cause an spike in network traffic are the publishing and fetching of content.