Partial Packets in Wireless Networks: A Review

. Data transmission in wireless networks is vulnerable to errors, due to the nature of wireless characteristics. As a result, corrupted packets are a common case in wireless data transmissions. Many techniques have been proposed to tackle these issues and one of the recommended techniques is the partial packet recovery (PPR) scheme. There are various existing PPR methods that have been proposed, in the last two decades, in wireless networks. In addition, the recent works have shown the possibility of network coding along with its capabilities in recovering the partial packets. This paper presents a review study of PPR approaches in wireless networks. We classify the approaches into several groups based on the soft information in the PHY layer. Furthermore, we describe the PPR techniques that have used in each of these groups. Our studies found that there are twenty-four protocols have been proposed using PPR to improve the performance in wireless networks.


INTRODUCTION
This paper concerns about reviewing of all PPR protocol approaches in wireless networks. Our main contributions in this paper are: first, we present and review in detail all approaches of PPR in wireless environments. In our studies, there are, at least, more than twenty-four techniques that have been proposed. Most of these techniques were deployed in the real devices such as Universal Software Radio Peripheral (USRP), Cisco Aironet, WRT54G Wireless Router, and several commercial wireless cards. Second, we make a classification of PPR protocols based on the used technique. A table of all PPR protocols with their techniques is presented in this paper. Finally, we give a future direction by pointing out the capabilities of network coding in the next PPR technique for reliable transmissions in wireless networks.
The rest of this paper is organized as follows. We describe the background and scope of partial packet recovery in Section d). Then, we present packet recovery in wireless networks in Section d). A discussion about partial packet recovery protocols is presented in Section d). Finally, we end the paper by presenting a conclusion in Section d).

BACKGROUND AND SCOPE
Partial Packet Recovery (PPR) is a technique which attempts to correct the error packet in wireless transmissions without retransmitting the whole packet, such as in the traditional way using ARQ. Instead, it optimizes the invalid packet, known as the partial packet, for the error correction process. The partial packet contains both the correct and incorrect bits with false cyclic redundancy check (CRC) code. Furthermore, PPR is based on the observation that in the partial packet, there is some useful information can be exploited. By implementing PPR in wireless communications, the number of transmissions is reduced. Therefore, PPR could improve the throughput. In addition, it can increase the energy efficiency.
Various approaches in PPR have been proposed: some depend on the physical layer information to differentiate the error symbols (e.g. a group of corrupted bits) to be re-sent, while others split the packets into segments and embed block checksums so that the receiver is able to recognize the error segments and re-send them. Due to the limitation of the physical layer information, other approaches rely on data-link layer to distinguish the error bits and correct them. The recent solutions have been proposed the capabilities of network coding in PPR.
Although many papers have been presenting the protocols in PPR, no paper talks about all the proposed protocols along with their features in details. Thus, a review paper in this topic is necessary for the future direction to research in PPR area. Also, the scope of this paper is limited to reviewing PPR protocols that have been proposed in the last two decades. Most protocols have been deployed with real devices. Only a few are evaluated and analyzed in simulation environments. Additionally, we focus on the latest approach in PPR with network coding.

PACKET RECOVERY IN WIRELESS NETWORKS
In this section, we describe the importance of partial packet recovery in wireless networks. However, firstly, Subsection d) is going to begin this section by presenting the error in wireless networks along with its error control. Secondly, Subsection d) continue the section by giving the details of partial packet recovery. Next, Subsection d) provides a spatial diversity perspective in wireless networks and partial packets. Finally, Subsection d) ends this section by relating network coding to partial packet recovery issues.

