Files
2026-05-30 23:59:33 +00:00

3.1 KiB

Infra & Redes — Estudo

Fonte: project-based-learning


📚 Recursos Estudados

Tutorial Conceito
TCP/IP Stack Ethernet, ARP, IPv4, ICMP, TCP
Servidores Concorrentes Threads, Event-driven, libuv, Redis
MQTT Broker Protocolo MQTT, pub/sub
Linux Containers Namespaces, cgroups, chroot
Key-Value Store Storage engine, indexing
Redis em C/C++ Protocolo Redis, persistência

🎯 Aplicações para Mundo Telecom

  1. Container customizado para deploy isolado (entender o que o Docker faz)
  2. Broker MQTT para IoT/monitoramento de equipamentos
  3. KV Store para cache distribuído (substituto Redis em cenários simples)
  4. Proxy reverso customizado (entender como NPM funciona por baixo)

📝 Conceitos Aprendidos

Pilha TCP/IP

Camada Protocolo Função
2 - Enlace Ethernet, ARP MAC addresses, frame delivery
3 - Rede IPv4, ICMP Roteamento, ping, TTL
4 - Transporte TCP Conexão, confiabilidade, controle de fluxo
4 - Transporte UDP Datagrama, sem conexão, baixa latência
7 - Aplicação HTTP, MQTT, Redis Protocolos de aplicação

TCP em Detalhe

  • Handshake: SYN → SYN-ACK → ACK
  • State Machine: LISTEN, SYN_SENT, ESTABLISHED, CLOSE_WAIT, TIME_WAIT...
  • Controle de Congestionamento: Slow Start, Congestion Avoidance, Fast Retransmit
  • Janela Deslizante: Controle de fluxo (não enviar mais do que o receiver pode processar)

Servidores Concorrentes

Modelo Prós Contras
Threads (1 thread/cliente) Simples, blocking I/O Escalabilidade limitada, overhead
Event-driven (select/poll/epoll) Alta performance, single-thread Complexidade, non-blocking I/O
Híbrido (Redis, Nginx) Balanceado Complexidade média

Linux Containers

  • Namespaces: isola recursos (PID, NET, MNT, UTS, IPC, USER)
  • Cgroups: limita recursos (CPU, memória, I/O)
  • chroot: isola sistema de arquivos
  • Unshare + Clone: syscalls para criar namespaces

Nosso Setup vs Teoria

Componente O que usamos Como funciona por baixo
Containers LXC no Proxmox Namespaces + cgroups
Proxy Reverso NPM (nginx) Event-driven, epoll
DNS Pi-hole (10.0.20.5) DNS server interno
Banco SQLite, PostgreSQL Páginas, índices B-tree
Cache (futuro Redis) KV store in-memory

Progresso

  • Pilha TCP/IP (Ethernet, ARP, IP, TCP)
  • Servidores Concorrentes (threads, event-driven)
  • MQTT Broker
  • Linux Containers (namespaces, cgroups)
  • Key-Value Store / Redis
  • Projeto prático: servidor TCP simples em C/Python
  • Projeto prático: container customizado