1 Introduction

Recently, multimedia contents such as IPTV, video conferencing, online gaming and video-on-demand are rapidly growing [1,2,3]. Generally, in computer networks, multimedia contents are delivered to a group or many users rather than a single user. In such cases, a group of users request the same content from a source. Multicasting is a technique, which distributes the same data from a source to a group of destination users simultaneously. Implementing multicast techniques reduces network resources wastages and increases network performance [4].

Typically, multicasting is classified into two different types: IP multicasting and Application Layer Multicasting (ALM). In IP multicast, each source sends the data toward destinations over IP infrastructure network only once. In this way, intermediate routers along the path between the source and destinations are responsible to replicate the data packets to reach the destinations [5]. In addition to this, IP multicast routing protocols use multicast tree to route the data packets from the source to the destinations [6]. Due to in IP multicasting techniques, the data packets are transmitted over each link only once, network resources are used efficiently. Meanwhile, to enable IP multicasting, network equipments such as routers should support IP multicasting, and also network administrator should configure them. Furthermore, IP multicasting suffers from issues such as reliability, scalability and maintenance signaling [5, 7]. ALM is another multicasting technique, which is implemented at the application layer to overcome the limitations of IP multicasting [8]. In ALM, multiple copies of the same content are transmitted via common links, i.e., each copy of content routed separately [7, 8]. Although ALM in compared to IP multicast has advantages such as adaptability, updatability and immediate deployability, it causes long delay and high bandwidth utilization. Due to the mentioned limitations of ALM and IP multicasting, providing QoS for multimedia contents is one of the most key concerns in multicasting [9].

SDN is a new networking paradigm, which separates control plane from data plane. SDN can facilitate network management and also enable network administrators to program and manage their networks dynamically [10, 11]. In SDN, the data plane equipments, i.e., switches, handle network traffic based on the forwarding rules installed by the control plane, i.e., the controller. The logically centralized controller has a global view about network, and can collect network statistics. Due to the controller has a global knowledge about network, it can adaptively install appropriate forwarding rules over the data plane equipments regarding the network status. This mechanism makes SDN as a suitable candidate for managing multicast communications. In fact, the capabilities of SDN can help network providers to guarantee QoS for their customers. As the matter of fact, network providers can program the controller based on their desired policies in order to provide QoS regarding SLA. On the other hand, Most of the popular IP multicast protocols such as MOSPF [12], PIM-SM [13] and CBT [14] use shortest path tree (SPT) to route packets between the source and destinations. These IP multicast protocols suffer from requiring more signaling message to construct and manage the multicast tree. Moreover, they compute shortest path tree only based on the links costs which are static and determined by the network administrator. Such limitations of IP multicast protocols can be eliminated by using SDN. In SDN, the controller can install appropriate forwarding rules over the data plane switches using southbound APIs such as OpenFlow (OF) [15]. OF is an open standard for SDN, and widely used by developers and researchers [16]. As the matter of fact, OF is a protocol which determines how the controller can communicate with the data plane switches. Each OF switch has a set of flow tables and each flow table has a set of forwarding rules. A forwarding rule consists of a set of header fields and actions [17]. A forwarding rule can be installed by the controller reactively or proactively. In reactive mode, once an OF switch receives a packet, it first checks the flow tables to find any forwarding rules matched with the packet. If it finds a matched forwarding rule for the packet, it performs the related action. Otherwise, it forwards the packet to the controller [17]. Upon receiving the packet, the controller installs the appropriate forwarding rule for the packet. All future similar packets will be forwarded based on the installed forwarding rule. Unlike the reactive mode, the controller installs the forwarding rules before receiving any request from switches in proactive mode. It is evident that the proactive mode is a proper way to develop desired traffic engineering methods.

In this paper, we proposed a novel and efficient traffic engineering approach for multicasting multimedia traffic over SDN. In our proposed technique, the controller gathers network statistics periodically to achieve the accuracy about the ongoing traffic and link conditions in the network. Then, it models multicast routing as a DCLC problem [18]. The objective of using DCLC for multicast routing is to compute the minimum cost multicast tree regarding end-to-end delay between the source and destinations. We assigned the cost of each link regarding to its utilization. Therefore, by computing the DCLC problem, the controller can achieve a multicast tree with low congested edges and satisfied end-to-end delay. In this way, the controller proactively installs forwarding rules over the data plane switches, i.e., OF switches to route multimedia traffic through an efficient multicast tree, and consequently increases QoS for multimedia contents. Due to NP-completeness of DCLC [19], we also proposed a heuristic method based on TLBO algorithm [20] to tackle this problem. We evaluated our proposed method for video conferencing application, and experimental results confirmed that our proposed method outperforms PIM-SM IP multicast routing and ALM in terms of various QoS metrics.

