New jitter-aware network coding approach for packet selection in wireless mesh network using Jacobsen algorithm

Network coding (NC) is an approach for increasing the throughput of communication networks. NC has been derived from the idea of combining packets and forwarding them to achieve higher throughputs. From the very beginning, NC has attracted the attentions of scholars since they could improve the throughput of wired networks. Previous works have focused on the improvement of network throughput. Some methods add artificial delay to send packets. The methods are used in order to gain coding time and to increase throughput but they could not be used in immediate applications. However, early packets dispatch or adding delay to packets, for increasing coding time, can influence on the jitter of sent data. On the other hand, jitter is an important parameter in determining multimedia broadcasting time. Unlike previous methods, this paper provides a jitter-based coding algorithm using Jacobsen method. In the proposed method, the selection priority is based on packets jitter so that a packet with the minimum jitter is considered as the first priority for coding. Related computations are performed through Jacobson algorithm. According to simulation results, selecting a proper coding pattern for jitter can improve jitter by 30% while the throughput of this method shows no considerable change compared with that of available methods.


Introduction
Network coding (NC), introduced by Ahlsewede et al. (2000), is an approach with for increasing throughput of communication networks.From the very beginning, NC attracted the attentions of all researches who were trying to improve the use of wired and wireless networks resources.Before NC approach, the role of intermediate nodes, like switches and routers, was only to forward packets to their destinations.NC theory encourages the intermediate nodes to forward the packets and to combine packets with different sources before forwarding them, which in turn increases network throughput.Fig. 1 illustrates the process of network coding in wireless networks using a simple example.The brilliant results of COPE attracted the attentions of many scholars to network coding idea so that a number of them tried to improve COPE performance.In a method developed by Zhao and Médard (2010), after the random selection of every virtual queue, the initial packer does not select it for coding with the sent packet, as they believe that this loses the time for coding the initial packets of the virtual queue.In other method developed by Omiwade et al. (2008), the receivers can save temporarily the coded packets in order to capable of decoding the considered packets in future.Moreover, the other method developed by Dong et al. (2007), the coding process of COPE is used.

P1
Previous works have mainly focused on throughput improvement (Katti et al., 2006).Available methods, e.g.Huang et al. (2008), added artificial delays to packets in order to gain time for coding and to increase throughput while the methods cannot be adopted in many immediate applications.However, early sending of packets or adding delays to them, aimed at gaining more time for coding, can influence on the jitter of sent data.On the other hand, jitter is an important parameter in determining multimedia broadcast time.To solve the problem, solutions such as Chen et al. (2012) make a tradeoff between throughput and jitter.In other method developed by Zhang and Qian (2011), delay is added to packets in order to gain time for coding the packets but this method tries to adopt PNCP model in order to control the applied delay.Ahlswede et al. (2000) introduced DNPGD coding model for delay decrease purposes.In this model, the total delay applied to a forwarding packet is used in coding process.This method works as follows.First, the expected delay for each flow packet is calculated and then, the flow delay of every packet is calculated.Then, the calculated delays are compared with each other in order to decide that whether more delay can be added to the packet in order to create more coding time.
In this paper, we concentrate on introducing a coding method for improving jitter parameter.Unlike previous methods with the focus on throughput, in the proposed method, the selection priority of packet is based on jitter so that a packet with the minimum jitter is the first priority for coding.Related calculations are carried out by Jacobsen algorithm.Fig. 2 illustrates the influence of jitter average-based coding algorithm selection.In this figure, it is assumed that nodes A, B and C can forward packets P1, P2 and P3 to D, E and F, respectively via relay node R. Node R can code packet P1 with two coding models: To select coding model, node R calculates the current delay of both packets.Then, based on the calculated delay, it calculates the current jitter average of both flows to which packets P2 and P3 belong.The packet with the minimum effect on average jitter will be considered as the preferred packet for coding and node R will use that coding model.Before discussing about the proposed algorithm, we study the process of calculating jitter.

Fig. 2. An example for jitter-based model selection
The structure of this paper is as follows.Section 2 discusses the primary concepts of network coding (NC), quality of service (QoS) and reviews previous works on the selection of coding model and QoC-aware coding.In section 3, the proposed algorithm is explained in detail.In addition, the way of calculating distributed end to end delay in every node is discusses and then jitter (variation of delay) is calculated.Section 4 evaluates proposed methods and discusses results.Section 5 concludes the paper and presents suggestions for further studies on this field.

