Este projeto implementa uma simulação de Network Slicing em redes 5G, focando em mobilidade, análise de métricas de QoS (latência, jitter, throughput e perda de pacotes), impacto da sobrecarga, falhas temporárias nas células, interferência entre células vizinhas e handover otimizado.
O projeto utiliza classes específicas para diferentes slices de rede:
- eMBB (Enhanced Mobile Broadband): Alta largura de banda e latência moderada.
- URLLC (Ultra Reliable Low Latency Communication): Latência ultrabaixa e alta confiabilidade.
- mMTC (Massive Machine Type Communication): Suporte a um grande número de dispositivos IoT com tráfego esporádico.
- Simulação de cenários fixos (sem mobilidade) e móveis (com mobilidade entre células).
- Aplicação de penalidades em métricas de QoS em caso de sobrecarga nas células.
- Introdução de falhas temporárias nas células, forçando a movimentação dos usuários.
- Simulação da interferência entre células vizinhas, impactando jitter, throughput e perda de pacotes.
- Implementação de handover otimizado, com critérios baseados em sinal e restrições para URLLC.
- Geração de relatórios detalhados em formato CSV.
- Visualização gráfica de métricas, comparação entre cenários e impacto das falhas, interferência e handover.
NetworkSlicingSimulation/
├── cells/
│ ├── cell.py # Gerencia as células, falhas temporárias, interferência, capacidade e sinal
├── users/
│ ├── user.py # Representa os usuários, controla handovers e restrições
├── slices/
│ ├── embb.py # Classe para slice eMBB
│ ├── urllc.py # Classe para slice URLLC
│ ├── mmtc.py # Classe para slice mMTC
├── metrics/
│ ├── qos.py # Calcula métricas de QoS considerando interferência e handover
├── mobility.py # Gerencia a mobilidade dos usuários entre células
├── utils.py # Funções para exportação, análise, falhas e visualização de dados
├── simulation.py # Script principal para execução das simulações
└── README.md # Documentação do projeto
- Python 3.8+
- Bibliotecas necessárias:
pip install matplotlib pandas
- Clone este repositório:
git clone https://github.com/seu_usuario/network-slicing-simulation.git cd network-slicing-simulation - Execute o script principal:
python simulation.py
Os relatórios são gerados automaticamente após a execução:
qos_metrics_fixa.csv: Métricas do cenário fixo.qos_metrics_mobilidade_handover.csv: Métricas do cenário com mobilidade, falhas temporárias, interferência e handover otimizado.qos_overload_analysis.csv: Impacto da sobrecarga nas métricas.cell_failures.csv: Relatório dos períodos de falha das células.
Os gráficos incluem:
- Comparação de latência, throughput, jitter e perda de pacotes entre os cenários.
- Impacto da sobrecarga nas métricas.
- Visualização do impacto das falhas temporárias, interferência e handover nas métricas de QoS.
- Células: Modifique a capacidade, nível de interferência e intensidade do sinal em
cell.py. - Usuários: Ajuste o número de usuários e os parâmetros de handover em
user.py. - Mapa de Adjacência: Edite a variável
adjacency_mapemsimulation.py. - Duração das falhas: Modifique a duração no método
deactivateemcell.py. - Parâmetros de Interferência e Handover: Ajuste o cálculo no arquivo
qos.py.
- Implementar padrões de mobilidade mais complexos.
- Melhorar o gerenciamento dinâmico de recursos por slice.
- Adicionar diferentes tipos de tráfego para cada slice.
- Criar uma interface gráfica para configuração interativa.
Este projeto está licenciado sob a MIT License.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
- Autor: João Victor Tavares Esteves
- Email: joaovtesteves2002@gmail.com