# A Systematic Analysis of Narrowband IoT Quality of Service
## 3 Experimental Setup and Methods
The measurements were performed in a public NB-IoT network in Germany, which was installed as a guard-band deployment in Band 20 (800 MHz). All measurements were conducted indoors with a Non-Line Of Sight (NLOS) connection to the eNodeB. The modem was kept stationary during the measurements. Since the modem implemented a full network stack, all IP connections were created between the whitelisted server and the modem itself. As such, the modem served as the source for all uplink packets, while the whitelisted server was the source for all downlink packets. Two groups of experiments were performed: physical and application layer QoS measurements. * In the first group of measurements, the physical layer QoS was analyzed using the downlink parameters provided by the NB-IoT modem. For each 5 dB attenuation step, 30 UDP packets were transmitted via the user plane both in the uplink and downlink direction. The packets were identical in the uplink and downlink and included UDP, IP, PDCP, RLC, and MAC headers. Each packet carried a 27 byte ASCII payload that was comprised of the following elements:
* An indicator for uplink or downlink transmissions
* A sequence number, which was incremented by one for each packet
* The current attenuation step in dB
* A timestamp in milliseconds For each transmission, all available QoS parameters were collected along with the timestamps of both endpoints. Between each measurement point, a delay was introduced to prevent two measurements from interfering with each other. * The second group of measurements was conducted to examine the application layer QoS. There were two transmission categories that covered most IoT use cases:
* Uplink and downlink transfer of small, individual packets (e.g., sensor data) with a focus on latency
* Uplink and downlink transfer of a continuous data stream (e.g., a software update) with a focus on throughput The first measurement employed the previously acquired packet timestamps to analyze the total system latency for individual packets at varying signal levels, which were simulated using the step attenuator. This allowed identifying conditions that significantly affected the QoS. In the second measurement, the maximum data rate of NB-IoT was evaluated in different coverage situations, which were also enforced using the attenuator. The measurement employed UDP, which is a common protocol in IoT applications and lacks mechanisms that could influence the
measurement like congestion and flow control. The following parameters were adjusted to evaluate a wide range of potential use cases:  
* Signal level (10 dB steps)
* Packet size (8 B, 64 B, 512 B, 1024 B)
* Uplink and downlink direction  
For each combination of attenuation step, packet size, and direction, 100 UDP packets were sent to simulate a continuous data transmission. Since the Exelonix NB | DEV module imposed a packet size limit of 237 bytes and restricted the packet rate, the measurement was conducted using the PyCom GPy 4 NB-IoT modem [22]. The NB-IoT standard offers optimizations for non-IP communication, which reduce the protocol overhead by omitting IP and UDP headers. At the time of writing, these optimizations were not publicly available, so only IP-based transmissions were evaluated.