Keywords

1 Introduction

The development trends of modern infocommunication networks such as the intensive growth of new network applications, the growth of number and types of new network devices, lead to a significant increase in the volume of transmitted traffic. In this case, there is a need to manage heterogeneous flows and provide the required level of QoS while ensuring the security of processing data transmission of flows. This leads to the fact that providers of large networks need to look for new mechanisms for network management, with the ability to quickly configure networks.

Software-Defined Networking (SDN) and Network Function Virtualization (NFV) technologies allow you to control network management using customizable software, making management more intelligent and centralized. This makes the network more flexible, programmable and innovative [1, 2].

The introduction of SDN networks entails the need to develop adequate models that allow you to quickly obtain accurate estimates of QoS parameters, which are necessary at the network design stage and further during operation to be able to rapidly respond to changes in network requirements and modification of the network topology [3].

It should be noted that issues of performance and scalability of SDNs are still little studied in terms of constructing analytical models. Simulations and experiments on real networks are of great importance and are widely used to evaluate performance, whereas analytical modeling has its advantages.

Most of the works devoted to the study of SDN operation efficiency, are aimed at developing simulation models and setting up experiments on real equipment. In works [4]-[6] mathematical models are presented for evaluating the performance of controllers and switches under overload conditions. The OpenFlow-based SDN analytical model in [7, 8] approximates the data plane as an open Jackson network with a controller modeled as an M/M/1 queue. In [9], a model of SDN performance based on the OpenFlow protocol with several OpenFlow switches is presented, but this model was obtained under the assumption that processed flows are the simplest, while the performance of processing incoming messages of the SDN controller is calculated based on the M/G/1 model. However, it is known [10] that the flows generated by modern applications in the network are not Poisson. That requires taking into account the real parameters of traffic in the applied model.

The works [12, 13] present mathematical models for systems that process non-Poissonian flows. It should be noted that only functioning parameters of individual SDN sections are considered, not the network as a whole. The development of SDN analytical model as a G/G/1 system remains highly relevant. The technique presented in [9] is convenient to use to expand the packet processing model in the SDN when servicing non-Poisson flows based on the G/G/1 mathematical model.

The SDN analytical model based on the OpenFlow protocol is considered below, since it is the most common. Such a model can be used as a basic one for other communication protocols in the SDN. As processed streams, we consider packet traffic generated in the form of bursts, which most closely corresponds to the nature of modern streams formation [14].

Similar to the approach in [9], the process of packet arrival and the procedure for forwarding packets to the switch and the OpenFlow controller are analyzed separately. Then we studied the system for forwarding packets to SDN as a whole. The M/M/1 system is considered first, followed by the G/G/1 system.

2 Model of Queuing of OpenFlow Switches

In general, the SDN network can be represented in the form of a diagram shown in Fig. 1.

All analytical models of OpenFlow networks, developed so far [9, 12, 13], are based on the assumption that packet traffic to the SDN switch corresponds to the Poisson distribution. At the same time, traffic studies in [10, 15, 16] showed that the arrival of packets in infocommunication networks has a burst character and differs from the Poisson flow [17].

Fig. 1.
figure 1

Typical OpenFlow Network Scenario.

The procedure of forwarding packets to the switch is illustrated in Fig. 2. Each received packet is analyzed by the switch in order to identify a flow in regard to find the assigned rule for its processing or forwarding in its tables. If no forwarding entry is found for this stream, the switch sends a message containing the complete packet or its identifier to the SDN controller. The controller analyzes the packet, sets the flow processing rule to which the packet belongs, and sends the set rule to the switch to be added to its flow tables.

Since requests to the forwarding tables for all packets are independent of each other, the packet processing time can be represented as a random variable with an exponential distribution. Then, provided there is sufficient packet buffer capacity for all incoming queues in the switch, the packet forwarding queue model in the OpenFlow switch can be represented as the model of the queue type M/M/1 [9]. Further, this approach can be developed to the G/G/1 system.

To describe the queue in the OpenFlow switch, we introduce the following notation: \(\lambda _{i}^{\left( b \right) }\) is the intensity of the arrival of the Poisson stream of packets in a batch to the i-th OpenFlow switch, \(\lambda _i^{(p)}\) is intensity, characterizing the Poisson distribution of the number of packets in a batch,) \(\mu _i^{(s)}\) is the intensity of processing the s-th packet by the switch (corresponds to the exponential distribution).

