# A Systematic Analysis of Narrowband IoT Quality of Service
## 4 Results
### Application Layer Performance: Data Rate  
The second application layer evaluation was focused on the data rates provided by NB-IoT under different signal situations. This parameter was especially relevant for continuous data streams. The measurement considered the application layer goodput, which was the amount of user data that could be transmitted per second, as well as throughput, which also included protocol overhead of lower layers. Different signal levels were simulated in 10 dB steps using the attenuator, and 100 packets were  
Figure 12: The total system latency as a function of RSRP signal level in the uplink and downlink direction for regular user data and exception reports.  
transmitted for each attenuation step, in both uplink and downlink, as well as for different packet sizes of 8 B, 64 B, 512 B, and 1024 B to simulate multiple use cases.  
Figure 13a illustrates the goodput for different packet sizes and signal levels in the uplink and downlink direction. The highest data rates were possible with large packet sizes due to the comparatively small overhead. In uplink direction, 22.4 kbps could be achieved for 1024 byte packets, while the downlink provided up to 22.8 kbps. The data rates remained nearly constant until about \(-115\) dBm RSRP, which allowed installation of NB-IoT UE in a wide variety of locations.  
Figure 13: Maximum NB-IoT data rates for various packet sizes and signal levels. (**a**) Goodput excluding protocol headers for different packet sizes. (**b**) Throughput including protocol overhead for different packet sizes. The ECL regions are marked in blue (ECL0), striped (ECL1), and yellow (ECL2).  
For smaller packets, the maximum goodput was significantly lower in both uplink and downlink direction. This was a result of the protocol overhead consuming larger portions of the total packet size. Furthermore, there was a large asymmetry between uplink and downlink data rates. This could be confirmed by analyzing the throughput, which consisted of the goodput plus the bandwidth consumed by the overhead:  
\[Throughput=Goodput*\left(1+\frac{Overhead}{Payload}\right) \tag{26}\]  
For NB-IoT, the following lower layer protocol headers must be considered: MAC 2 bytes, RLC 2 bytes, and PDCP 5 bytes [1]. For IP and UDP, which would normally consume 20 bytes and eight bytes, respectively, NB-IoT PDCP implements Robust Header Compression (ROHC) [24]. During signaling, a compression context was set up between UE and eNodeB, which reduced the size of the IP and UDP header to a minimum of two bytes. As such, the total protocol overhead was decreased to 11 bytes. Using Equation (26), the throughput was calculated and is shown in Figure 13b.  
The results showed a maximum throughput of 22.6 kbps in the uplink direction, which exceeded the limits of a single tone transmission. At the same time, this value was much lower than the multi-tone maximum of 62.5 kbps. In the downlink direction, the throughput of 23.0 kbps was well aligned with the theoretical limit of 27.2 kbps (see Section 2.3). The comparison with the goodput highlighted that for very small packets, the overhead was the most significant part of the physical data rate. For example, an 8 byte UDP packet experienced a total overhead of 11 bytes, or 137.5% of the payload. As such, transmissions of small packets (e.g., sensor data) could benefit from the non-IP optimizations of the NB-IoT standard, which further reduce the overhead.