Related Works
Today, Internet offers many services to its clients but suffers from great disadvantages.Despite the fact that network routers can receive and process input packets, they cannot assure the safe delivery of the packets to destinations.Regarding the ever-increasing use of Internet service especially its importance as a tool of developing global trade, many attempts are being accomplished to maintain QoS in Internet.IETF introduces different models and mechanisms in order to assure the level of QoS requested by clients.You may find some of the most important models such as RSVP (resource reservation protocol), differentiated service, MPLS, traffic engineering and constraint-based routing.
There are a number of parameters including throughput, delay, jitter and loss used to determine QoS in network.During queuing and buffer delay, the sequenced packets of the same traffic flow experience different delays, which create jitter.In addition, jitter is created for another reason: Different packets of a traffic flow may be sent to destination after routing via different physical routes.This creates jitter in the delivered packets to destinations.

Network Coding (NC)
Wireless networks have throughput and scalability limitations as they are susceptible to noise and have a distributed nature.Coding idea, proposed by Ahlswede et al. (2000) shows how NC can promote the throughput of networks, especially wireless networks.Katty et al. (2008) introduced the first practical coding system for multi-step wireless networks.This idea combines unicast flows packet to increase throughput.COPE idea consists of three fundamental phases: opportunistic hearing, opportunistic coding and learning neighborhood status.This method uses a two-stepped structure for coding and decoding purposes where the coded packets should be decoded one step beyond the coder node.The following figure illustrates model selection in COPE method.First, the packets of each flow within coder node are placed in virtual queues based on their next step.In this model, every queue has only one packet.During the process of selecting coding pattern, packets are picked up from the start point of every queue and their coding condition with the encoded set is evaluated.Every node uses a random permutation for selecting queue and evaluating the coding condition of related packets.This process is repeated for every forwarding step.COPE coding assumes the followings: In order to code N packets with each other the following conditions should be met: Pi is the extent of probability to which the next step node may hear packet i. PD=P1×P2×…×Pn-1. (1) The probability of decoding the main packet in the next step node is equal to the probability of hearing previous n-1 packets coded with the considered packet.If after the Xor of the n th packet the PD value for all n nodes of the next step is greater than a threshold value (G>0.8), the necessary condition for the Xor of the n th packet will be met.The brilliant results of COPE have attracted the attentions of scholars to NC so that a group of them tried to improve COPE performance (Dong et al., 2007).According to Dong et al. (2007), following the random selection of every virtual queue, its first packet is not selected for coding forwarding packet as they believe that this loses the time required for coding the first packets of virtual queues.For the methods developed by Zhao and Médard (2010) and Omiwade et al. (2008), receivers can temporarily save the coded packets in order to become able to decode a considered packet in future and the coding process of COPE is used.
Previous works have focused mainly on throughput improvement (Katti et al., 2008).Some methods like Huang et al. (2008) add artificial delays to packets to gain time for coding and to increase throughput while the methods cannot be used in many immediate applications such as the applications needed to support QoS parameters including delay.To solve the problem, a number of solutions make a tradeoff between throughput and jitter (e.g.Ao et al., 2012).Dong et al. (2013) adds delays to packets in order to increase coding time but it tries to control the added delay by introducing PNCP model.
This paper discusses two main problems of network coding: 1-Which time coding should be used?2-Which coding structure should be used?
The authors of this paper believe that coding is not always a proper solution.This method addresses the first problem based on two parameters: the status of queue and the preference of forwarding packet.The second problem is covered by COPE coding where relay node makes a trade-off between throughput and jitter and decides that whether or not to add a delay.This paper makes coding decisions based on buffer condition and the class of forwarding packet class.Yeow et al. (2009) introduced a coding model titled as DNPDG in order to reduce delay.This model uses the total sum of the current delay added to the sent packet in the coding process.In fact, this method determines the expected delay for every flow packets and calculates current delay of every packet.Then, it compares results and decides that whether to add additional delays to the sent packet in order to gain more time for coding.Yeo et al. (2009) focused on minimizing delay for broadcast flows by using network coding.Eryilmaz et al. (2006) studied the gain in delay performance resulting from network coding.Ying et al. (2009) demonstrated that coding achieves the optimal delay-throughput tradeoff in mobile ad-hoc networks.These works only consider the performance of average delay and do not address strict per-packet delay bounds.

