Kuangyu Qin, Chuanhe Huang*, N. Ganesan, Kewei Liu , Xi Chen
1 Computer School of Wuhan University, Wuhan 430072, China
2 Collaborative Innovation Center of Geospatial Technology, Wuhan 430072, China
3 School of Computer Science and Information Security, Guilin University of Electronic Technology, Guilin 541004, China
4 Regional Institute of Co-operative Management, Banashankari 2nd Stage, Bangalore 560070, India
* The corresponding author, email: huangch@whu.edu.cn
Sometimes special applications need higher bandwidth over the capacity of any path to the destination. For instance consider a high resolution video conference under a congested network. The available bandwidth of each link of the congested network is not suf ficient to afford the video conference’s requirement.Assume that the data of video conference must be transmission in one session. If the flow of the video conference can be split into many sub- flows and each sub- flow’s bandwidth does not exceed the available capacity of the link,the network can support this high resolution video conference. But in traditional network,one flow goes only one path. Though there are SCTP and MPTCP support transferring flows from the same source to the same destination go different paths, there is no solution for multi-path transmission with one session in regular TCP.
In the software de fined networking (SDN),the controller takes charge in making route decision and gives commands to the data plane.The switches are receiving instructions from the controllers. This central control mode improves the flexibility and scalability of the network. And it also let the administrator has the ability to control the network precisely. But for implementing the parallel transmission, it still faces some challenges: (1) How to dynamically split one flow into many sub flows at source and how to combine them at destination. In the standard open flow protocol, there is no action to support the flow splitting. (2) How to select the best paths to transmit these sub- flows and how to assign the flows on different paths.
In this paper, a flow splitting algorithm to split a data flow to multiple sub-flows is proposed by extending the open flow protocol.
In this paper, an attempt has been made to develop an approach to transmit a single session flow with multiple paths in SDN base on regular TCP. In the paper, the openflow protocol is extended by adding an action to support minimum cost multi-path parallel transmission. An algorithm is proposed for switch to implement flow splitting and another algorithm is proposed for controller to implement minimum cost multi-path parallel transmission.
For multi-path transmission, there are approaches. The MuniSocket, SmartSocket,pTCP, M/TCP, MTCP, R-MTP, SCTP and MPTCP are proposed for host which has multiple network interfaces. These approaches use changed TCP protocol to implement multi-path transmission. The authors of paper[1] presented a survey of multi-path routing protocols for mobile ad hoc networks.The authors in [2][3] listed many multi-path routing protocols for the wireless sensor networks. They include ReInForM, REAR,MMSPEED, EAMMSPEED, MPDT, EQSR,etc. The author of [4] proposed the IM2PR protocol which is designed to prefer path that minimize inter-path interference for WSNs.B. R. Smith et al. used multi-path to get load balancing with Qos[5]. Augustin et al. [6]performed a more recent measurement based study to characterize the state of multi-path routing and load balancing on the Internet.Sou, Sok Ian et al. proposed a performance model of multi-path mobile data of floading in WiFi networks[7]. Multipathing is also used in other network architectures such as P2P, CDN,CCN and NDN [8][9][10]. Beltagy et al. proposed a routing metric and protocol for multipath routing in cognitive networks[11]. The authors in paper [12][13] studied the multipath transmission in inter-domain routing. The multipathing is also used in green networking.In paper [14], energy-efficient multipathing showed the potential for improving smart phone’s energy consumption.
When the SDN gets popular, there are also many investigations surround how to support multiple paths transmission on open flow. The research work [15] describes how to use openflow to do the wide area traffic engineering with MPTCP. Marcus Sandri et. al [16] designed Multi flow to use MPTCP in open flow networks. The paper [17] presents an alternative solution using adaptive multi-path routing in a Layer-2 network with static (capacity and latency) metrics, which adapts link and path failures. The HiQoS[18] is a approach which makes use of multiple paths and queuing mechanisms in SDN to guarantee QoS for different types of traffic. Satoru Izumi et. al.[19] proposed an adaptive multi-path routing scheme for disaster-resistant storage systems.Their scheme selects multi-path routes dynamically based on available network resources under the disaster situations for effective data transmission. Jie Zhang et al. [20] investigated the rule placement for multi-path routing in software de fined networks. A three-phase heuristic algorithm was designed for placing the forwarding rules to save TCAM. Gabi Nakibly et al. [21] studied the problem of reducing the forwarding cost with two cases. The first case is Decomposition with Minimum Overhead(DMO). It breaks a network flow into a set of simple paths between the source and destination nodes while minimizing the number of paths or the number of nodes they traverse.Another case is Routing with Minimum Overhead (RMO). It is to find a set of simple paths between the source and destination nodes over which the bandwidth demand can be delivered while minimizing the number of paths or the number of nodes they traverse. The authors in paper [22] proposed a Dijkstra-Repeat algorithm to calculate disjoint multiple paths.A lazy route update (LRU) technical is used to reduce routing calculation in controller.The authors in paper [23] proposed a time slot based approach which dynamically finds multi-paths for maximal bandwidth and resil-iency of media transfer in overlay networks.The authors in paper [24] proposed a novel multi-path transmission supported software defined wireless network architecture (MPSDWN). In their approach, multi-connection virtual access point is proposed to enable multiple transmission paths simultaneously over a set of access points for users. Some wireless flow transmission rules and programmable interfaces are implemented into mac802.11 subsystem to enable service differentiation and flow-level wireless transmission control.
In these literatures, no work has been done in implementing single session multiple paths transmission for regular TCP in SDN.
In this section, we introduce the architecture of the Minimum Cost Multi-path Parallel Transmission (MCMPT) system and formulate the MCMPT optimization problem.
We present the MCMPT system as the figure 1.
In the network, the host S is using the standard TCP/IP protocol to send data to the host T. But the available bandwidth of any path from A to I is less than the demand of transmission. Here we assume the end links (S, A)and (I, T) have enough bandwidth. While a new flow comes from S, the switch A queries the controller for forwarding policy. If the flow belongs to a key application and requires high bandwidth, the controller will let the switch A partition the flow from S and sends those sub- flows to B, C and D. Each packet in subflow will be tagged with an id and then send out to an interface. Other switches forward these packets base on the id. At the switch I,the tagged id will be removed from the subflows. When the host T sends back the data,the switch I follows the same procedure.
Till now, the open flow protocol (up to v1.5)does not support splitting one flow into multiple sub- flows. In our approach, a flow splitting action is added to the standard open flow protocol so that the network has the single session multi-path transmission ability. When the user orders the multi-path transmission service, the controller installs the flow splitting rule to the switch and implements the multi-path transmission.
In this section, we define the minimum cost multi-path parallel transmission (MCMPT)problem.
De finition 1. The MCMPT problem is such a problem: Giving a network represented by a graph G(V, E), where V is the set of nodes and E is the set of links. For each link e∈E there is a delay de>0, a cost me>0 for unit bandwidth and a capacity ce>0. For a flow demand from node s to node t with bandwidth demand R,a maximum delay D, and a maximum delay variance J, find a set of path P between s and t and sub- flows assignment that the total flow cost is minimum, on the conditions that the delay of any path is not greater than D and the delay variances of these paths are not greater than J.
In graph G, the delay of a path p (p∈P) is the sum of the delay on each link along the path.
The maximum delay of each path can not be greater than D.
The delay variance between each two path is not greater than J.
Fig. 1. Minimum cost multi-path parallel transmission.
Assume the flow is split to k sub- flows, the ithsub-flow is represented by fi. The figoes throught the path i. Then we have
The sum of these sub-flows’ bandwidths will be equal to the demand requirement.
The ge(pi) is used to denote whether the path of flow i includes the link e, we have
The sum of sub- flows which goes through any edge can not exceed the capacity of that edge.
The mfiis used to denote the cost of the subflow which goes though the path pi. The cost is the sum of the costs for each link on this path.
The meis the rent cost for unit bandwidth in a link. If the path includes more links, it should be more costly. To implement the traffic engineering, the mecan also be a dynamic value which relates to the available bandwidth of the link. A link has less available bandwidth means the congestion is easy to happen. We can set it with a higher cost. The total cost of transmission is represented as mall. It is the sum of costs for all flows.
Consider the k in formula 10 is dif ficult to be decided, a conservative way is to let the k equal to the possible paths number where some flows can be zero. But for a large network, the number of the equations will be extremely large.
Before we analyze the MCMPT problem,first we see a relaxed-MCMPT problem. The relaxed-MCMPT problem is similar with the MCMPT problem but without the delay variance restriction. The decision problem of the relaxed-MCMPT is: Given a graph G(V,E)with cost and delay on each link, a flow demand R, a given node s and a given node t,a real number C, a cost M, does there exist a path set P between s and t and assigned flows on these paths that the total flow cost mall≤M,on the conditions that the maximum delay of these flows are not greater than D.
Lemma 1. The decision problem of the relaxed-MCMPT is NP-Complete.
Proof. It is easy to see that decision problem of the relaxed-MCMPT is in NP-Class because the given solution for the decision problem of relaxed-MCMPT can be veri fied in polynomial time.
We construct our problem from a instance of the Partition Problem: given a set A of elements a1, a2, …, a2nwith size s(ai)∈Z+, find a subset A’ ?A such that A’ contains exactly one element of a2i-1, a2ifor 1≤i≤n and
Our objective is to get the minimal total cost while satisfy the delay and delay variance restriction.
The transformation from this Partition Problem to an instance of relaxed-MCMPT is shown as follows (see also in figure 2). First,we de fine an empty graph G. On the graph G,for any element ai∈A, we de fine a link ui→vito represent this element. This link has the unit cost, unit capacity and delay s(ai). In addition to this these, we add some auxiliary links to connect nodes v2i?1→u2i+1, v2i?1→u2i+2,v2i→u2i+1, v2i→u2i+2, s→u1, s→u2,v2n?1→t and v2n→t. Each of these auxiliary links has a unit capacity, zero cost and zero delay. On the graph, these auxiliary links are represented by the dash lines. Till now, the graph for this relaxed-MCMPT instance has been constructed. After that, we de fine the required flow bandwidth R for this relaxed-MCMPT instance is 2, the maximum delay D isand the acceptable total cost M is|A|.
Now we prove that there is a solution for this relaxed-MCMPT if and only if there is a subset A’ ?A such that A’ contains exactly one element of a2i-1, a2ifor 1≤i≤n and
?: Suppose there is a subset A’ ?A such that A’ contains exactly one element of a2i-1,a2ifor 1≤i≤n andWe notice that the elements in A’ compose a path from s to t on the graph. The latency of this path is equal tobecause the links connect these elements have zero latency. At the same time, another path which includes elements represented by the subset A-A’ has the same latency. These two paths disjoint and totally can transfer 2 flow units from s to t.And the total cost of these 2 flows equals to|A|. That means the cost is not greater than M.
?: Suppose on the graph there is a solution for the relaxed-MCMPT that can totally transfer 2 flow units over the paths which latencies are not greater than D and the total cost is not greater than M. Because each link on the graph has only one unit capacity, the solution must have two sub- flows. We de fine the one sub- flow’s path as p and another subflow’s path is p’. Consider the path p from s to t, from the graph we can see, it will includes one and only one element of a2i-1, a2ifor each i. The path p and path p’ are disjoint and cover all non-zero latency links of graph G. We collect all elements represented by the non-zero latency links on p to form the set S. And in same way we use the elements on p’ to form the set S’. It is easy to see that A=S ∪ S ′ and S ∩S ′=φ. Since the latency of p and p’ are not greater than D and during the transformation we have de fined D is, we have
Since we have A=S∪S′, we getAccordingly, we conclude thatThat means the partition of S and S’ is the solution for the partition problem.
Hence, the decision problem of relaxed-MCMPT is NP-Complete.
Theorem 1. The decision problem of MCMPT problem is NP-Complete.
Consider a network G’(V’, E’) similar to G(V, E). Add a new link en+1’=(s, t) with a capacitya latency dminand zero cost for unit bandwidth in G’(V’, E’). For G’, let us assume the following:
and M’ = Cost = M. The construction can be completed in polynomial time.
The instance of MCMPT decision problem has a solution if and only if the instance of the relaxed -MCMPT decision problem has a solution.
?: Assume that the instance of the MCMPT decision problem has a solution. Remove the link en+1’ from the solution and use it as the solution for the instance of relaxed-MCMPT decision problem.
Fig. 2. Transformation of partition problem to relaxed-MCMPT.
Since the flow on en+1’ will not greater than the capacity, and the demand R’ is, the remaining flows will be greater than R. Hence the demand restriction can be satisfied for the instance of relaxed-MCMPT decision problem. Consider the maximal flow latency will not greater than D in the solution for the G’(V’, E’- en+1’), the maximal latency restriction can also be satis fied for the instance of relaxed-MCMPT decision problem. Since the link en+1’ has zero cost, the cost for remaining flows will also be M. Therefore the new solution is working for the instance of relaxed-MCMPT decision problem.
?: Assume that there is a solution for the instance of the relaxed -MCMPT decision problem. Add a flow f on link en+1’ into the solution and use it as the solution for the instance of the MCMPT decision problem. The flow f use full capacity of the link en+1’ which is. Thus the demand can bein the new solution. As the link en+1’ has the smallest latency dminin the network, the maximal latency will not be greater than D and the maximal latency difference in the solution will not be greater than D-dmin. As the link en+1’ has the zero cost for unit bandwidth, the cost of the solution is still M. Therefore the new solution is working for the instance of MCMPT decision problem.
Algorithm 1. Path generating algorithm Input: graph G, source node s, destination node t, maximum latency D.Output: list of paths paths.1. paths←{{s}}2. while true 3. old_paths←paths, paths←{{ }}4. for each p in old_paths 5. u←last_node(p)6. if (u = = t)7. paths← paths ∪ { p }8. else 9. for each v in neighbors(u)10. r←p connect v 11. if noloop(r) and delay(r)<D 12. paths← paths ∪ { r }13. end for 14. end for 15. if no new path then quit while 16. end while 17. return paths
Hence, the decision problem of MCMPT is NP-Complete.
The multi-path routing includes two parts. The first part is Path generation while the second part consists of selecting the paths and assigning flows to get minimum cost.
In this section we will generate all possible paths for multiple path routing. The selected path should be simple path which has no loop and the path’s delay should not exceed the maximum delay.
The path generating algorithm starts from the source node to find its neighbors. The links to the neighbors will be the paths and stored in a list. Then every path in the list will search the neighbors of its last node and gets longer paths. The longer path will be added to the list if there is no loop. The path is extending until it reaches destination node or its delay is greater than the maximum delay. The iteration will stop if there is no more new neighbor can get in for all paths. After removing the paths whose last node is not the destination, the remaining paths are the result. The detail path generating algorithm is showing blow.
A minimum cost multi-path selection (MCMPS) algorithm which uses a sliding window to get the minimum cost paths set is proposed to select minimum cost multiple path. The concept of sliding window used is given in figure 3.
We sort the candidate paths by their latency values and list them in a line. Consider a window of size J to cover these paths. Hence the latency variances of these paths inside the window are not greater than J. At the beginning the window stays at the left side.The minimum cost sub- flows set for the paths in window is computed. The window starts moving from the left side to the right side. The algorithm calculates the minimum cost subflows set again and record it for each movement of window.
The minimum cost sub-flows in window are calculated by performing a greedy method.These paths in window are sorted by their cost of unit bandwidth. The cost of unit bandwidth for a path is obtained by summing the cost of unit bandwidth for each link on this path.After sorting, the first path will be the path let a sub- flow uses it has the cheapest cost for unit bandwidth. The volume of the sub-flow is decided by the link which has the smallest capacity on this path. Subtract the volume from the capacity of every link on the path.The successive paths are selected in the same way until the sum of these volumes equal the bandwidth demand. The full multiple-path selection algorithm can be given as follows:
Theorem 2. The MCMPS gets the minimum cost flows set.
Proof. Assume there is a different minimum cost flow set F’ whose cost is less than the F which we get by the MCMPS. Consider the flows set FW is the result of calculating in a sliding window. As the cheapest path flows are selected until the demand R is satisfied,the cost of FW is the lowest flows set in the window. The flows of F’ must be covered by a particular window which contains minimum cost flows, as their delay variance can not exceed the J. Hence the cost of the F’ is same as that of FW in the same window. But the cost of the F’ is less than the cost of the F and therefore the cost of this FW is less than the cost of the F. But this violates that F is the cheapest of all FWs in the MCMPS.
Hence, the MCMPS gets the minimum cost flows set F.
The algorithm always tries to get minimum cost for this session. In real situation, it is easy to cause congestion. For avoiding this, the parameters in the system need to be adjusted. For instance, we can set the 80% of the real link bandwidth as the link bandwidth in algorithm. The remaining 20% is reversed for other sessions.
Fig. 3. Sliding window.
Algorithm 2. Minimum cost multiple paths selection algorithm Input: graph G, source node s, destination node t, bandwidth demand R, maximum latency D, maximal delay variance J.Output: F.1. F←{}, min_cost←Inf, G’←G 2. P←path_generating(G, s, t, D)3. P←sort_by_delay(P)4. n←|P|5. for i←1 to n do 6. G←G’, flow_sum←0 7. FW←{}, cost←0 8. SP←slide_window(P, i, J)9. SP←sort_by_cost(SP)10. for each p in SP 11. flow←capacity(p)12. if ( flow_sum + flow)>R 13. flow←R - flowsum 14. flow_sum← flow_sum + flow 15. FW←FW∪{ ( p, flow) }16. cost←cost + getcost(p)17. if flow_sum = = R 18. break 19. for each link in p 20. dec_capacity(G, link, flow)21. end for 22. if flow_sum<R 23. continue 24. if (cost < min_cost)25. min_cost←cost 26. F←FW 27. end if 28. end for 29. F←assignVLANs (F)30. return F
To support the flow splitting in SDN, a new action is added to the standard open flow protocol. The corresponding work includes de fining the action structure, parsing the action and implementing the action.
The data structure for flow splitting action is shown in figure 4. It includes action type,action length, number of sub-flows, information for each sub-flow and padding. The information for each sub-flow contains three sections: the VLAN id, the data volume for the scheduling slot, the output port. The action length is a prede fined number and it is multiple of 8 bytes.
Fig. 4. Data structure for flow splitting action.
Algorithm 3. Action algorithm in switch Input: sub-flows’ number k, sub-flows’ vlan ids vid [1,…,k], sub-flows’ data volumes dvol [1,…,k], sub- flows’ out ports op [1,…,k], incoming flow data flow.Output: data frame, outgoing interface port 1. th←{1,…,k}, counter←0, i←0, sum←0, len←0 2. for i in {1,…,k } do 3. sum←sum + dvol[i]4. th[i] ←sum 5. end for 6. while (frame←getFrame( flow)) do 7. len←getleng(frame)8. counter← counter + len 9. for i in {1,…,k } do 10. if counter < th[i] then 11. frame←pushVlan( frame, vid [i] )12. port← op [i]13. outPut( frame, port )14. else if ( i = = k ) then 15. counter ← counter % sum 16. frame←pushVlan( frame, vid [0] )17. port← op[0]18. outPut( frame, port )19. end if 20. end for 21. end while
Based on the action data sent by the controller, the switch separates the flow into k sub- flows. When a packet enters, the splitting action chooses the VLAN id according to the data volume. The packet will be tagged with the VLAN id and sent to the port, specified by the action data. For instance, the controller sends the action data (2, ((100, 50000, 1),(101, 30000, 2))) to the switch. The flow will be split to two sub-flows in such a way that the packets in first 50000 bytes will be tagged with VLAN id 100 and sent to port 1 and the packets in next 30000 bytes will be tagged with VLAN id 101 and sent to port 2. Again the packets in next 50000 bytes will be tagged with VLAN id 100 and sent to port 1 and this continuous until the transmission accomplish.A static counter is used to record the number of received bytes. If the action handles different flows, a counter set is needed and each counter is hashed to match one flow. The action algorithm is given below:
The action uses the data volume information sent form controller to construct the array th. The array th records the threshold value of bytes for a particular vlan. If the data exceed this threshold value, the algorithm schedules the flow to next vlan channel. After all vlan channels have taken turns, the flow will be sent to the first vlan channel and start a new round. In algorithm the function pushVlan pushes the frame into a vlan and attach the vid as the vlan id. The function outPut sends the frame to the port op[i].
The proposed minimum cost multi-path parallel transmission approach is tested by simulation using the mininet and the floodlight. The switch action is added to the Open vSwitch and recompiled. In simulation the floodlight is used as the controller. The action support for the floodlight is added to the open flowj lib which is in floodlight’s lib directory. The multiple paths routing algorithm is programmed in python. It calculates the routing paths and pushes the static entries to the floodlight by the REST API. The simulation uses two topologies. One topology is a simple network as same as the figure 1. Another topology is using a data set from the Stanford Large Net-work Dataset Collection in SNAP. It is an autonomous system in August 29th 1999 which has 103 nodes and 243 edges. In mininet, each link’s bandwidth is set to 10Mbps. The link’s latency is 1ms. The MTUs of the interfaces in OVS are set to 1520.
The first simulation is testing the throughput of the MCMPT in a clean environment. In the case, only host S sends data to host T. Other hosts will not send any data. A client and a server programs are developed in C for generating bandwidth speci fied traf fic. The require bandwidth starts from 3Mbps to 30Mbps. The allowed maximal delay is two times of the shortest path′s delay and the allowed delay variance is 2ms. The performance comparison between the Single Path Transmission (SPT)and the MCMPT are given in figure 5, which shows a signi fication throughput improvement in MCMPT.
Figure 6 depicts the performance comparison between SPT and MCMPT in daily network environment which has background traf fic. The daily network environment is simulated by adding more hosts in the network. In this case, every host in network is sending data randomly. The result shows the throughput of MCMPT is less than the performance in the clean environment, but it is also signi fication higher than the SPT.
Fig. 5. Throughput without background traf fic.
Fig. 6. Throughput with background traf fic.
For cost evaluation, the MCMPT is compared with Round-Robin Path Selection(RRPS) algorithm, Random Path Selection(RPS) algorithm and Linear Programming(LP). ALL programs are developed in python, and the LP is supported by the Pulp and GLPK. The cost of link’s unit bandwidth changed from 0.5/Mbps to 1/Mbps according to their position. The central links are more costly than the marginal links. The delay of each link is 1ms. In the evaluation, the required bandwidth varies from 3Mbps to 30Mbps. The allowed maximal delay is two times of the shortest path′s delay and the allowed delay variance is 2ms. The evaluation result is shown in figure 7. In figure 7(a), at beginning, when lower bandwidth is required,MCMPT chooses lower cost path than RRPS.But when bandwidth requirement is up to 30Mbps, all possible paths are nearly full used. The MCMPT and RRPS get equal cost.RPS chooses path randomly for every packet.While the bandwidth requirement is increasing, many packets are randomly assigned to same path which is already congestion. These packets have to be resent and cause more congestion. In figure 7(b), although there are more paths to select in the bigger topology, the RRPS is still more costly than MCMPT when the bandwidth requirement is up to 30Mbps.The LP sets the k value as the number of possible paths and allows the null flow. In both topologies, the cost of LP is as same as the MCMPT.
Fig. 7. Cost for transmission.
In this paper, the minimum cost multi-path parallel transmission (MCMPT) problem in the SDN is investigated. By extending the action of open flow, an approach to implement MCMPT is proposed. In the approach, a switch algorithm and a controller algorithm are given. The evaluation results show that the approach is working properly. The actual bandwidth of the multiple paths transmission is much greater than the single path transmission. The cost of the flows is also less than other path selection algorithms. Although our approach can improve the transmission performance, there are still some limitations. One is that the efficient of the path generation is not high enough. Another is that there should be more consideration for the link states changing in real time dynamic situation.The improvement for these limitations will be the future work.
This work is supported by the National Science Foundation of China (No.61772385, No.61373040, No. 61572370).
[1] Tarique, M., et al., “Survey of multipath routing protocols for mobile ad hoc networks,” Journal of Network & Computer Applications, vol. 32,no. 6, 2009, pp. 1125-1143.
[2] Sahin, D., et al., “Quality-of-service diあerentiation in single-path and multi-path routing for wireless sensor network-based smart grid applications,” Ad Hoc Networks, vol. 22, no.16, 2014,pp. 43-60.
[3] Sha, K., et al., “Multipath Routing Techniques in Wireless Sensor Networks: A Survey,” Wireless Personal Communications, vol. 70, no. 2, 2013,pp. 807-829.
[4] Radi, M., et al., “IM2PR: interference-minimized multipath routing protocol for wireless sensor networks,” Wireless Networks, vol. 20, no. 7,2014, pp. 1807-1823.
[5] Smith, B. R., & Thurlow, L., “Practical multipath load balancing with QoS”, Proc. International Conference on Computing, NETWORKING and Communications IEEE, 2013, pp. 937-943.
[6] Augustin, B., Friedman, T., & Teixeira, R., “Measuring multipath routing in the internet,” IEEE/ACM Transactions on Networking, vol. 19, no. 3,2011, pp. 830-840.
[7] Sou, Sok Ian, and Y. T. Peng., “Performance Modeling for Multipath Mobile Data Oラoading in Cellular/WiFi Networks,” IEEE Transactions on Communications, vol. 65, no. 99, 2017, pp.3863-3875.
[8] Carofiglio, G, et al., “Multipath congestion control in content-centric networks,” Proc. IEEE Conference on Computer Communications Workshops IEEE, 2013, pp. 363-368.
[9] Rossini, G., and Rossi, D., “Evaluating CCN multipath interest forwarding strategies,” Computer Communications, vol. 36, no. 7, 2013, pp. 771-778.
[10] Liu, Y., and Wadekar, H., “SDAR: Software Defined Intra-Domain Routing in Named Data Networks,” Proc. IEEE International Symposium on Network Computing and Applications, 2016,pp. 158-161.
[11] Beltagy, I., Youssef, M., and El-Derini, M., “A new routing metric and protocol for multipath routing in cognitive networks,” Proc. IEEE Wireless Communications and NETWORKING Conference, 2011, pp. 974-979.
[12] D.H Qin, et al., “AMIR: Another multipath interdomain routing,” Proc. IEEE International Conference on Advanced Information Networking and Applications, 2012, pp. 581-588.
[13] Camacho, Jose M., et al., “BGP-XM: BGP extended multipath for transit autonomous systems,”Computer Networks, vol. 57, no. 4, 2013, pp.954-975.
[14] Lim, Yeon-sup, et al., “How green is multipath TCP for mobile devices?”, Proc. Proceedings of the 4th workshop on All things cellular: operations, applications, and challenges, 2014, pp.3-8.
[15] Pol, R. Van Der, et al., “Multipathing with MPTCP and OpenFlow,” Proc. High Performance Computing, Networking, Storage and Analysis (SCC),2012 SC Companion, 2012, pp. 1617-1624.
[16] Sandri, M., et al., “On the bene fits of using multipath tcp and open flow in shared bottlenecks,”Proc. Advanced Information Networking and Applications (AINA), 2015 IEEE 29th International Conference, 2015, pp. 9-16.
[17] Subedi, T. N., Nguyen, K. K., and Cheriet, M.,“OpenFlow-based in-network Layer-2 adaptive multipath aggregation in data centers,” Computer Communications, vol. 61, 2015, pp. 58-69.
[18] J.Y Yan, et al., “HiQoS: An SDN-based multipath QoS solution,” China Communications, vol. 12,no. 5, 2015, pp. 123-133.
[19] Izumi, Satoru, et al., “An Adaptive Multipath Routing Scheme based on SDN for Disaster-resistant Storage Systems,” Proc. International Conference on Broadband and Wireless Computing, Communication and Applications, 2015,pp. 478-483.
[20] Zhang, Jie, et al., “On Rule Placement for Multipath Routing in Software-Defined Networks,”Proc. International Conference on Collaborative Computing: Networking, Applications and Worksharing, 2015, pp. 59-71.
[21] Nakibly, Gabi, R. Cohen, and L. Katzir., “Optimizing data plane resources for multipath flows,”IEEE/ACM Transactions on Networking, vol. 23,no. 1, 2015, pp. 138-147.
[22] X.S Sun, et al., “Multipath Load Balancing in SDN/OSPF Hybrid Network,” Proc. IFIP International Conference on Network and Parallel Computing, 2016, pp. 93-100.
[23] Sahhaf, Sahel, et al., “Adaptive and Reliable Multipath Provisioning for Media Transfer in SDN-based Overlay Networks,” Computer Communications, vol. 106, 2017, pp. 107-116.
[24] Xu, Chuan, et al., “A Novel Multipath-Transmission Supported Software De fined Wireless Network Architecture,” IEEE Access, vol. 5, 2017, pp.2111-2125.