. 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 Corrupted packet issues in data communications, in particular, wireless networks, are inevitable. In contrast, a reliable communication system is a must. Meaning that the system has to make sure all the transmitted information are received properly without errors and losses. Therefore, since many decades ago, error packets along with their correction techniques have become a challenging topic to be solved until now. The traditional and common way to tackle these problems is either using Automatic Repeat reQuest (ARQ), Forward Error Correction (FEC), or hybrid ARQ (HARQ) technique. However, designing a reliable link communication with only ARQ or FEC is not enough. There are several reasons for this. First, ARQ introduces a delay in transmissions. The transmitter will re-send a packet when it gets the negative acknowledgment (NACK). It will re-send the packet over and over again until it gets its acknowledgment (ACK). As a consequence, retransmission can cause more delay, especially in bad wireless channels. Thus, ARQ is not recommended in wireless networks with a low signal-to-noise ratio (SNR). Second, FEC needs more computation for error detection and correction. Moreover, it brings redundant information in the packets and this can lead to ineciency in bandwidth usage. A new technique, called partial packet recovery (PPR), to reduce the retransmission was proposed in 1977 [1]. PPR exploits some useful information in partial packet to recover error bits. Since 1977, PPR has caught the attention of many researchers to explore more detail in PPR schemes. Thus, many approaches have been proposed. Some of them use the soft information at the physical layer to identify the error bits and pass this information to the higher layer for correction process [2, 3, 4, 5, 6, 7]. Other approaches do not use the soft information. Instead, they rely on the data-link layer for detecting and correcting the errors [8, 9, 10, 11, 12, 13, 14, 15, 1, 16]. Other alternative schemes utilize the spatial diversity in wireless to combine several versions of the same corrupted packet for correction process [17, 18, 19]. Finally, the recent solutions have been introducing the capabilities and opportunities of network coding for PPR scheme [20, 21, 22, 23]. This paper concerns about reviewing of all PPR protocol approaches in wireless networks. Our main contribu- tions in this paper are: ﬁrst, 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 classiﬁcation 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 direc- tion 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 e ciency. Various approaches in PPR have been proposed: some depend on the physical layer information to di erentiate 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, ﬁrstly, 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 deﬁnition, 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 a ect 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 ﬁnd 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 recov- ery 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 di erent 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 e ective and e cient 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 a ect the throughput by causing longer waiting time. As a consequence, it will reduce performance. Therefore, the cost of implementing PPR will overwhelm the beneﬁt 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 InformationPartial Packet Recovery Approach Checksum and Block-basedSpatial Diversity Network Coding FIGURE 2: PPR protocol classiﬁcation: some of the protocols are classiﬁed 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 conﬁdence 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 soft- decoding [2]. Soft-decoding can distinguish between error and corrected bits in PHY-layer and send its conﬁdence 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 conﬁdence values of packets to the data-link layer. However, in the current protocol of wireless systems, it is impossible. After calculating the conﬁdence 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 modiﬁcation 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 di cult 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 conﬁdence 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 conﬁdence 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 conﬁdence 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]. Spatial Diversity 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 trans- mitter, 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 ﬁrst 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 ﬁnd 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 o ers 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 ﬁnding 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 coe cient, 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 xiis original packet, miis encoded packet at the transmitter and m0iis received encoded packet at the receiver, where i1 . The receiver will get m0iand try to decode it, in order to recover xi. Let x0ibe the retrieved original packet after decoding using m0iandm00ibe re-encoded packet after encoding using x0iat the receiver. Encoded and re-encoded packets should be identical in network coding. Therefore, if the packet transmissions are received without error bits, then m0iandm00iare identical. In this case, a packet is said to be consistent when xi=x0iormi=m0i=m00i. 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 m01andm03. The encoded packets 101 111 100 011 CRCXXOKDecoder chooses a subset of received packets11 11 10 01m’1 Original packetCoded packetBit flippedm’3m’1m’2m’3(a)ACR: step 1 Decoder tries to guess original packets11 11 10 01m’1 Original packetCoded packetBit flippedm’3 10 10 11 01x’1x’2Guessed original packets (b)ACR: step 2 Decoder re-encodes the non chosen packet using the guessed original packets Original packetCoded packetBit flipped10 10 11 01x’1x’2 0 0 1 1m’’2 (c)ACR: step 3 Decoder compares the new coded packet with the received coded packet Original packetCoded packetBit flipped0 0 1 1m’’2 0 1 1m’2 0= ≠ ≠ = (d)ACR: step 4 FIGURE 3: Steps in algebraic consistency rule (ACR) check: ACR uses some properties of network coding for ﬁnding error locations and correcting the errors with multiple rounds of check mechanism. It consists of four steps, such as choose a subset of received encoded packets, guess the original packets, re-encode the non-chosen packet, and compare the re-encoded packets with the received encoded packets. [23] should cover all the valid and invalid packets. Secondly, the decoder needs to guess the original packet (e.g. x01and x02) by decoding using network coding scheme. Thirdly, the decoder must to re-encode the non chosen packet (e.g. m002) using the guessed original packets. Finally, the decoder can compare the re-encoded packet with the received encoded packets (e.g. compared m02andm002). If the comparison result detects the di erent bits, then those are the errors and their locations can be spotted. PARTIAL PACKET RECOVERY PROTOCOLS Since the ﬁrst PPR protocol was studied in 1977, PPR has caught many researcher attentions. This is because PPR o ers better performance in wireless networks. Moreover, it can exploit the partial packets and reduce the retrans- missions. 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 ﬁnd 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. FIGURE 4: Trend of PPR protocol: in two decades, there were approximately twenty-four PPR protocols have been proposed. Most of these protocol were deployed in the real hardware such as USRP, commercial WLAN cards, TelosB, B-MAC, and Texas Instrument CC2500. Only a few protocols were implemented in simulation. Table 1 provides the list information of PPR protocols along with their techniques and classiﬁcations. These clas- siﬁcations 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 be- tween 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 tech- nique. 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 classiﬁes 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 classiﬁcations. 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. ACKNOWLEDGEMENTS This work is supported in part by the German Research Foundation (DFG), within the Collaborative Research Center SFB 912 – HAEC.