In summary, the contributions of this paper incudes:

  1. 1.

    The QoS provisioning in multicast applications over SDN as a DCLC problem is modeled.

  2. 2.

    An optimization method based on TLBO algorithm is proposed as a solver for DCLC multicast routing.

  3. 3.

    The performance of the proposed multicast traffic engineering method is evaluated for a video conference application and compared with other solutions such as ALM and IP multicasting methods using Mininet emulator.

The remainder of this paper is organized as follows. In Sect. 2, we review some related works about multicast traffic engineering over SDN. We describe our proposed method in Sect. 3. Formulating and solving the DCLC problem using TLBO algorithm is described in Sect. 4. In Sect. 5, simulation details and test results are presented. Finally, conclusions are described in Sect. 6.

2 Related works

In this section, we will review some literatures about multicasting techniques in SDN. Iyer et al. [21] presented Avalanche as an SDN-based system to enable multicasting in commodity switches for data centers. Avalanche uses a multicast routing called Avalanche Routing Algorithm (AvRA) to minimize the size of routing tree for each multicast group in data center. AvRA algorithm is suitable for FatTree topologies and efficiently increases the bandwidth utilization. However, avalanche is useful for multicast communication in the special network topologies like tree, and cannot be applied for any type of topology [22]. In [23], a clean slate approach called Multiflow is proposed for multimedia multicasting. The aim of Multiflow is to manage multicast group, and decrease end-to-end delay between the source and destinations. In Multiflow, the edge of each link in the network is assigned based on the distance between two nodes. Multiflow uses Dijkstra algorithm to compute shortest path tree. Due to Multiflow only takes care about delay, it does not guarantee packet loss reduction, and it might be cause high packet loss ratio.

Ananta et al. [22] introduced an extended Dijkstra algorithm to calculate shortest tree for multicast communication in SDN. Their proposed algorithm considers both edge weight and node weight to construct shortest multicast tree. Their experimental results show that the extended algorithm increases throughput and decreases jitter. However, there is no QoS guarantee mechanism in their proposed algorithm. In [24], an SDN-based testbed proposed for service assurance in IPTV networks. The authors implemented Dijkstra algorithm to compute multicast tree between IPTV server and customers. In addition, they proposed a new architecture for OpenFlow switches to support IPTV service. In their proposed approach, the cost of links is determined based on the quality of received video. In [25], a multicast framework called Castflow introduced by Marcondes et al., which manages multicast groups and performs multicast routing in SDN. Similar to Multiflow, the cost of each link in Castflow is defined as the distance between the source and destinations. Castflow computes Minimum Spanning Tree (MST) using Prim algorithm to route network traffic. Nonetheless, Castflow does not have any mechanism to provide QoS for end hosts’ applications.

Noghani and Sunay [7] introduced a framework for multimedia multicasting over SDN. Their framework calculates minimum cost multicast tree using MiniMax algorithm. Their experimental results show that MiniMax incurs low packet loss. A fault tolerant IP multicasting technique over SDN is presented in [26]. The authors developed a method which computes two different multicast trees between source and destinations. Once a switch in primary multicast tree fails, the controller changes the forwarding rules of network to the alternative multicast tree. In [27], the authors presented a network-layer single-source multicast framework called Lcast. Lcast is an inter-domain multicast framework which uses Locator/ID Separation Protocol (LISP) overlay router to make the network scalable.

All the above reviewed multicasting techniques over SDN do not guarantee perfectly QoS for multimedia applications. QoS provisioning is required while transmitting multimedia traffic. Because the end users receiving multimedia contents have constraints in terms of QoS metrics, which need to be satisfied by the network provider while transmitting the traffic to the end users. Therefore, in this paper we propose an efficient technique to enable network providers to deliver their multimedia services more efficiently regarding network conditions.

3 The proposed method