Error Control
Due to the nature of wireless channel, packet errors has become one of the inevitable topics that need to be tackled in wireless telecommunication systems. Errors in packets are caused by signal impairment, meaning that the sent signal at the sender is not the same as the received signal at the receiver. There are several causes that produce impairment in wireless transmissions [24,25]. For example, attenuation, that is the signal strength goes down with distance when travels through a medium transmission, can introduce bit errors. A weak signal is vulnerable with noise and needs to maintain its strength higher than noise, otherwise, the receiver cannot detect and interpret the signal correctly. Noise, by definition, is undesired signals that are added between transmission and reception. Noise, as well, is another reason for impairment. Another example, that causes errors, is delay distortion. When a sequence of bits is being transmitted, the bits need to arrive at the receiver in the right order. If a delay happens, it may affect the bit order at the receiver and can cause inter-symbol interference.
Automatic-repeat-request (ARQ) and forward-error-control (FEC) scheme are the two common techniques that have been implemented for controlling error and improving the quality transmission in wireless networks [26]. FEC uses error-correcting codes to detect and correct errors. Whenever the receiver notice that there is an error, it will try to find its location and correct the error. Meanwhile, in ARQ, a good error detection code is used. The receiver can only detect the presence of error without being able to correct it. For correction of the corrupted packet, the receiver will send a request to the sender to re-transmit the packet. The sender will always re-send the requested packet until the receiver gets it without errors. The latest scheme, that involves ARQ and FEC, is Hybrid-ARQ (HARQ) which is a combination of both of them. In HARQ, a subsystem of FEC is placed in ARQ system. The purpose of FEC in this design is to cut the number of retransmissions down by correcting the errors. As a result, the throughput can be improved.
However, using ARQ, FEC or HARQ is not enough. Wireless networks have unstable link condition and packet losses are the common case [27,28]. In fact, Cabrera et al [22] showed that for 54 Mbps in a multicast transmission, 46% of the received packets contain errors. The authors conducted the experiment using a Raspberry Pi 2 with IEEE 802.11g protocol and a laptop that is connected, wirelessly, to Linksys WRT54GL Wireless Router to investigate the behavior of wireless networks. It has been observed that in some partial packets, i.e. packets consist of bit errors and have false cyclic-redundancy-check (CRC), there is some useful information which can be used. Therefore, the recovery of partial packets may improve the throughput of wireless networks and decrease the number of transmissions.
FIGURE 1: Packet transmissions in wireless communications: packet contains error bits and has false CRC status is known as the partial packet, meanwhile packet with no error and has correct CRC status is called the valid packet. PPR exploits partial packets that have some useful information to recover the errors.

Partial Packet Recovery
In wireless data transmissions, there are two kinds of packets, namely a valid packet, and an invalid packet as shown in Figure 1. The valid packet is a packet that has the correct cyclic redundancy code (CRC) status. Before sender transmits packets, it will put a CRC code, a mechanism for error detection, to each packet. Then, the receiver needs to make sure that all the packets are error-free by checking the CRC status of each packet when it receives the packets. Meanwhile, invalid packet, known as the partial packet, is a packet that contains error and it has false CRC status. For preventing the error bits to be passed to the higher layer (e.g. data link layer), invalid packets will, mainly, be dropped at the physical layer in the standard protocol of wireless communications. The number of bit errors in partial packets is different and it depends on the channel conditions. However, most of the time, partial packets contain some useful information and it can be exploited to improve the network performance with partial packet recovery (PPR) schemes [1].
PPR is more effective and efficient in wireless networks than in wired network cases. In fact, PPR may be useless in wired networks. There are several reasons for this issue [28]. First, link communications in wired networks are more reliable than in wireless networks. Therefore, the error rate is lower in wired than in wireless. Moreover, the error in wired networks is, mainly, caused by the congestion at intermediate links. As a result, wired network transmission comes with all of bits or nothing, meaning that receiver at the destination can only receive all bits of packets or none from the sender. This reason makes PPR is suitable in wireless networks where the error rate is higher and partial packets are present. Second, PPR introduces, in main cases, overheads. These overheads can affect the throughput by causing longer waiting time. As a consequence, it will reduce performance. Therefore, the cost of implementing PPR will overwhelm the benefit it brings.
Partial packet recovery (PPR) in wireless networks has been studied in the last two decades and many techniques have been proposed. In general, PPR methods are categorized into two main groups namely PPR with PHY-layer information and PPR without PHY-layer information, respectively.

PHY-layer Information
Non PHY-layer Information

Partial Packet Recovery Approach
Checksum and Block-based Spatial Diversity Network Coding FIGURE 2: PPR protocol classification: some of the protocols are classified to either PHY-layer Information or Non PHY-layer Information. Also, there are several techniques in Non PHY-layer Information group, such as checksum and block-based, spatial diversity, and network coding.

