Skip to content

Latest commit

 

History

History
84 lines (61 loc) · 4.86 KB

README.md

File metadata and controls

84 lines (61 loc) · 4.86 KB

Análise Estatística da Sincronização de Tempo em Redes Locais Usando LinuxPTP ⏰

Este repositório contém um notebook Jupyter que realiza uma análise estatística da sincronização de tempo em redes locais utilizando o LinuxPTP. Este trabalho foi desenvolvido como parte da disciplina EC01019 - PROBABILIDADE E ESTATISTICA ministrada no quarto semestre da Faculdade de Engenharia da Computação e Telecomunicações da Universidade Federal do Pará.

Descrição 📖

A sincronização precisa de tempo em redes de computadores é fundamental para diversas aplicações, incluindo redes industriais, telecomunicações e data centers. Neste trabalho, utilizamos o LinuxPTP, uma implementação do Precision Time Protocol (PTP), para simular e analisar a sincronização de tempo entre diferentes nós de uma rede.

A análise deste trabalho é feita utilizando Estatística Descritiva e Inferencial, com a aplicação de testes de hipóteses para avaliar o comportamento da sincronização em diferentes cenários. Para isso, configuramos nós em uma rede local que atuam como mestres e escravos PTP, e coletamos dados de Time offset durante a sincronização.

Objetivos ✅

Os principais objetivos deste trabalho incluem:

  • Testar Timestamping em Software vs. Hardware: Comparar a eficácia da sincronização utilizando timestamping em software e timestamping em hardware.
  • Comparar Topologias de Sincronização: Verificar a eficácia de diferentes configurações, como topologias mestre-escravo simples e aquelas que envolvem Transparent Clocks ou Boundary Clocks.

Ambiente de Testes 💻

Para este estudo, utilizamos 3 computadores cujas especificações são descritas na tabela abaixo:

Especificação PC 1 PC 2 PC 3
OS Ubuntu 22.04.5 LTS Ubuntu 22.04.4 LTS Ubuntu 18.04.4 LTS
Kernel 6.8.0-45-generic 6.5.0-35-generic 4.15.0-213-generic
NIC Intel X550-T2 PCI-E X4 Intel X550-T2 PCI-E X4 Intel X550-T2 PCI-E X4
CPU Intel i5-7600 (4) 4.1GHz Intel i5-9400 (6) 4.1GHz Intel i7-5930K (12) 3.7GHz
GPU Intel HD Graphics 630 Intel HD Graphics 630 AMD Radeon HD 7770/8760
Memory 8GB 16GB 64GB

Tabela 1 - Especificações dos computadores utilizados nos testes.

Os dados são coletados diretamente dos logs do ptp4l, a ferramenta do LinuxPTP que executa a sincronização.

Estrutura do Repositório 📁

LPTP_Analyzer/
├── LPTP_Analyzer.ipynb       # Notebook Jupyter contendo a análise completa
├── logs/                     # Diretório contendo os arquivos de log utilizados na análise
│   ├── Hard.txt
│   ├── Soft.txt
│   └── ...
├── assets/                   # Diretório contendo as imagens utilizadas no notebook
│   ├── topo1.png
│   ├── topo2.png
│   └── ...
├── log_processing.py         # Script Python para processar os logs do ptp4l
├── plotting.py               # Script Python para gerar os gráficos da análise
└── requirements.txt         

Como Executar 🔨

  1. Clone o repositório:

    git clone https://github.com/jvictorferreira3301/LPTP_Analyzer
    cd LPTP_Analyzer
  2. Instale as dependências:

    pip install -r requirements.txt
  3. Abra o notebook Jupyter, ou abra pelo badge no colab ou visualize localmente com VS code:

    jupyter notebook LPTP_Analyzer.ipynb
  4. Execute as células do notebook para reproduzir a análise.

Referências 📚

Licença 📄

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.