Simulação via Eventos Discretos

Discrete Time Event Simulation

Simulação de Rede Pt. 2 (Navegação na Web e Chamadas em Tempo Real)

Nesta etapa, acrescentaremos ao simulador do roteador, a possibilidade de que os usuários realizem chamadas em tempo real. Além da simulação da navegação web realizada anteriormente, uniremos a simulação das chamadas web, o que implica que o roteador atenderá a dois tipos de requisição: pacotes web e pacotes de chamadas. A simulação de chamadas ocorre de maneira similar com a simulação anterior, pois envolve a chegada de pacotes que seguem uma distribuição exponencial. Entretanto, para esse caso, as chamadas em tempo possuem um comportamento distinto, uma vez que podem ocorrer de forma simultânea.


Cenário

Neste novo cenário, os pacotes de navegação web seguem o mesmo comportamento anterior. No entanto, com a adição deste novo evento, é necessário lidar com pacotes de chamadas em tempo real, que possuem características diferentes e principalmente, podem ocorrer de forma simultânea. Para realizarmos as simulações, é necessário controlar algumas variáveis. Com a adição deste evento, temos três variáveis aleatórias adicionais:

Para este cenário, assumimos que:

Foi estabelecido que as chamadas utilizam o CODEC G.711, cujas características são:

Com o cenário definido, podemos prosseguir com os cálculos.

Ocupação

Restrição imposta:
A ocupação do link deve obedecer os seguintes cenários:

  • \(\rho_1\) = 60%
  • \(\rho_2\) = 80%
  • \(\rho_3\) = 95%
  • \(\rho_4\) = 99%

Assim, devemos calcular o tamanho do link (\(R\)) previamente para que ao final da execução esses cenários sejam satisfeitos.

Utilizaremos a fórmula derivada no artigo anterior para calcular a capacidade de atendimento do link em bytes/s, garantindo que as utilizações desejadas sejam alcançadas:

$$R = \frac{L \cdot \lambda}{\rho}$$

Taxa de chegada de pacotes no sistema (\(\lambda\))

A taxa de chegada de pacotes no sistema será a soma da taxa de chegada de pacotes de navegação web e da taxa de chegada de pacotes de chamadas em tempo real. Porém, conforme apontado anteriormente, múltiplas chamadas podem ocorrer simultaneamente. Assim, a taxa de chegada de pacotes de chamadas em tempo real deve ser multiplicada pelo número de chamadas simultâneas no sistema \((N)\).

$$\lambda = \lambda_{web} + (\lambda_{call} * N)$$

O número médio de chamadas simultâneas pode ser calculado por: $$N = \frac{\text{Tempo de duração das chamadas}}{\text{Intervalo entre o início de novas chamadas }}$$ Estabelecemos os seguintes valores na simulação:
  • Tempo de duração das chamadas = \(60\)s
  • Intervalo entre o início de novas chamadas = \(30\)s
$$N = \frac{60}{30} = 2 \, \text{chamadas}$$
A taxa de chegada de pacotes de navegação web se mantêm o mesmo. Com a inclusão da possibilidade de realização de chamadas, também devemos encontrar a taxa de chegada de pacotes para esse cenário.
  • \(\lambda_{web} = 100 \, \text{pacotes/s}\)
  • \(\lambda_{call} = \frac{1}{0.02} * N = 50 * 2 = 100 \, \text{pacotes/s}\)
$$\lambda = \lambda_{web} + \lambda_{call} * N$$ $$\lambda = 100 + 100 $$ $$\lambda = 200 \, \text{pacotes/s}$$

Tamanho Médio dos Pacotes do sistema (\(L\))

Como possuímos dois tipos de pacotes sendo atendidos neste sistema, o tamanho médio do pacote, do sistema como todo, deve ser calculado com base na probabilidade de chegada de cada um dos dois tipos:

$$L = L_{web} * P_{web} +L_{call} * P_{call}$$

  • \(L\): Tamanho médio em bytes dos pacotes que chegam no sistema
  • \(L_{web}\): Tamanho médio em bytes dos pacotes de navegação web
  • \(L_{call}\): Tamanho médio em bytes dos pacotes de chamada em tempo real
  • \(P_{web}\): Probabilidade de um pacote gerado ser de navegação web
  • \(P_{call}\): Probabilidade de um pacote gerado ser de uma chamada em tempo real

O tamanho médio dos pacotes de navegação web pode ser calculado com base nas proporções fornecidas: $$L_{web} = (0.5 \times 550) + (0.4 \times 40) + (0.1 \times 1500)$$ $$L_{web} = 441 \ \text{bytes}$$