PPR with PHY-layer Information
The concept of this solution is based on the use of soft values from the physical layer. A confidence measure of 0-1 in received data bits is computed by PHY-layer. These values are used in decoding and its usage is normally called softdecoding [2]. Soft-decoding can distinguish between error and corrected bits in PHY-layer and send its confidence values to the upper layer (e.g. data link layer). Then the upper layer will send a request for retransmission to the sender. This retransmission request is only for the part of packets that contains error bits. In other words, the sender will not send the entire packet but only send the error part of the packets. PPR with PHY-layer Information (PLI) requires physical-layer to pass the confidence values of packets to the data-link layer. However, in the current protocol of wireless systems, it is impossible. After calculating the confidence values, the physical layer will not be able to send it to the upper layer and drop them. Therefore, it becomes challenging to implement PPR with PLI in the current wireless standard protocol without modifying the physical-layer because it needs modification on the hardware level.
The limitation of accessing physical-layer in standard commercial WiFi hardware, such as Atheros, Broadcom, Realtek, and Intel, makes PPR with PLI difficult in deployment. Thus, most of the implementations are deployed with Universal Software Radio Peripheral (USRP) devices. In fact, USRP is a common real device used for implementing new design protocols at the physical layer. Proposed schemes of PPR with PLI, for instance: PP-ARQ [3], MIXIT [4], SOFT [2], and CodeRepair [5], have been deployed with USRP devices [23].

PPR without PHY-layer Information
In this approach, the confidence value is not used. Instead, PPR without PLI optimizes the data-link layer to recover of partial packets. There are several reasons for not using the confidence value. For example, to get its value, a high computation is needed and it takes resources and times. Moreover, it is, currently, impossible to send the confidence value to the upper layer without modifying the standard protocol. Therefore, PPR with PHY-layer information cannot be deployed in the current commercial wireless cards. In contrast, PPR without PLI is, easily, implemented using some of the commercial wireless cards. However, it needs to have access to the data-link layer and it can be performed by tweaking the driver of wireless cards at the software level. Many solutions of PPR without PLI have been implemented in actual 802.11 networks with standard commercial WiFi hardware [8,9,10,11,12,13,14,15].
In wireless networks, a node may have two or more antennas. For example, one antenna is responsible for transmitting and another antenna is for receiving data. In fact, two or more antennas could be dedicated only for transmitting or receiving. Spatial diversity is a common technique for combating fading issues. It can be implemented at the transmitter, receiver, or any node that has multiple antennas [29]. For instance, multiple input multiple outputs (MIMO) is one the spatial diversity implementation. MIMO requires multiple antennas on both sender and receiver. Another implementation of spatial diversity is known as cooperative communication [30,31] or virtual MIMO. In cooperative diversity, the sender can select on the near relays to help to transmit its data. The relay selection is based on the channel conditions and its performance. Thus, the sender has more options in choosing the relay for transmissions. However, most of these works in [30,31] is only theoretical with no implementation or experimental results.
Spatial diversity and partial packet recovery (PPR) are similar. Both of them are trying to combine something to improve their performance. For example, spatial diversity combines the signals at the physical layer meanwhile PPR combines multiple versions of the same coded packet at some higher layer [28]. Several protocols of PPR exploited spatial diversity have been proposed, such as SpaC [18], MRD [17], and Relay-Assisted [19]. In addition, some investigations and analyses using spatial diversity for partial packet have been presented in [29,30,31,32]

Partial Packet Recovery and Network Coding
The first work, implemented network coding for partial packet recovery and called Packetized Rateless Algebraic Consistency (PRAC), was proposed by Angelopoulos et at [20]. They utilize one of the network coding properties, which is the consistency rule, to recover error bits in partial packets. The key to this protocol is the use of algebraic consistency rule (ACR) check. ACR is able to find the location of error bits and correct the errors. The correction process involves multiple iterations of ACR. This work showed the capability and possibility of network coding in PPR problems. In fact, network coding offers better performance than the non-network coding approaches in recovering the error bits in partial packet issues.
Since then, several protocols involved network coding for PPR have been proposed. For example, PPR-CS in [21] combines random linear network coding and compressive sensing. The authors retrieve error bits in partial packets by solving a set of sparse recovery (SR) problems. An algorithm, which is proposed by Candes and Tao in [33] and based on sparse recovery, is used for error correction. Another protocol is DAPRAC [22], which is an improved version of PRAC. DAPRAC enhances the error correction process in PRAC. It uses a brute-force method in correcting errors by performing the permutation of corrupted bits. As a result, DAPRAC could reduce the error correction time in PRAC. The latest protocol of PPR with network coding, called S-PRAC and proposed in [23], focuses more on very noisy wireless channels. S-PRAC is another version of DAPRAC. However, S-PRAC is superior to DAPRAC in noisy channel conditions. It elaborates the packets into segments to improve the time in finding the error locations and correcting the error bits. Therefore, S-PRAC is faster than DAPRAC when the number of errors is high.

