## 2 Background  
1). Network coding  
Network coding [10] is a way to improve the performance of wireless networks. This method can enhance network throughput and network bandwidth utilization, balance network load and so on. In wireless transmission, network coding reduces the total number of transmission of nodes by coding to increase the transmission capacity of network and obtain higher network throughput [11]. Network academia has done a lot of research on effective network coding. In these researches, COPE is a typical network coding algorithm for wireless network environments [12]. COPE is based on the network coding theory, whose idea is to raise the amount of information of a packet. In COPE, the routers select the packets that can be encoded together and \"merge\" them together. \"Merge\" refersto a coding way that can raise the amount of information of a packet. Merging the packets from different nodes can significantly improve the network throughput. The principle of the network coding strategy can be illustrated by the following two typical models, \"Alice-Bob structure\" and \"X structure\" [8]. An \"X structure\" model is shown in Figure 1, in which the node X will forward the packet Px to the node Y through the router R, and the node M will forward the packet Pm to the node N through the router R. In general, the process is as following: X transmits Px to R, and then R stores Px and transmits it to Y; M transmits Pm to R, and then R stores Pm and transmits it to N. In the process, the total number of transmission is four. If a network coding scheme is applied to the transmission process, when X broadcasts Px to R, meanwhile N also receives Px; when M broadcasts Pm to R, meanwhile [PERSON] also receives Pm. After receiving Px and Pm, R will perform XOR on both them and broadcast the result to [PERSON] and N. Then [PERSON] performs XOR on the result and Pm received before, and gets Px that it should receive. Likewise, [PERSON] can also get Pm which [PERSON] sends to it. However, in this process, the total number of transmission is only three. The other model, \"Alice-Bob structure\", as shown in Figure 2. The node [PERSON] will forward the packet Pa to the node [PERSON] through the router R, and the node [PERSON] will forward the packet Pb to the node [PERSON] through the router R. Usually, the transmission process is as following: [PERSON] transmits Pa to [PERSON], and then [PERSON] stores Pa and transmits it to [PERSON]; [PERSON] transmits Pb to [PERSON], and then [PERSON] stores Pb and transmits it to [PERSON]. In the process, the total number of transmission is four. If a network coding scheme is used, the situation will be improved. [PERSON] transmits Pa to [PERSON] and [PERSON] also transmits Pb to [PERSON]. Then [PERSON] performs XOR on Pa and Pb, and transmits the result respectively to [PERSON] and [PERSON]. [PERSON] will get Pa by performing XOR on the result and its own Pb. Likewise, [PERSON] will also get Pb. In the whole process, the total number of transmission is only three. Through decreasing the total number of transmission in a network which includes \"Alice-Bob structure\" or \"X structure\", the low transmission delay and energy consumption and the high throughput can be obtained. Figure 1: Illustration of “X structure” network coding. (**a**) Transmission without network coding; (**b**) Transmission with network coding. 2). COPE made the following main contributions [13]:  
1. It put forward a mechanism to monitor network coding opportunities. The mechanism uses the broadcast characteristics of wireless network to monitor the information of neighbor nodes and obtain the number of packets owned by the neighbor nodes. Then it determines whether to encode the received packets. It can maximize the amount of data in one transmission under ensuring that the neighbor nodes can completely decode and obtain the packets that they need. 2. It put forward an opportunistic coding mechanism. Whether a routing node encodes the received packets mainly depends the principle of coding.