The Proposed Method
This section discusses the proposed model in detail.Unlike available methods, this algorithm uses network coding to reduce jitter.Before discussing coding selection, the procedure of calculating delay and jitter is reviewed.
Jitter is calculated by Eq. ( 8).RTTvar(new) shows the jitter of a packet before forwarding to the next step node.This equation has been derived from Jacobson's method and it differs with the Jacobson's method in that the proposed method only needs half of RTT.
In Eq. ( 7), b=1/8.(new) shows the effect of a new packet delay on jitter.This is derived from Eq. ( 9).This parameter shows the effect of the n th packer on jitter at forwarding time (whether it is reached to queue start point itself or is coded by the packet at the start point of the queue).

Coding Structure
Similar to COPE method, the coder nodes of this algorithm place the packets of every flow in virtual queues with respect to the next step.Upon the entrance of a new flow, the coder node determines the virtual queue in which the packets of this flow should be placed.To determine coding pattern, the node works in this manner: 1-Coder node should seek for the packets belonging to the flows of temp array.Each virtual queue should be assessed until the first packet, which can be coded with the forward packet, is found.2-Calculate ( ) for the candidate packet 3-Repeat steps 2 and 3 for other virtual queues 4-Select the packet with the minimum ( ) .5-Go to step 2 and repeat all steps until there is no packet to add to the forwarding set in the queue Fig. 3 shows the steps of this algorithm.

Simulation
We have simulated the proposed algorithm in TOSSIM simulator to evaluate the performance of the algorithm and compared it with random selection pattern in COPE (Katti et al., 2008). [802,11] has been used as MAC layer.We considered network coding over wireless mesh networks where intermediate nodes (wireless mesh routers) were able to forward packets to other intermediate nodes and clients.Random topology with 100 nodes was used for simulation scenario.In this scenario, 12 flows with a load of 20 kbps were created, randomly.In the beginning of simulation process, there was only one flow.Then, for every 15 seconds, a random flow load was added to the set.This scenario used COPE coding structure to code packets.The performance of this algorithm was evaluated considering throughput and jitter parameters.Fig. 4 shows the simulation results of the first scenario.Fig. 4-1 shows throughput in the first scenario.According to this figure, our proposed applies fewer changes to packets as it considers packet jitter as a priority.Fig. 4.2 compares the throughputs of our proposed method and COPE.It is evident that there was no significant difference in throughput between both methods.The reason is that packets were selected in random in COPE method. (1) (2) Fig. 4. simulation results of the proposed method: (1) jitter, (2) throughput

Conclusion
NC was introduced as a solution for improving the performance of wired networks.Till now, different solutions have been presented to improve NC performance.Previous works have focused on throughput improvement.On the other hand, many attempts have been accomplished to maintain QoS in Internet.However, the assurance of QoS including jitter is an essential component in multimedia applications.Unlike previous works, this paper used NC to control jitter.According to simulation results of the proposed method, this algorithm used fewer changes to packets compared with the initial proposed methods.According to simulation results, selecting a proper coding pattern for jitter can improve jitter by 30% while the throughput of this method shows no considerable change compared with that of available methods.The possibility of taking advantage of this method makes it suitable for adjusting the playback of video streams in the network.Future work could include combination of two parameters of delay and delay variation as noted before.In addition, the selection of coding pattern may be based on criteria such as interference control, load balancing and reduction of the number of lost packets (Packet Loss).

Fig. 1 .
Fig. 1.An example of network coding In this scenario, Node A tries to forward packet P1 to node B. Node B, however, tries to forward packet P2 to node A. The nodes are not in direct forwarding range to each other and they should use the relay node of C. Within the first time slot, node A forwards packet P1 to node C and in the second time slot, node B forwards packet P2 to node C. In the 3 rd time slot, node C can combine P1 and P2 packets and forward packet P1 P2 to nodes A and B. Having packet P1, node A can decode the considered packet from P1 P2.Similarly, having packet P2, node B can decode the considered packet form P1 P2.COPE was the first network coding architecture in wireless networks that supported the idea of coding unicast traffics (with different originations) before forwarding them.COPE was a bridge between theoretical and practical opinions.