Já o tamanho médio dos pacotes de chamada em tempo real pode ser calculado com base em suas particularidades: Temos que a taxa de geração é de 64 Kbps: $$ 64 \, \text{Kbps} = \frac{64 \times 1000 }{8} = 8000 \, \text{bytes/s} $$ Como cada pacote é gerado a uma taxa de 20 ms: $$ 8000 \times 0,02 = 160 \, \text{bytes} $$ $$L_{call} = 160 \ \text{bytes}$$

O próximo passo é calcular a probabilidade de chegada de cada pacote, para isso precisamos ter conhecimento da taxa de chagada de pacotes no sistema \((\lambda)\). $$P_{web} = \frac{\lambda_{web}}{\lambda} = \frac{100}{200} = 0.5$$ $$P_{call} = \frac{\lambda_{call}}{\lambda} = \frac{100}{200} = 0.5$$

Com isso. podemos finalizar o cálculo do tamanho médio do pacote no sistema: $$L = L_{web} * P_{web} +L_{call} * P_{call}$$ Substituindo os valores: $$L = 441 * 0.5 + 160 * 0.5$$ $$L = 300.5 \, \text{bytes}$$

Tamanho do Link (\(R\))

Agora que dispomos de todos os valores necessários, podemos calcular o tamanho do link para cada ocupação desejada.

Cálculo da Capacidade do Link para as diversas ocupações

Com a fórmula obtida, podemos calcular a capacidade do link previamente para diferentes ocupações.

Temos que:
  • \(\lambda = 200 \ \text{pcts/s}\)
  • \(L_{médio} = 300.5\ \text{bytes}\)
  • \(\rho = \{0.6, 0.8, 0.95, 0.99\}\)
  1. 60% de ocupação: $$R_{60\%} = \frac{ 300.5 \cdot 200}{0.6} \approx 100166,6667 \ \text{bytes/s}$$
  2. 80% de ocupação: $$R_{80\%} = \frac{ 300.5 \cdot 200}{0.8} = 75125 \ \text{bytes/s}$$
  3. 95% de ocupação: $$R_{95\%} = \frac{ 300.5 \cdot 200}{0.95} \approx 63263,1579 \ \text{bytes/s}$$
  4. 99% de ocupação: $$R_{99\%} = \frac{ 300.5 \cdot 200}{0.99} \approx 60707,0707 \ \text{bytes/s}$$

Resultado das Simulações

Pacotes de Navegação Web + Ligação em Tempo Real:

Pacotes de Ligação em Tempo Real:


Medidas de Desempenho

A seguir foram calculadas medidas de desempenho com base em cada simulação realizada, cada gráfico conta com uma legenda onde estão classificadas as simulações e seus respectivos parâmetros de execução:

Em algumas medidas, existem campos que podem ser utilzados para validar o desempenho do sistema. *Clique nas legendas para ocultar os gráficos para uma melhor visualização

1. Utilização/Ocupação (\(\rho\))

Validação da utilização

Calcule \(\rho\) através da equação obtida:

$$\rho = \frac{\lambda \cdot L}{R}$$


3. Média de elementos no sistema (\(E[N]\)) & Tempo médio de espera (\(E[W]\))

Pacotes de Navegação Web + Ligação em Tempo Real:

Pacotes de Ligação em Tempo Real:

Validação \(E[N]\) e \(E[W]\)

Calcule \(E[N]\) e \(E[W]\) através das fórmulas:

$$E[N] = \frac{\rho}{1-\rho}$$

$$E[W] = \frac{L}{R - L \cdot \lambda}$$


4. Taxa de chegada de elementos no sistema \(\left(\lambda\right)\) e Taxa de atendimento \(\left(\mu\right)\)

A taxa de chegada de elementos no sistema \((\lambda)\) é passada como parâmetro inicial e representa o inverso do tempo médio entre as chegadas dos pacotes. Já a taxa de atendimento (\(\mu\)) pode ser calculada como o inverso do tempo médio da atendimento ( ou atraso de transmissão - \(L/R)\).

$$\lambda = \frac{1}{\text{Tempo médio entre as chegadas}}$$

$$\mu = \frac{R}{L}$$

Calcule \(\mu\) através da equação obtida:

$$\mu = \frac{R}{L}$$


5. Erro de Little

Lei de Little: $$E[N] = \lambda \cdot E[W]$$

$$\text{Erro de Little} = \left| E[N] - \lambda \cdot E[W] \right|$$

Pacotes de Navegação Web + Ligação em Tempo Real:

Pacotes de Ligação em Tempo Real:


Referências

  1. ROSS, S. M., Simulation. 4ª ed. San Diego: Academic Press, 2006.

  2. ALLEN, Arnold O. Probability, statistics, and queueing theory: with computer science applications. 2. ed. San Diego: Academic Press, 1990.