Suppose that a burst of m packets arrives at the i-th (\(1\le i\le k\)) OpenFlow switch, where n packets are waiting for their turn for processing. The incoming l-th packet must wait until n waiting packets in the buffer and the first (l–1) packets from the same batch are processed. Based on these assumptions for the M/M/1 system, we can obtain the ratio between the average queue length and the average time spent by a packet in the queue [9].

$$\begin{aligned} \overline{L_{i}^{\left( s \right) }}=\mathop {\sum }_{n=0}^{\infty }n{{p}_{n}}=\lambda _{i}^{\left( b \right) }\lambda _{i}^{\left( p \right) }\overline{W_{i}^{\left( s \right) }}. \end{aligned}$$
(1)

The average time of a packet’s stay in the switch is determined in a similar way.

$$\begin{aligned} \overline{W_{i}^{\left( s \right) }}=\frac{\lambda _{i}^{\left( p \right) }+1}{2\left( \mu _{i}^{\left( s \right) }-\lambda _{i}^{\left( b \right) }\lambda _{i}^{\left( p \right) } \right) }~. \end{aligned}$$
(2)

And based on (1) and (2), you can write an expression to estimate the average length of the switch queue

$$\begin{aligned} \overline{L_{i}^{\left( s \right) }}=\frac{\lambda _{i}^{\left( b \right) }\lambda _{i}^{\left( p \right) }\left( \lambda _{i}^{\left( p \right) }+1 \right) }{2\left( \mu _{i}^{\left( s \right) }-\lambda _{i}^{\left( b \right) }\lambda _{i}^{\left( p \right) } \right) }~. \end{aligned}$$
(3)

3 SDN Controller Queuing Model

Now let’s look at the procedure of forwarding packets to the OpenFlow controller. Upon arrival of a new flow, the OpenFlow switch sends an incoming packet message as a request to configure flow processing to its SDN controller (request packet). In this regard, the incoming flow of messages from the switch to its controller corresponds to the process of the flow entering the switch. In an OpenFlow network, the controller is usually responsible for several switches and receives a stream of incoming request packets from each of them.

Based on the assumption that the arrival process on the i-th switch is Poisson with the parameter \(\lambda _{i}^{\left( f \right) }\), and the processes on all k switches are independent of each other, we can further conclude that the total flow of message packets to the controller is also Poisson ...

Fig. 2.
figure 2

SDN Controller Inbound Processing.

For an SDN controller responsible for k OpenFlow switches, the flow arriving at the i-th (i = 0, 1, 2, ..., k) switch is a Poisson flow with the parameter \(\lambda _{i}^{\left( f \right) }\), independent of messages on other switches, then all packets of incoming messages from k switches to the controller correspond to the Poisson distribution with the parameter \(\lambda _{(c)}\).

$$\begin{aligned} \lambda _{\left( c \right) }=\mathop \sum _{i=1}^{10}\lambda _{i}^{\left( f \right) }. \end{aligned}$$
(4)

Upon arrival of a request packet from the switch, the controller determines the flow transfer rule to which the packet that has come from the switch belongs. To do this, the controller processing unit reads the incoming packet message from the queue after the last message has been processed. The incoming packet message is then processed by looking up the forwarding information base (FIB). The FIB entry contains routing information obtained using routing protocols or manual programming. Finally, the controller encapsulates the found forwarding rule in a packet message for the appropriate switch.

When processing an incoming packet-request from the switch by the SDN controller, the processing time of the incoming packet message is mainly determined by FIB lookups, which are performed by matching the longest prefix. In this regard, in [9, 18], it was assumed that the search time in the FIB is considered to be distributed normally with the mean value \({1}/{\mu ^{(c)}}\) and variance \(\sigma ^{(c)}\). The parameter \(\mu ^{(c)}\) is the average processing rate of incoming packet messages in the controller, and the parameter \(\sigma ^{(c)}\) is the standard deviation. The queue in the controller is organized according to the FIFO (First In - First Out) type, and the arrival and processing of incoming message packets are independent of each other.

In accordance with the assumptions made, it is possible to characterize the processing of message packets by the SDN controller using the M/N/1 queuing model, where the symbol N corresponds to a normal distribution.