Overview of ACR Check
Algebraic Consistency Rule (ACR) check is a technique that plays very important role for recovering partial packet using network coding. This technique exploits one of properties in network codes which is the consistency rules. When the original packets are coded and decoded with the same coding coefficient, some people called it coding vector, the encoded and re-encoded packets will be always the same according to algebraic rules. If they are not the same, we can assume that the packets contain error bits. With this ACR check, we can locate the error bit positions in the packets. In addition, we are able to distinguish between the valid and invalid packets. Furthermore, ACR check can be used in error correction process.
ACR check illustration is shown in Fig. 3. Assuming that x i is original packet, m i is encoded packet at the transmitter and m i is received encoded packet at the receiver, where i ≥ 1 . The receiver will get m i and try to decode it, in order to recover x i . Let x i be the retrieved original packet after decoding using m i and m i be re-encoded packet after encoding using x i at the receiver. Encoded and re-encoded packets should be identical in network coding. Therefore, if the packet transmissions are received without error bits, then m i and m i are identical. In this case, a packet is said to be consistent when x i = x i or m i = m i = m i . Particularly, if the packets are not consistent, errors should have been present in the packets.
Moreover, ACR check consists of four steps and it happens at the receiver side. These steps can be seen in Fig. 3 [23]. Firstly, it chooses a subset of encoded packets. In this case, the decoder takes m 1 and m 3 . The encoded packets should cover all the valid and invalid packets. Secondly, the decoder needs to guess the original packet (e.g. x 1 and x 2 ) by decoding using network coding scheme. Thirdly, the decoder must to re-encode the non chosen packet (e.g. m 2 ) using the guessed original packets. Finally, the decoder can compare the re-encoded packet with the received encoded packets (e.g. compared m 2 and m 2 ). If the comparison result detects the different bits, then those are the errors and their locations can be spotted.

PARTIAL PACKET RECOVERY PROTOCOLS
Since the first PPR protocol was studied in 1977, PPR has caught many researcher attentions. This is because PPR offers better performance in wireless networks. Moreover, it can exploit the partial packets and reduce the retransmissions. Therefore, over the last two decades, at least twenty-four PPR protocols have been proposed. Most of these protocols were deployed in the real hardware such as USRP, PC computer with commercial WLAN cards, wireless router, TelosB, B-MAC, and Texas Instrument CC2500. Only a few protocols were implemented in a simulation environment. Also, IEEE 802.11 and 802.15.4 were, commonly, used for the network deployments. Fig. 4 presents the research trend in PPR protocols from the year 2005. It is shown that almost every year from 2005 to 2019, at least one PPR protocol was proposed. In 2012 and 2015, there were three protocols that have been designed. The latest protocol in 2019 was using network coding to find the error bits and correct them. This means that researchers consider PPR protocols to be a solution for combating error in wireless transmission. With this statistic, we can predict that PPR will keep being studied in the next years or decade.  Table 1 provides the list information of PPR protocols along with their techniques and classifications. These classifications based on the used technique and the requirement of soft information at the PHY-layer. Protocols, such as SOFT, PP-ARQ, MIXIT, CodeRepair, Smart-Pilot, and SMR, need the soft information for identifying the error bits and send this information to the upper layer (e.g. data-link layer) to be processed for recovery scheme. Meanwhile, some protocols do not need the soft information. Instead, they utilize the data-link layer capabilities to distinguish between the correct and error bits in partial packets. Additionally, these protocols can be categorized into some groups, for instance, checksum and block-based group, spatial diversity group, and network coding group. Protocols like Seda, FRJ, Maranello, ReSel, Green-Frag, H-Seda, are checksum and block-based group, while SpaC, MRD, and Relay-Assisted are spatial diversity group. The recent protocols, such as PRAC, DAPRAC, PPR-CS, and S-PRAC, are network coding group. However, some of the protocols are combined group. It means they use a combination of technique between groups. For example, S-PRAC combines network coding and checksum with block-based technique.

CONCLUSION
This paper presents a comprehensive review of PPR protocols in wireless networks that have been designed and proposed in the last two decades. There are at least twenty-four protocols that exist and have been studied. Most of these protocols are being deployed in real hardware. Furthermore, the paper classifies the protocols to some groups based on the need of soft information at the PHY-layer and the used technique in error detection and correction process. These groups are PHY-layer information, non-PHY-layer information, spatial diversity, checksum and block-based, and network coding. In addition, Table 1 summarizes the PPR protocols along with their techniques and classifications. In summary, from the data statistic shown in Fig. 4, we can make a prediction that research in PPR topic will keep being studied in the next years and still being interested by the researchers.