As we mentioned in Sect. 1, QoS provisioning for multimedia application is a critical issue for network providers. Generally, packet loss and end-to-end delay are two important QoS parameters in multimedia applications [28, 29] which adversely affect the quality of received video at end users. Therefore, it is necessary to reduce these parameters in order to provide QoS. In legacy IP networks, multicast routing protocols compute Shortest Path Tree (SPT) to route the traffic along the tree. In this way, the cost of each link is usually determined by network administrator and multicast routing protocol does not take care about any QoS parameter such as packet loss and end-to-end delay. This is because in legacy networks, there is no efficient mechanism to achieve an accurate global view about network in order to deploy routing policy based on network condition. With the help of SDN, it is possible to gather current network condition and implement desired routing policies at run time. Typically, in computer networks, higher link utilization results link congestion, thus might lead to packet drops. If the congestion of a link exceeds the ingress buffer size of the relevant switch, it causes packet loss. To tackle this problem, one common solution is to route traffic through low congested links.

In this paper, we defined the link cost as the utilization of the link. This policy leads to compute the minimum multicast tree with low congested links. In addition to this, in most multimedia applications end-to-end delay of each video packet should not exceed 200 ms [30, 31], because the exceeded packets affect the quality of received video. To guarantee this constraint, our proposed method models the QoS multicast routing as a DCLC problem, which we will discuss in Sect. 4. Figure 1 illustrates our proposed traffic engineering architecture for multicast communications in SDN.

According to Fig. 1, our proposed traffic engineering schema is implemented in application layer over control plane, and consists of following modules:

  • Statistics Collector Module (SCM): it periodically collects network links statistics i.e. the delay and utilization of links, stores the statistics in two separate matrixes, called delay_matrix and utilization_matrix. For delay calculation of a link between two specific switches, this module creates a new type packet and inserts current time as a timestamp field in the header field of the packet. This packet is sent to the first switch (front of the link), and the SCM module enforces the switch to forward the packet toward the tail of the link. Upon reception of the packet, since there is not any matched forwarding rule for the packet in the flow table of the second switch (tail of the link), it is forwarded toward the controller. The SCM module can measure the delay of the link by subtracting the timestamp value of the header field of the packet from current time. This process is performed for all links in the network. In order to collect the utilization of each link, SCM module gathers the statistics of the connected ports of the switch in both sides of a link and divides the current transmitting rate of the port to the capacity of the port. Then, the maximum obtained value for both sides of the link is considered as the utilization of the link. This process is performed for all links in the network.

  • Multicast Tree Finder Module (MTFM): it is responsible for calculating minimum cost multicast tree by modeling the multicast routing as a DCLC problem. After this, it executes TLBO() to solve the problem. TLBO() function uses delay_matrix and utilization_matrix as input values to assign links’ costs and satisfy delay constraint in DCLC. The output of TLBO() function is the minimum cost multicast tree.

  • Route Inserter Module (RIM): it is executed after SCM and MTFM in order to inject the output of MTFM as a set of forwarding rule entries into the relevant switches.

Fig. 1
figure 1

Architecture of the proposed method

The controller periodically executes SCM, MTFM and RIM, respectively. This mechanism facilitates QoS provisioning because the controller computes efficient multicast tree based on current status of the network by considering delay constraint. Moreover, the cost of each link is determined as a function of its utilization, thus it computes minimum congested multicast tree, which reduces packet loss.

4 Problem formulation

DCLC is one of the linear programming problems, which aims to minimize the cost of multicast tree while guaranteeing the end-to-end delay constraint between the source and destinations [18]. In DCLC, the communication network is modeled as an undirected connected weighted graph \(G=\left( {N,L} \right) \), where N is s set of network nodes and L is a set of network links. The link \(e=\left( {i,j} \right) \) denotes the link from \(i\in N\) to the node \(j\in N\). C(e) and d(e) are the weighted cost and delay for the link e, respectively. In this paper, we consider C(e) as the utilization of link e. Since the graph is undirected, we set maximum value of the utilization of link e in both sides as a cost of the link. Let \(s\in N\) be a source node and \(D=\left\{ {v_1 ,v_2 ,\ldots ,v_n } \right\} \) is a set of the destination nodes, respectively. Here, the index n is the number of destinations. Let \(T=\left( {s,D} \right) \) be a tree which connects s to all destinations, and P(sv) a feasible path from s to v. The minimum cost multicast tree \(MT^{*}\) can be defined as follows:

$$\begin{aligned} MT^{*}=\min \sum _{v\in D} \sum _{e\in P\left( {s,v} \right) } cost\left( e \right) \,\,\forall v\in D,P\left( {s,v} \right) \in T \end{aligned}$$
(1)

The end-to-end delay of P(sv) is the aggregated delay of each link along the path and is calculated as follows:

$$\begin{aligned} {\textit{delay}}\left( {P\left( {s,v} \right) } \right) =\sum _{e\in P\left( {s,v} \right) } d\left( e \right) \end{aligned}$$
(2)

Finally, DCLC problem is defined as follows:

$$\begin{aligned}&MT^{*}=\min \sum _{v\in D} \sum _{e\in P\left( {s,v} \right) } cost\left( e \right) \\&{\textit{s.t.}}\qquad {\textit{delay}}\left( {P\left( {s,v} \right) } \right) \le \Delta \nonumber \\&\forall v\in D,P\left( {s,v} \right) \in T\nonumber \end{aligned}$$
(3)

where \(\Delta \) is the end-to-end delay threshold of the path between s and v. Due to NP-completeness of DCLC problem [19], some heuristic and approximation algorithms have been proposed in literatures [32, 33]. In this paper, to overcome this limitation, we propose a heuristic DCLC solver using TLBO algorithm.

TLBO [20] is a nature-inspired optimization algorithm, which is based on the effect of influence of a teacher on learners. In fact, TLBO emulates the teaching–learning process of a classroom to solve problems in an efficient manner [34]. In a classroom, a teacher attempts to increase the average result of the class. In addition to this, a learner with less knowledge can learn new knowledge from other learner who is better than him/her. TLBO inspires this mechanism as well, and describes two main modes of the learning process: teacher phase and learner phase. In teacher phase, the learners increase their knowledge by learning from the teacher while in learning phase; the learner interacts with each other in order to increase their knowledge. TLBO is a population-based algorithm in which a set of learners is considered as population, and the best solution in the population is defined as the teacher, i.e., the best solution of the objective function. One of the main advantages of TLBO is that it requires only the population size and the number of iterations as the control parameters. Each iteration in this algorithm both the teacher and learner phases are executed, and if the best solution (teacher) is better than existing solution, it is replaced with new one. Moreover, during each iteration the learners are improved based on teacher and themselves. The best solution is returned when the number of iterations is achieved.

Our proposed traffic engineering method takes the advantage of TLBO algorithm to solve DCLC problem. To this purpose, we consider a learner as a feasible multicast tree from source to destinations. In the initialization step, a set of learners is randomly created. The position of the k-th learner is represented as follows:

$$\begin{aligned} X_k =\left\{ {x_{k1} ,x_{k2} ,\ldots ,x_{kn} } \right\} \end{aligned}$$
(4)

where n is the number of destination nodes of learner k and \(x_{ki}\) is a feasible path from the source node to destination i. According to TLBO algorithm, the new position of the k-th learner in teacher phase is calculated as follows:

$$\begin{aligned} X_{k,{\textit{new}}} =X_{k,{\textit{old}}} +r\big [ {X_{{\textit{teacher}}} -\left( {T_F .X_{{\textit{mean}}} } \right) } \big ] \end{aligned}$$
(5)

where \(X_{k,{\textit{old}}}\) is the previous position of learner k, r is a random number in the range [0, 1], \(X_{{\textit{teacher}}}\) is the best solution, \(X_{{\textit{mean}}}\) is the mean, respectively. Variable \(T_F\) is teaching factor which can be either 0 or 1. In fact, this variable decides the value of mean to be changed and calculated as follows:

$$\begin{aligned} T_F ={\textit{round}}\big [ {1+rand\left( {0,1} \right) *\left( {2-1} \right) } \big ] \end{aligned}$$
(6)

As we mentioned before, each learner increase its knowledge in learning phase as well as teacher phase. In learning phase, learner k randomly selects learner j and then the new position of learner k is updated as follows:

If \(f\left( {X_k } \right) <f\left( {X_j } \right) \)

$$\begin{aligned} X_{k,{\textit{new}}} =X_{k,{\textit{old}}} +r\left[ {X_k -X_j } \right] \end{aligned}$$