To analyze a queue in a controller, it is convenient to use a semi-Markov process as a model, in which state changes occur at the moment the packet leaves. For such moments, the nested Markov chain should be defined as the number of claims present in the system at the moment the next serviced claim leaves. In this case, you can use the approach shown in [19], which is based on the application of the method of additional variables. It should be noted that the same technique was used to analyze the queue in the SDN controller in [9].

The length of the packet message queue in the controller at time t is denoted by L(t). For any fixed time t, if there is a processed packet message, the distribution of the remaining processing time does not depend on time t, and the queue length \(L(t), t \le 0\) no longer has the properties of a Markov stream. Suppose that \(\upsilon _n\) is the number of incoming message packets in the controller during the processing time \(x_n\) of the n-th message. Then \(\left\{ {\upsilon _n, n \ge 1} \right\} \) is a built-in Markov chain.

If \(t_n\) is the required processing time of the (n+1)-th message, for any \(t_n\) the probability density function, in accordance with the above assumptions, can be written as

$$\begin{aligned} f(x)=\frac{1}{\sqrt{2\pi } \sigma ^{(c)} } e^{\frac{\left( x-1/{\mu }^{(c)} \right) ^2 }{{2{\sigma }^{( c)}}^{2}}}. \end{aligned}$$
(5)

Let us denote by \(\eta _n\) the number of new packets arriving at the controller during processing of the \((n+1)\)-th packet under the assumption that the arrival process is Poisson. Then

$$\begin{aligned} P\left( \eta _n =k \right) =P\left( \eta _n =k|t_n =x \right) f(x)\mathrm {d}x=\int _{0}^{\infty }\frac{(\lambda ^{(c)}x)^2}{k!}e^{-\lambda ^{(c)}x}f(x)\mathrm {d}x, \end{aligned}$$
(6)

where \(P\left( \eta _n =k|t_n =x \right) \) is the probability of one-step transition, \(k=0,1,2,...\).

We set that \(a_k=P(\eta _n =k) > 0\). Then \(\left\{ {\upsilon _n, n \ge 1} \right\} \) constitutes a Markov chain, the state change diagram of which is shown in Fig. 3, and the transition matrix will have the following form [9, 19]

\(P= \begin{pmatrix} a_0 &{} a_1 &{} a_2 &{} \cdots \\ a_0 &{} a_1 &{} a_2 &{} \cdots \\ 0 &{} a_0 &{} a_1 &{} \cdots \\ 0 &{} 0 &{} a_1 &{} \cdots \\ \vdots &{} \vdots &{} \vdots &{} \ddots \\ \end{pmatrix}\)

Fig. 3.
figure 3

Transition probability diagram for an embedded Markov chain of type M/G/1.

Using the apparatus of generating functions for processing the sequences \(\upsilon _n\) and \(\eta _n\), according to [9, 19], for the average queue length of messages from the switch to the controller in the M/G/1 system, we can obtain

$$\begin{aligned} \overline{L^{(c)}}=\rho ^{(c)}+\frac{{\rho ^{(c)}}^2+{\lambda ^{(c)}}^2{\sigma ^{(c)}}^2}{2(1-\rho ^{(c)})}, \end{aligned}$$
(7)

where \(\rho ^{(c)}\) is the load factor of the controller.

For the average residence time of packet messages in the controller, the expression will look like

$$\begin{aligned} \overline{W^{(c)}}=\frac{\overline{L^{(c)}}}{\lambda ^{(c)}}=\frac{1}{{\mu ^{(c)}}}+\frac{{\rho ^{(c)}}^2+{\lambda ^{(c)}}^2{\sigma ^{(c)}}^2}{2{\lambda ^{(c)}}(1-\rho ^{(c)})}. \end{aligned}$$
(8)

4 SDN Network Queuing Model with OpenFlow

On OpenFlow networks, the switch maintains a queue for all packets arriving on any ingress port and forwards them according to its internal flow tables. If there is no entry in the tables corresponding to the packet, that is, the packet belongs to a new flow, the switch will send a request for flow processing rules to its SDN controller and, having received the corresponding rule from the controller, sends the packets of this flow in accordance with this rule. At the same time, the controller keeps a queue for all request packets from its slave switches. Using the above analysis of the service process for OpenFlow switches and SDN controllers, we can represent the packet processing model in OpenFlow networks as a queuing system according to Fig. 2.

