Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

03 - Modelo Cliente-Servidor vs P2P

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Modelo Cliente-Servidor vs P2P

A Camada de Aplicação suporta dois grandes paradigmas arquiteturais para a comunicação entre processos: o Modelo Cliente-Servidor (centralizado, assimétrico) e o Modelo Peer-to-Peer (P2P) (descentralizado, simétrico). A escolha entre eles impacta diretamente escalabilidade, performance, segurança e custo da infraestrutura. Aplicações modernas costumam combinar ambos em arquiteturas híbridas (ex: clientes P2P que dependem de servidores centrais para bootstrap).

1. Modelo Cliente-Servidor

Características

Atributo Descrição
Papéis Assimétricos: cliente pede, servidor responde
Endereço Servidor tem IP fixo e conhecido; cliente pode ter IP dinâmico
Estado Servidor costuma manter estado (stateful) ou usar sessões
Escalabilidade Vertical (limitada) ou Horizontal (com balanceador)
Complexidade Concentrada no servidor
Exemplos HTTP, SMTP, DNS, FTP, SSH, IMAP

Vantagens

  • Simplicidade: um único ponto de coordenação facilita governança.
  • Controle: dados e lógica ficam centralizados, permitindo auditoria.
  • Segurança: autenticação centralizada é mais fácil de implementar.
  • Latência previsível: requisições vão para o mesmo local.

Desvantagens

  • Ponto único de falha (SPOF): se o servidor cai, todos os clientes sofrem.
  • Escalabilidade limitada: capacidade máxima determinada pelo servidor.
  • Custo de infraestrutura: bandwidth, CPU e storage centralizados.
  • Alvo para DDoS: servidor é alvo irresistível para ataques de negação.

2. Modelo Peer-to-Peer (P2P)

Características

Atributo Descrição
Papéis Simétricos: cada nó é cliente e servidor (peer)
Endereço IPs dinâmicos, múltiplos nós por trás de NAT
Estado Distribuído entre todos os peers
Escalabilidade Horizontal ilimitada (cada novo peer adiciona capacidade)
Complexidade Distribuída, requer algoritmos de coordenação
Exemplos BitTorrent, IPFS, Bitcoin, Tor, Skype (P2P original)

Tipos de Arquitetura P2P

P2P Puro

Cada peer é totalmente equivalente. Nenhum servidor central. Exemplos: Gnutella, Freenet.

P2P Híbrido

Pequeno servidor centralizado coordena metadados (lista de peers, catálogo), mas a transferência de dados ocorre P2P. Exemplos: BitTorrent (com tracker),早期 Skype (super-nodes).

P2P Estruturado (DHT)

Usa Distributed Hash Table para organizar peers em um espaço de chaves. Exemplos: Kademlia (eMule, BitTorrent Mainline DHT), Chord, Pastry, Tapestry.

P2P Não-Estruturado

Peers se comunicam por flooding ou random walk. Ineficiente para buscas específicas.

Vantagens

  • Escalabilidade: cresce com cada novo peer (cada nó adiciona banda e armazenamento).
  • Resiliência: sem ponto único de falha; rede continua funcionando mesmo com perda parcial.
  • Custo: não há servidor caro para manter.
  • Auto-organização: peers entram e saem dinamicamente.

Desvantagens

  • Complexidade de coordenação: algoritmos distribuídos são difíceis.
  • Segurança: peers podem ser maliciosos (Sybil, Eclipse, Eclipse attacks).
  • Latência variável: depende do par de peers envolvidos.
  • NAT traversal: 60-70% dos peers estão atrás de NAT, exigindo STUN/TURN/ICE.
  • Confiança: difícil validar identidade dos peers.

3. Comparação Técnica Detalhada

Critério Cliente-Servidor P2P
Custo de escala Alto (servidor cresce linearmente com demanda) Baixo (cada peer contribui)
Latência Baixa e previsível Variável conforme topologia
Disponibilidade Limitada pelo servidor Aumenta com nº de peers
Implementação Simples Complexa (algoritmos distribuídos)
Auditoria Centralizada Distribuída, difícil
Compliance Fácil (LGPD/GDPR: 1 local de dados) Difícil (dados em múltiplos nós)
Censura Fácil (corta 1 servidor) Difícil (rede descentralizada)
Bandwidth Concentrado no servidor (gargalo) Distribuído entre peers

4. Protocolos Representativos

Cliente-Servidor

Protocolo Porta Função
HTTP/HTTPS 80/443 Web
SMTP 25/587 Envio de email
IMAP/POP3 143/110 Leitura de email
DNS 53 Resolução de nomes
FTP/SFTP 21/22 Transferência de arquivos
SSH 22 Acesso remoto seguro
LDAP 389/636 Diretório (AD)
DHCP 67/68 Atribuição de IP

