3.1 KiB
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
- Container customizado para deploy isolado (entender o que o Docker faz)
- Broker MQTT para IoT/monitoramento de equipamentos
- KV Store para cache distribuído (substituto Redis em cenários simples)
- 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