In Fig. 2, the i-th OpenFlow switch with rate \(\mu ^{(s)}\) processes bursts of packets arriving at rate \(\lambda ^{(p)}\lambda ^{(p)}\). Suppose that the incoming packet in the i-th switch belongs to a new flow with probability \(q_i\), the switch sends a request packet at a rate \(\lambda _{i}^{(f)}\) to its controller SDN. The controller receives request packets with a rate \(\lambda ^{(c)}\) from k OpenFlow switches with a \(\mu ^{(c)}\) and processes them. Replies to request packets are sent back to forward and update the flow tables in the corresponding switch at a rate

$$\begin{aligned} {\lambda _{i}^{(f)}}=q_i{\lambda _{i}^{(b)}}{\lambda _{i}^{(p)}}. \end{aligned}$$
(9)

Let \(W_i\) be the time of packet forwarding through the i-th OpenFlow switch, you can calculate it taking into account two possible processing cases: direct forwarding and forwarding with the participation of the controller. The packet forwarding time in the latter case consists of two parts: the packet sojourn time in the switch \(W_i^{(s)}\) and the sojourn time of the corresponding packet transmission message in the \(W^{(c)}\) controller.

$$\begin{aligned} {{W}_{i}}=\left\{ \begin{matrix} W_{i}^{\left( s \right) }~~with~probability~1-{{q}_{i}} \\ \ W_{i}^{\left( s \right) }+{{W}^{\left( c \right) }}~with~probability~~{{q}_{i}}. \\ \end{matrix} \right. \end{aligned}$$
(10)

The average time to process a packet in SDN can be determined by the average time to forward packets through the OpenFlow switch (\(\overline{W_{i}^{( s )}}\)) according to the diagram shown in Fig. 2.

5 Results for the System M/G/1

It can be shown [9] that the average time for forwarding packets through the OpenFlow switch \(\overline{{{W}_{i}}}\), where the waiting times \(W_i^{(s)}\) and \(W^{(c)}\) from (10) can be obtained from expressions (6) and (8) respectively, finally they will have the form

(11)

where \({\delta }_{i}^{(s)}\) and \(\delta ^{(c)}\) are the service rates in the i-th switch and controller, respectively.

The result for estimating the average packet processing time in SDN, obtained in the form of formula (11), corresponds to the mathematical model M/N/1.

Let us introduce the notation \({{\delta }_{i}^{(s)}}=1/\overline{W_{i}^{\left( s \right) }}\) for the i-th switch and \({{\delta }^{\left( c \right) }}=1/\overline{{{W}^{\left( c \right) }}}\) for the controller, where \({\delta }_{i}^{(s)}\) and \({\delta }^{\left( c \right) }\) are the parameters, which are defined as [19], \(\xi \) is the root of the equation \(\xi =\Lambda _V(\mu -\mu \xi )\).

Here \(\Lambda _V\) is the Laplace transform of the density \(f_V(\cdot )\), \(\mu \) is the average intensity of packet processing in the system, and \({\delta _{i}}^{(s)}\) and \({\delta }^{(c)}\) are the parameters of the density of the distribution of processing time in the queue in the i-th switch and controller, respectively. The method for determining these parameters is well described in [19,20,21].

Based on the above, more general results for the M/G/1 system can be obtained. The expressions for the probability density of the packet processing time S in the controller \({{f}_{( S)i}}( \cdot )\) and the packet processing time C in the switch \({{f}_{( C )}}( \cdot )\) are represented in the form

$$\begin{aligned} {{f}_{\left( S \right) i}}\left( u \right) ={{\delta }_{i}^{(s)}}{{e}^{-{{\delta }_{i}^{(s)}}u}}, \end{aligned}$$
(12)
$$\begin{aligned} f(x)=\frac{1}{\sqrt{2\pi } \sigma ^{(c)} } e^{-\frac{\left( u-1/{\delta }^{(c)} \right) ^2 }{{2{\sigma }^{( c)}}^{2}}}. \end{aligned}$$
(13)

Assuming that C and S are independent, and taking into account (12) and (13) in expression (10), we obtain

$$\begin{aligned} {{w}_{\left( S,C \right) i}}\left( u \right) =\left( 1-{{q}_{i}} \right) {{f}_{\left( S \right) i}}\left( u \right) +{{q}_{i}}\left[ {{f}_{\left( S \right) i}}\left( u \right) \odot {{f}_{\left( C \right) }}\left( u \right) \right] , \end{aligned}$$
(14)

where \(\odot \) is the convolution symbol The second term in expression (14) can be represented as

$$\begin{aligned} q_i\int _{0}^{u}\frac{1}{\sqrt{2\pi } \sigma ^{(c)} }e^{-\frac{\left( x-1/{\delta }^{(c)} \right) ^2 }{{2{\sigma }^{( c)}}^{2}}}\cdot \delta _{i}^{(s)}\cdot e^{-\delta _{i}^{(s)}(u-x)}\mathrm {d}x. \end{aligned}$$
(15)

The upper limit of integration in (15) is u that is equal to infinity for the normal distribution and is equal to some finite value (the maximum value of the packet duration in the controller) for the truncated normal distribution.

For the M/G/1 system, where the normal distribution is used as an example of an arbitrary distribution, that is, for the M/N/1 system, the expression for the probability density of the packet processing time in the system can be written as:

$$\begin{aligned} \begin{matrix} {{w}_{\left( S,C \right) i}}\left( u \right) =\left( 1-{{q}_{i}} \right) {{\delta }_{i}^{(s)}}{{e}^{-{{\delta }_{i}^{(s)}}u}} &{} \\ + q_i\frac{{\delta _{i}}^{(s)} }{2R}e^{-\delta _{i}^{(s)}u}e^{((\frac{1}{\delta ^{(c)}})^2)/2\sigma ^{(c)2})+\sigma ^{(c)2}\delta _{i} ^{(s)2}-2\delta _{i} ^{(s)}\frac{1}{\delta ^{(c)}}} &{} \\ \times [1-\varPhi (\frac{\sigma ^{(c)}}{\sqrt{2}}( \delta _{i} ^{(s)} -\frac{1}{\delta ^{(c)}\sigma ^{(c)2} }))], &{} \end{matrix} \end{aligned}$$
(16)

