9 anos de ensino de Redes com Python
06/06/2026 , Fernão Auditório

Relato de 9 anos usando Python como linguagem principal nas práticas de Redes de Computadores — onde dá conta de tudo, e onde foi preciso buscar alternativas.


Desde 2018, leciono Redes de Computadores usando Python como linguagem principal nas atividades práticas. Nesta palestra, apresento as práticas que desenvolvi ao longo de 9 anos — um servidor IRC, uma implementação de TCP, encaminhamento IPv4 e enquadramento SLIP — culminando na integração de toda a pilha TCP/IP em hardware real (placas FPGA). Comento também práticas correlatas de Tecnologia de Comunicação (camada física), onde Python funciona bem para algumas atividades (simulação de antenas com OpenEMS, transceptor Wi-Fi 802.11a/g com NumPy/SciPy) mas foi insuficiente em outras: na prática de modem V.21, mesmo tendo conseguido desempenho de tempo real no gabarito em Python, nenhum grupo do período 2022/1 conseguiu, levando à migração para C++ e Rust. Discuto por que, apesar de alternativas como Numba, Cython ou HDLs baseadas em Python (MyHDL, Amaranth), preferi adotar linguagens com ecossistema mais limpo para esses casos.


Quais conhecimentos prévios são necessários para que seja possível acompanhar bem a sua atividade?:

Conhecimentos básicos de programação em Python (funções, classes, manipulação de bytes). Não é necessário conhecimento prévio de redes de computadores — os conceitos de cada camada do modelo TCP/IP serão explanados brevemente durante a palestra. Familiaridade com o conceito de sockets é útil, mas não obrigatória. A palestra é voltada para quem tem interesse em entender como Python pode ser usado no ensino de disciplinas de infraestrutura de computação e para quem quer conhecer os limites de desempenho da linguagem em aplicações de tempo real e processamento de sinais.

O que as pessoas que participarem podem esperar aprender na sua atividade?:

As pessoas que assistirem a esta palestra poderão esperar aprender: (1) como estruturar práticas de laboratório em cursos de Redes usando Python, cobrindo todas as camadas do modelo TCP/IP; (2) quais bibliotecas e recursos da linguagem — asyncio, struct, rawsockets, pytest — se encaixam bem em cada prática; (3) como é possível integrar todas as camadas em hardware real (FPGA) usando a mesma linguagem; (4) em que cenários Python atinge seus limites de desempenho para processamento de sinais em tempo real; (5) quais alternativas foram avaliadas (Numba, Cython, HDLs baseadas em Python) e por que se optou por linguagens com ecossistema mais limpo (C++, Rust, Bluespec) em vez delas.

Escolha uma ou mais áreas em que essa proposta se encaixa: Outros

Assistant LLM coach at @ufscar. Obtained my PhD at @neurobiofisica (IFSC/@usp). Ham radio operator PY2UID. CTF player for @epicleet. https://github.com/thotypous