Else

$$\begin{aligned} X_{k,{\textit{new}}} =X_{k,{\textit{old}}} +r\left[ {X_j -X_k } \right] \end{aligned}$$

where r is a random number in the range [0, 1].

figure e

The pseudo code shown in Algorithm 1 demonstrates our proposed TLBO algorithm for DCLC problem in detail. As shown in Algorithm 1, our proposed algorithm receives utilization_matrix anddelay_matrix to compute the cost of solution, and it checks the end-to-end delay constraint. In each iteration, if the new solution is better than current solution and satisfies delay constraint, it is replaced with the current solution. After the termination condition is met, the post-processing function converts the best solution to a vector as a suitable input for RIM module, which is responsible to install paths. In this paper, we set MaxIteration to 100, and the number of learners (population size) to 0.8*number of nodes in the network.

5 Performance evaluation

In this section, we conducted a comprehensive simulation in order to evaluate our proposed method. To assess our SDN-based multicast traffic engineering method, we compared it with IP multicast (PIM-SM) and ALM. PIM-SM is widely used in IP multicast and uses a shortest path multicast tree for routing between source and destinations [13]. As we mentioned in Sect. 1, in IP multicast, routes are computed by the routers in a distributed manner. Unlike SDN, the routers just have a local view on the network.

5.1 Experimental setup

We used mininet [35] as an emulator for implementing all target scenarios along with OpenDayLight [36] as a network controller. Since PIM-SM is not implemented in Mininet switches, this paper leverages the OpenDaylight controller to compute PIM-SM multicast trees by installing forwarding rules in the switches. The multicast tree of PIM-SM is calculated using SPT algorithm in which the cost of the route between the root of the tree and each destination is minimum. In PIM-SM, the cost of each link depends on the capacity of that link. Indeed, higher capacity of the link leads to the lower cost value. Moreover, in our experiments, ALM sends the data packets in unicast manner through shortest paths. All experiments are executed on a machine with following configuration: CPU Intel Core i7-4700MQ-2.4 GHz and 6 GB RAM. To investigate the behavior of the proposed method under different workloads, we simulated two different test-bed scenarios: small and large. The topologies of the scenarios are generated with BRITE [37] topology generator using well-known Waxman’s probability model [38]. The bandwidth of each link in both topologies is set 10 Mbps, and the delay for each link is randomly assigned from 20 to 100 ms. Furthermore, we generated artificial cross traffic to congest the network and assess the performance of multicasting method under different workloads. Configurations of the scenarios is as follows:

  • Scenario-1 the test-bed network consists of 10 OpenFlow switches. There are 16 links in the network for connecting OpenFlow switches together, and each switch connects to an average 3.2 other switches. There are 2 cross traffic which generate 3 Mbps UDP traffic.

  • Scenario-2 the test-bed network consists of 30 OpenFlow switches. There are 36 links in the network for connecting OpenFlow switches together, and each switch connects to an average 2.13 other switches. There are 4 cross traffic which generate 3 Mbps UDP traffic.

For all simulations, the controller is configured as a way to query the network statistics, execute the proposed method every 20 s and announce the minimum cost multicast tree to the relevant switches. We have adjusted different interval values for {5, 10, 15, 20, 25, and 30} s. The best solution obtained in 20 s interval. The maximum tolerable end to end delay for video streaming is set to 200 ms [30]. This value is the \(\Delta \) threshold value in the DCLC problem which is used for modeling the multicast tree. To emulate the video conferencing application, we configured the source node to stream video traffic with resolution 1280*720 at 30 fps to the multicast group for 300 s. The video content which is streamed by the source node is the Big Buck Bunny animation [39]. The simulation results are analyzed for different multicast group sizes in terms of following QoS metrics:

  • PSNR (Peak Signal-To-Noise Ratio): PSNR is a metric which is useful to measure video quality. This metric is used to calculate the error between the original streamed video and the received video.

  • Average end to end delay: it is the average time interval from source to destinations for each successfully delivered video packet.

  • Jitter: it is defined as an average of the deviation from average latency. The variation in arrival time of packets might be caused by network congestion or route changes.

  • Packet loss ratio: it is the total number of video packets which haven’t been delivered at destinations to the total number of packets streamed at the source of traffic.