where \( \varPhi (x)= \frac{2}{\sqrt{\pi }}\int _{0}^{x}e^{-t^2}\mathrm {d}t\) [22],

\(R=\frac{1}{2}[ 1+\varPhi (\frac{1}{\sqrt{2}\delta ^{(c)}\sigma ^{(c)}}) ]\) is normalizing constant, which is determined from the condition \(\int _{0}^{T}f(u)\mathrm {d}u=1\). For a truncated normal distribution

\(R=\frac{1}{2}\varPhi (\frac{\frac{1}{\delta ^{(c)}}\sigma ^{(c)}}{\sqrt{2}})\)

Estimating the values of the integral function is associated with some difficulties that lead to the need to use various methods of approximation in the form of infinite power series [21], infinite continued fractions [23], polynomials of a special form [23] and empirical formulas [24]. In the case of expression (16), the values of the function \(\varPhi (x)\) can be determined in a table.

Let us compare the time densities of packet processing in the \(H_2/H_2/1\) system according to (16) for different distribution parameters. The comparison result is shown in Fig. 4.

Fig. 4.
figure 4

Probability densities of packet processing times in SDN according to the formula (16): f(t) – \(\delta _{i}^{(s)}=0,2, \sigma ^{(c)}=0,5\); f1(t) – \(\delta _{i}^{(s)}=1, \sigma ^{(c)}=1\); f2(t) – \(\delta _{i}^{(s)}=0,2, \sigma ^{(c)}=0,8\); f3(t) – \(\delta _{i}^{(s)}=0,2, \sigma ^{(c)}=0,45\).

From a comparison of the graphs shown in Fig. 4, it follows that for the values of the distribution parameters \({{\delta }_{i}^{(s)}}=1\) and \({{\delta }^{( c )}}=1\), the distribution degenerates into an exponential, in other cases an insignificant peak appears.

The final expression for estimating the average packet processing time in the M/N/1 system for SDN will have the form

$$\begin{aligned} {{\bar{W}}_{\left( S,C \right) i}}\left( u \right) =\left( 1-{{q}_{i}} \right) \frac{1}{{{\delta }_{i}^{(s)}}}+{{q}_{i}}M\frac{1}{{{\delta }_{i}}^{(s)2}}, \end{aligned}$$
(17)

