Essa pasta contém os conjuntos de dados disponibilizados para a Hackathon SMARTNESS / 5G Dataset Challenge
Para a Hackathon, foi feita a coleta de dados de utilização da rede 5G no Brasil. A metodologia de coleta de dados foi com base em testes de campo. Os experimentos foram conduzidos em um Samsung S21 5G.
Abaixo, enumeramos os dois conjuntos de dados produzidos e um auxiliar. Cada conjunto de dados possui um Jupyter Notebook demonstrando uma exploração de dados inicial para os participantes conhecerem a estrutura dos dados.
O YouTube tem integrado nos seus diversos clientes (Web, Web Mobile, IFrame, e aplicativos iOS e Android) um instrumento de coleta de métricas de experiência do usuário. Para identificar as métricas monitoradas (as quais são iguais nos demais clientes), analisamos o código do YouTube Web e as coletas de requisições em HAR pelo Chrome DevTools.
Para gerar os dados de tráfego no Samsung S21 5G, reproduzimos uma playlist com vídeos de alta resolução no YouTube Web Mobile, e a interceptação das métricas de tráfego foi feita pelo PCAPdroid
e o plugin PCAPdroid-mitm
para descriptografar os pacotes TLS.
🛠️ Futuramente, o experimento vai utilizar o aplicativo do YouTube para representar uma situação mais próxima da realidade dos clientes móveis. Por enquanto, isso ainda não foi feito porque o aplicativo do YouTube utiliza o protocolo QUIC, que não é suportado pela versão atual do plugin, mas será suportado na próxima versão.
- Dados
youtube-qoe
(coletas do PCAPdroid) - Exploração de dados / Jupyter Notebook
Como coletar os dados usando o PCAPdroid
- Na seção Traffic inspection nas configurações do PCAPdroid (ícone ⚙️ no canto superior direito), habilite TLS decryption
- Na primeira vez que a descriptografia for habilitada, será aberto o menu para configuração do plugin. Os passos incluem:
- Baixar e instalar o addon
PCAPdroid-mitm
- Autorizar o PCAPdroid a controlar o addon
- Instalar o certificado de autoridade (CA) do PCAPdroid
- Baixar e instalar o addon
- Na seção Traffic inspection nas configurações do PCAPdroid (ícone ⚙️ no canto superior direito), desabilite a opção Full payload
- Na seção Capture nas configurações do PCAPdroid, habilite a opção PCAPdroid trailer
- Defina o formato da captura de tráfego (traffic dump format) como PCAP file
- Selecione o aplicativo que vai capturar o tráfego (nesse caso, o navegador que vai abrir o YouTube Web Mobile. Exemplo: Google Chrome, Firefox, Samsung Internet)
- Entre no aplicativo PCAPdroid
- Selecione Ready
- Inicie a geração de tráfego. Nesse momento, é possível sair do aplicativo
- ...
- Para finalizar a captura de tráfego, entre novamente no PCAPdroid
- Pressione o botão de parar (ícone ⬜ no canto superior direito)
- Pressione OK no diálogo informando que o tráfego foi salvo
- Se for gerado um arquivo com chaves SSL
sslkeylogfile.txt
, um diálogo será aberto para salvá-lo:- Vá para a pasta na qual o arquivo derá ser salvo, como em
~/Download/PCAPdroid
(o mesmo local que as capturas PCAP são salvas) - Selecione o arquivo de captura PCAP mais recente para copiar seu nome (para facilitar a identificação posterior)
- Edite a extensão
.pcap
para.txt
do arquivo a ser salvo - Salve
- Vá para a pasta na qual o arquivo derá ser salvo, como em
Para juntar os dois arquivos sslkeylogfile.txt
e .pcap
em um único arquivo .pcapng
, podemos utilizar o programa de linha de comando editcap
(que pode ser obtido ao instalar o tshark
).
Se o arquivo de chaves SSL e PCAP possuem o mesmo nome, basta usar uma variável com o nome da captura:
filename=PCAPdroid_17_Feb_02_19_56
editcap --inject-secrets tls,${filename}.txt ${filename}.pcap ${filename}.pcapng
Alternativamente, podemos informar os diferentes nomes individualmente:
editcap --inject-secrets tls,sslkeylogfile_abc.txt captura_abc.pcap captura_e_sslkeys_abc.pcapng
Ao obter os arquivos .pcapng
, fazemos o pré-processamento para um formato mais fácil de utilizar. Para isso, executamos os scripts abaixo:
# transforma arquivos .pcapng para .json
./scripts/extract_youtube_qoe_urls.py -g '*.pcapng'
# transforma arquivos .json para Dataframes pandas no formato .pickle
./scripts/youtube_qoe_urls_preprocessing.py -g '*.json'
As métricas de rede foram coletadas pela ferramenta G-NetTrack Pro (manual) em um trajeto com cobertura 5G da operadora Claro, como por exemplo, pelo centro de São Paulo, Av. Paulista, Butantã, e arredores.
Em conjunto com os dados de tráfego e rede móvel, também podemos fazer o enriquecimento de dados com outros datasets, como por exemplo, usando o Mosaico da Anatel, que contém informações sobre todas as estações de telecomunicações (ERBs) registradas no Brasil. Dentre os dados disponibilizados pelo Mosaico, incluem: as tecnologias e equipamentos utilizados, as frequências de transmissão e recepção, a localização geográfica das estações, as datas de licenciamento e validade, informações sobre os proprietários das estações, entre outras.