5.2 Experimental results

In this section, we discuss and analyze the results for the two scenarios under different size of multicast group. Figures 2 and 3 illustrate average jitter and average end-to end delay for both scenarios, respectively. As it can be seen from Figs. 2 and 3, it can be concluded that our proposed method reduces jitter and end-to-end delay compared to ALM and PIM-SM. This is because of two reasons: first our proposed method gathers the statistics of link delays periodically. This mechanism helps to choose links with low delay. Second, our proposed models multicast QoS routing as a DCLC problem which guarantees end-to-end delay constraint. On the other hand, PIM-SM only computes multicast tree based on the link costs which are assigned by administrator. In this way, multimedia packets might be routed through the links which have long delay. As a result, the multimedia packets incur long delay. We observe that ALM has the worst performance in terms of jitter and end-to-end delay. Because in ALM the source streams multimedia contents for each client separately, more traffic are injected to the network and causes delay for each stream.

Fig. 2
figure 2

Average jitter versus multicast group size. a Scenario-1, b scenario-2

Simulation results for the packet loss ratio in Fig. 4 for different number of clients per group confirm that our proposed method achieves better performance. As we mentioned in previous section, when our proposed method models the routing to DCLC, it assigns link costs with respect to the utilization of links. Higher the link utilization link, higher the link cost, therefore when TLBO algorithm solves DCLC problem, it chooses low cost links, i.e., low utilized links to create minimum multicast tree. Consequently, multimedia contents are routed through low utilized link which are not congested. This mechanism not only reduces delay but also decreases the probability of packet loss due to congestion and buffer overflow. In our proposed method, the controller periodically gathers link utilization statistics and computes multicast tree. Therefore, if a link or set of links are congested, in the next time that the controller computes multicast tree, other low congested links are computed to create multicast tree.

Figure 4 also shows that PIM-SM and ALM have higher packet loss ratio. Because these two methods do not take care about link congestion for computing path between source and destination, the packet loss ratio is higher in compared to our proposed method. Moreover, in ALM the source streams multiple copy of the same multimedia content which leads more link utilization and more packet loss ratio.

Fig. 3
figure 3

Average end-to-end delay versus multicast group size. a Scenario-1, b scenario-2

Figure 5 shows the simulation results for the important multimedia QoS metric, i.e., PSNR. With respect to this metric, we can judge about the received video at the client side. Higher value for PSNR means that the video at the receiver side has higher quality. In multimedia applications, packet loss is one of the most important parameters which reduces the PSNR. As the matter of fact, due to packet loss in network, some packets of video are not received by the receiver. Therefore, some frames of original streamed video will be corrupted, i.e., the PSNR value reduces.

From Fig. 5, we can conclude that the proposed method increases the PSNR significantly compared to other two methods. Because our method uses low congested and short delay links to compute multicast route and also periodically gathers the network statistics, it achieves better performance and as a result, causes to increase the PSNR. Moreover, We observe from Fig. 5 that our proposed method achieves a gain of about 40 and 10% for PSNR in Scenario-1 and Scenario-2, respectively. In contrast to our method, PIM-SM and ALM are static methods and as we mentioned before, they do not have any mechanism to take care about packet loss and end-to-end delay. Because ALM consumes more resources compared to PIM-SM and also uses more bandwidth, it has the worst performance in terms of PSNR.

Fig. 4
figure 4

Average packet loss ratio versus multicast group size. a Scenario-1, b scenario-2

Fig. 5
figure 5

Average PSNR versus multicast group size. a Scenario-1, b scenario-2

6 Conclusions

In this paper, we proposed an adaptive multicast traffic engineering method for multicast communication over SDN. Traditional IP multicast techniques have limitations to provide QoS for multicast traffic such as multimedia. To overcome the limitations of traditional techniques, our proposed approach takes the advantages of SDN to facilitate network providers in order to provide QoS for multimedia applications. In this paper, first we modeled multicast routing as a DCLC problem and we proposed a heuristic algorithm based on TLBO to solve the problem. Then, we evaluated the proposed method for video conferencing applications under different workloads and scenarios. We investigated the results with respect to important QoS metrics in multimedia applications such as PSNR, packet loss and delay. Experimental results confirmed that our proposed method outperforms other multicasting techniques such as PIM-SM and ALM.