where \(M=\frac{\delta _{i}^{(s)}}{2R}\cdot e^{{((\frac{1}{\delta ^{(c)}})^2/2\sigma ^{(c)2})+\sigma ^{(c)2}\delta _{i} ^{(s)2}-2\delta _{i} ^{(s)}\frac{1}{\delta ^{(c)}}} [1-\varPhi (\frac{\sigma ^{(c)}}{\sqrt{2}}( \delta _{i} ^{(s)} -\frac{1}{\delta ^{(c)}\sigma ^{(c)2} }))]}\).

Taking into account formulas (1) and (17), the expression for estimating the average queue length will be written in the form

$$\begin{aligned} L=\lambda _{i}^{(b)}\lambda _{i}^{(p)}\cdot {(1-q_i)\frac{1}{\sigma _{i} ^{(s)}}+q_i M\frac{1}{{\sigma _{i} ^{(s)}}^2}}. \end{aligned}$$
(18)

This approach allows us to evaluate the performance of the SDN network and the main parameters of the quality of service of traffic in the SDN network in the case of processing Poisson streams. Given that modern applications generate non-Poissonian traffic, queuing systems are better described by G/G/1 models.

6 SDN Network Queuing Model with OpenFlow

It is interesting to compare the values of the estimates of the SDN functioning parameters obtained for the M/G/1 and G/G/1 systems. Obviously, for this, one should use the result shown in (16), (17), and (18) for the M/N/1 system and find an expression for the packet waiting time density in the G/G/1 system. As an example of an arbitrary probability distribution for the query processing time in the controller, similarly to the approach shown for the M/N/1 system, we can use the normal distribution (for the random variable C) (15), and for the random variable S, we can use the probability density as an approximation by hyperexponential distribution:

$$\begin{aligned} {{f}_{\left( S \right) i}}\left( u \right) =p{{\delta }_{1i}^{(s)}}{{e}^{-{{\delta }_{1i}^{(s)}}u}}+\left( 1-p \right) {{\delta }_{2i}^{(s)}}{{e}^{-{{\delta }_{2i}^{(s)}}u}}, \end{aligned}$$
(19)

where p, \(\delta _{1i} ^{(s)}\), \(\delta _{2i} ^{(s)}\) is distribution parameters. Then the G/G/1 model will be approximated by the \(H_2/N/1\) model, and expression (16) takes the form

$$\begin{aligned} \begin{matrix} {{w}_{\left( S,C \right) i}}\left( u \right) =\left( 1-{{q}_{i}} \right) \left( p{{\delta }_{1i}^{(s)}}{{e}^{-{{\delta }_{1i}^{(s)}}u}}+\left( 1-p \right) {{\delta }_{2i}^{(s)}}{{e}^{-{{\delta }_{2i}^{(s)}}u}} \right) &{} \\ +\,{{q}_{i}}\left\{ {{M}_{1}}{{e}^{-{{\delta }_{1i}^{(s)}}u}}+\left( 1-p \right) {{M}_{2}}{{e}^{-{{\delta }_{2i}^{(s)}}u}} \right\} , &{} \end{matrix} \end{aligned}$$
(20)

where \( M_1=\frac{\delta _{1i}^{(s)}}{2R}\cdot e^{{((\frac{1}{\delta ^{(c)}})^2/2\sigma ^{(c)2})+\sigma ^{(c)2}\delta _{1i} ^{(s)2}-2\delta _{1i} ^{(s)}\frac{1}{\delta ^{(c)}}} [1-\varPhi (\frac{\sigma ^{(c)}}{\sqrt{2}}( \delta _{1i} ^{(s)} -\frac{1}{\delta ^{(c)}\sigma ^{(c)2} }))]}\),

\( M_2=\frac{\delta _{2i}^{(s)}}{2R}\cdot e^{{((\frac{1}{\delta ^{(c)}})^2/2\sigma ^{(c)2})+\sigma ^{(c)2}\delta _{2i} ^{(s)2}-2\delta _{2i} ^{(s)}\frac{1}{\delta ^{(c)}}} [1-\varPhi (\frac{\sigma ^{(c)}}{\sqrt{2}}( \delta _{2i} ^{(s)} -\frac{1}{\delta ^{(c)}\sigma ^{(c)2} }))]}\).

