# Mobility-Multihoming Duality
## 5 Evaluation of Mobility Multihoming Duality
### Metrics  
To evaluate the performance and the capability of the approach, the following metrics were used in experiments across the three sets of evaluations:  
* Throughput.
* Packet loss.
* Packet misordering.
* Sequence number analysis.  
To measure packet-level metrics, packets were captured using tcpdump, saved as a pcap file--both at the sender and the receiver--and then post-processed.  
A throughput measurement for a run was taken using the sum of the individual relevant IPv6 packet payload size, \(p\), for the run divided by the duration of the run.  
\[\text{throughput}=\frac{\sum p}{t_{\text{flow finish}}-t_{\text{flow start}}} \tag{5}\]  
The IPv6 payload size was calculated from the packet length field in the IPv6 packet header. The duration of the run was measured between the first and the last packet of the flow. A flow was determined by packets filtered using port numbers, a transport layer protocol, and a source/destination address (IL-V) to correctly identify the flow that was received at the host. The throughput measurement was what was received at the CN or MN to observe successfully transmitted packets.  
\begin{table}
\begin{tabular}{r c} \hline \hline
**Delay [ms]** & **Description** \\ \hline
0 & _LAN_ equivalent (actual delay \(\sim\)1 ms or less) \\
20 & _National_ delay equivalent. \\
200 & _Intercontinental_ delay equivalent \\ \hline \hline \end{tabular}
\end{table}
Table 7: The three delay scenarios for evaluation—LAN, National, Intercontinental.  
Analysis of sequence number observations was used to determine the loss, misordering, and continuity of packet flows.  
With UDP-based traffic, misordering was identified using sequence numbers in the payload part of the captured UDP packets. iperf2 included a sequence number in every packet in the first four bytes of the iperf2 UDP payload.  
TCP traffic has sequence numbers in its header that can be observed at the sender and receiver. So, duplicate packets can be detected. Duplicate packets might be transmitted as the flow is perturbed when connectivity changes either due to movement or due to network connectivity being added or removed. Overall, we were concerned about the proportion of duplicate packets that were transmitted, as this is clearly an overhead--whether that duplicate is a data packet or an acknowledgement.  
\[\text{duplicate ratio}=\frac{n_{\text{duplicate packets sent}}}{n_{\text{ total packets sent}}} \tag{6}\]  
With UDP-based traffic, loss was derived from the difference between the total sent packets and the total received packet count. Since UDP-based traffic does not have retransmissions, observing the packet counts at the sender and the receiver was sufficient to detect loss.  
Misordering detection is similar with both UDP and TCP. Misordering was detected by observing when the difference between the sequence number of a packet had decremented rather than incremented, and if it had decremented, this meant that the sequence number had not wrapped.  
Both loss and misordering are presented as ratios. The loss ratio is the proportion of the number of lost packets to the total number of packets sent.  
\[\text{loss ratio}=\frac{n_{\text{packets lost}}}{n_{\text{total packets sent}}} \tag{7}\]  
The misordering ratio is the proportion of the number of misordered packets to the total number of packets received carrying the transport layer payload.  
\[\text{misordering ratio}=\frac{n_{\text{packets misordered}}}{n_{\text{ total packets received}}} \tag{8}\]  
Note that the loss ratio was only used for UDP, as TCP retransmits lost packets, so the duplicate ratio was used for TCP instead, as noted above.