P2P

Protocolo RFC/Spec Função
BitTorrent BEP-3 Distribuição de arquivos grandes
Kademlia DHT Petit (2002) Busca distribuída (usado em IPFS, Ethereum)
IPFS Spec IPFS Sistema de arquivos distribuído
Tor Spec Tor Anonimato na rede
Bitcoin BIPs Blockchain distribuída
WebRTC RFC 8825 Comunicação real-time navegador a navegador

5. Quando Usar Cada Modelo

Cliente-Servidor é Adequado Quando

  • Você precisa de controle centralizado sobre dados e autenticação.
  • A latência precisa ser baixa e previsível.
  • Compliance exige rastreabilidade (LGPD, GDPR, SOX, HIPAA).
  • Há poucos recursos mas alta interatividade (ex: banco de dados transacional).
  • Aplicação exige transações ACID fortes.

P2P é Adequado Quando

  • Necessita distribuir grandes volumes de dados (ex: atualização de SO para milhões de clientes).
  • Custo de infraestrutura central é proibitivo.
  • Requer resiliência contra censura ou queda de servidores.
  • Os peers contribuem com recursos (banda, CPU, armazenamento).
  • Latência variável é aceitável (ex: compartilhamento de arquivos).

6. Arquiteturas Híbridas Modernas

A maioria das aplicações modernas usa híbridos que combinam os dois paradigmas:

CDN (Content Delivery Network)

  • Servidores centrais mantêm a cópia mestre (origem).
  • Edges distribuídos replicam conteúdo próximo ao usuário.
  • Statically ou dynamic: cache de arquivos estáticos ou renderização dinâmica em edge.

WebRTC

  • Servidor central ( signaling) coordena o handshake inicial.
  • Depois, mídia trafega P2P entre navegadores (DTLS/SRTP).
  • Fallback para TURN server quando NAT traversal falha.

BitTorrent com Web Seeds

  • Peers trocam blocos entre si via P2P.
  • HTTP servers atuam como seeds adicionais (web seed) para acelerar downloads iniciais.

Blockchains Permissioned (Hyperledger Fabric)

  • Nós validadores P2P mantêm o ledger distribuído.
  • Ordering Service centralizado ou BFT共识 ordena transações.

7. Desafios de Segurança em P2P

Ataques Específicos de P2P

  • Sybil Attack: adversário cria múltiplas identidades falsas para dominar a rede.
  • Eclipse Attack: isola um peer fazendo-o conectar apenas a peers maliciosos.
  • Poisoning: peer malicioso serve dados corrompidos.
  • Free-riding: peers consomem sem contribuir (leeching).
  • Churn: peers entram e saem constantemente, prejudicando estabilidade.

Mitigações

  • Proof of Work/Stake (blockchains) dificulta Sybil.
  • Reputation systems baseados em histórico de contribuição.
  • Verification hashes (SHA-256) para detectar corrupção.
  • Incentivos econômicos (tokens, bounties) para contribuir.

8. Ferramentas de Análise

ss -tnp | grep -E '6881|6882|6883'                              # conexões P2P ativas (BitTorrent)
sudo tcpdump -i eth0 -nn 'port 6881 or port 6969' -c 50        # tráfego P2P
transmission-remote -t 1 -pi                                   # peers em torrent ativo
ipfs dht findprovs QmHash                                       # inspeção Kademlia (IPFS)
chrome://webrtc-internals                                      # debug WebRTC

9. Tendências Modernas

  • Edge Computing: movimento da computação para a borda da rede (proximidade do usuário), reduindo latência — frequentemente combinado com modelo cliente-servidor distribuído.
  • Mesh Networks: redes onde cada nó é roteador para outro (ex: Wi-Fi mesh, B.A.T.M.A.N.).
  • Decentralized Web (Web3): aplicações distribuídas com blockchain, IPFS, libp2p.
  • Hybrid P2P-CDN: clientes ajudam a distribuir conteúdo (ex: P2P assisted CDN usado por Netflix, Steam).

10. Conclusão

A escolha entre Cliente-Servidor e P2P não é binária: cada modelo tem seu espaço ideal. Para aplicações de missão crítica com dados sensíveis, o Cliente-Servidor centralizado continua sendo o padrão corporativo. Para distribuição massiva de conteúdo e resiliência, o P2P é insuperável. Aplicações modernas combinam ambos em arquiteturas híbridas (CDN, WebRTC, edge computing) que capturam o melhor dos dois mundos. Entender os trade-offs técnicos de cada modelo é fundamental para projetar redes escaláveis, seguras e econômicas.