The value of the average packet processing time in the system when using the approximation by the hyperexponential distribution of the distribution density of the packet processing time in the switch can be written as:

$$\begin{aligned} {{\bar{W}}_{\left( S,C \right) i}}\left( u \right) =\left( 1-{{q}_{i}} \right) \left( \frac{p}{{{\delta }_{1i}^{(s)}}}+\frac{\left( 1-p \right) }{{{\delta }_{2i}^{(s)}}} \right) + { {{q}_{i}}\left[ {{M}_{1}}\frac{p}{{{\delta }_{1i}^{(s)}}^{2}}+{{M}_{2}}\frac{\left( 1-p \right) }{{{\delta }_{2i}^{(s)}}^{2}} \right] }. \end{aligned}$$
(21)

Similar to that obtained in (18) and taking into account (19), the expression for estimating the average queue length is written as:

$$\begin{aligned} \bar{L}=\lambda _{i}^{\left( b \right) }\lambda _{i}^{\left( p \right) }\left\{ \left( 1-{{q}_{i}} \right) \left( \frac{p}{{{\delta }_{1i}^{(s)}}}+\frac{\left( 1-p \right) }{{{\delta }_{2i}^{(s)}}} \right) +{{q}_{i}}\left[ {{M}_{1}}\frac{p}{{{\delta }_{1i}}^{(s)2}}+{{M}_{2}}\frac{\left( 1-p \right) }{{{\delta }_{2i}}^{(s)2}} \right] \right\} . \end{aligned}$$
(22)

To obtain a more general result, the approximation of arbitrary densities in the G/G/1 system is preferable to be represented in the form of hyperexponential distributions for random variables S and C, that is, it is necessary to use expression (19) for S, and for C

$$\begin{aligned} {{f}_{\left( C \right) }}\left( u \right) =g{{\delta }_{1}^{(c)}}{{e}^{-{{\delta }_{1}^{(c)}}u}}+\left( 1-g \right) {{\delta }_{2}^{(c)}}{e}^{-{\delta }_{2}^{(c)}}, \end{aligned}$$
(23)

where g, \(\delta _{1}^{(c)}\), \(\delta _{2}^{(c)}\) is packet processing time density parameters in the controller. After such a replacement, the system G/G/1 will be approximated by the system \(H_2/H_2/1\).

At the same time, for the density of the packet processing time in the \(H_2/H_2/1\) system in the SDN network, one can obtain

$$\begin{aligned} f(x)=\frac{1}{\left( \sqrt{2\pi } \right) \sigma ^{(c)} } e^{\frac{\left( x-1/{\mu }^{(c)}) \right) ^2 }{{2{\sigma }^{( c)}}^{2}}}, \end{aligned}$$
(24)

where \(A=\frac{pg{{\delta }_{1i}^{(s)}}}{{{\delta }_{1i}^{(s)}}-{{\delta }_{1}^{(c)}}}\), \(B=\frac{\left( 1-p \right) g{{\delta }_{2i}^{(s)}}}{{{\delta }_{2i}^{(s)}}-{{\delta }_{1}^{(c)}}}\), \(L=\frac{p\left( 1-g \right) {{\delta }_{1i}^{(s)}}}{{{\delta }_{1i}^{(s)}}-{{\delta }_{2}^{(c)}}}\), \(D=\frac{\left( 1-p \right) \left( 1-g \right) {{\delta }_{2i}}}{{{\delta }_{2i}^{(s)}}-{{\delta }_{2}^{(c)}}}\).

Using (24), the analytical expression for the average packet processing time in the \(H_2/H_2/1\) system for the SDN network can be written as:

$$\begin{aligned} {{\bar{W}}_{\left( S,C \right) i}}\left( u \right) =~\left( 1-{{q}_{i}} \right) \left[ \frac{p}{{{\delta }_{1i}^{(s)}}}+\frac{\left( 1-p \right) }{{{\delta }_{2i}^{(s)}}} \right] +{{q}_{i}}\left[ \frac{\left( A+B \right) }{{{\delta }_{1}^{\left( c \right) }}}+\frac{\left( L+D \right) }{{{\delta }_{2}^{\left( c \right) }}} \right] . \end{aligned}$$
(25)

From (25), the value of the average queue length in the SDN is written as

$$\begin{aligned} \bar{L}=\lambda _{i}^{\left( b \right) }\lambda _{i}^{\left( p \right) }~\left\{ \left( 1-{{q}_{i}} \right) \left[ \frac{p}{{{\delta }_{1i}^{(s)}}}+\frac{\left( 1-p \right) }{{{\delta }_{2i}^{(s)}}} \right] +{{q}_{i}}\left[ \frac{\left( A+B \right) }{{{\delta }_{1}^{\left( c \right) }}}+\frac{\left( L+D \right) }{{{\delta }_{2}^{\left( c \right) }}} \right] \right\} . \end{aligned}$$
(26)

The delay variation can be determined taking into account (25) in the form of the expression

$$\begin{aligned} {{\sigma }_{\left( S,C \right) i}}\left( u \right) =\sqrt{\begin{matrix} \left( 1-{{q}_{i}} \right) \left[ p\left( \frac{2}{\delta _{1i}^{(s)2}}-\frac{1}{{{\delta }_{1i}^{(s)}}} \right) +\left( 1-p \right) \left( \frac{2}{\delta _{2i}^{(s)2}}-\frac{1}{{{\delta }_{2i}^{(s)}}} \right) \right] + &{} \\ +{{q}_{i}}\left[ \left( A+B \right) \left( \frac{2}{\delta _{1}^{(c)2}}-\frac{1}{{{\delta }_{1}^{( c )}}} \right) +\left( L+D \right) \left( \frac{2}{\delta _{2}^{(c)2}}-\frac{1}{{{\delta }_{2}^{(c)}}} \right) \right] . &{} \end{matrix}} \end{aligned}$$
(27)

As a result, formulas were obtained for the density of distributions of packet service times in the SDN network, if the queuing system is represented by the G/G/1 model for two cases:

  1. 1)

    the distribution density of the packet processing time in the switch is approximated by a hyperexponential distribution, the distribution density of the packet processing time in the controller is estimated by a normal distribution (the \(M/H_2/1\) system);

  2. 2)

    the distribution density of packet processing times in the switch and controller is approximated by a hyperexponential distribution (the \(H_2/H_2/1\) system).

7 Numerical Results

Formula (17) allows us to estimate the average packet processing time in the G/N/1 system for the SDN network; earlier in [9], formula (11) was obtained to approximate the average packet processing time in the M/N/1 system. To determine the accuracy of the estimates obtained, it is necessary to compare the values accepted for various models, including the results received for M/N/1 and \(H_2/N/1\).

Let us compare the numerical estimates of the average processing times in the M/N/1 system for these two approaches. We will accept the following conditions for the operation of the network: \(\lambda _{i}^{\left( b \right) }\lambda _{i}^{\left( p \right) }=0,5\), \(\lambda _{i}^{\left( p \right) }=1\), \(\mu ^{(c)}=1\), \(\sigma ^{(c)}=1\) number of switches is 1.

The values of the functioning parameters - the average packet processing time and the average queue length for SDN, are presented in the table (Table 1).

Table 1. The values of the functioning parameters.

Figure 5 shows the dependence of the delay in the SDN network depending on the network load factor for the cases considered.

Fig. 5.
figure 5

The graph of the dependence of the delay on the load factor in the SDN network.

Obviously, the average packet processing time in the SDN network is expected to grow with the increase in the network load factor.

8 Conclusion

In the process of designing, deploying and operating networks, it is necessary to take into account the quality of service parameters of the flows processed in the network. In this paper, a model of the SDN network functioning is built on the basis of the mathematical apparatus of the queuing theory. As a result, analytical expressions were obtained for evaluating the main parameters of traffic QoS in SDN for the M/G/1 system and for the G/G/1 system, provided that the flows entering the system are mutually independent and there are no correlations within the sequences of time intervals between packets and processing times packages.

In the development of this work, it is planned to build an SDN model for the G/G/1 system when processing correlated streams. The problem of accounting for correlations within flows will improve the accuracy of the analytical model, which can further help in the development of accurate simulation models of the functioning of SDN networks. This will make it possible to quickly analyze the efficiency of the SDN network in real operating conditions.