College Online
0%

O que sao Redes de Computadores

Modulo 1 · Aula 1 ~20 min de leitura Nivel: Introdutorio

Video da aula estara disponivel em breve

O que e uma rede de computadores?

Uma rede de computadores e um conjunto de dispositivos autonomos interconectados que podem trocar dados entre si. "Autonomos" significa que cada dispositivo opera de forma independente — nao existe uma relacao mestre/escravo obrigatoria. "Interconectados" significa que existe um caminho (fisico ou logico) pelo qual dados podem fluir de um dispositivo a outro.

A definicao e intencionalmente ampla. Uma rede pode ser dois laptops conectados por um cabo Ethernet, ou pode ser a Internet — bilhoes de dispositivos interconectados por uma hierarquia complexa de provedores.

A Internet: uma rede de redes

A Internet nao e uma unica rede — e uma rede de redes. Ela conecta milhoes de redes privadas, academicas, governamentais e comerciais atraves de um conjunto padronizado de protocolos.

Diagrama
                        +------------------+
                        |   ISP Tier 1     |
                        | (backbone global)|
                        +--------+---------+
                                 |
                    +------------+------------+
                    |                         |
             +------+------+          +------+------+
             | ISP Tier 2  |          | ISP Tier 2  |
             | (regional)  |          | (regional)  |
             +------+------+          +------+------+
                    |                         |
              +-----+-----+            +-----+-----+
              |           |            |           |
         +----+----+ +----+----+  +----+----+ +----+----+
         |ISP local| |ISP local|  |Empresa  | |Universi.|
         +---------+ +---------+  +---------+ +---------+
              |           |            |           |
           [casas]     [casas]    [servidores]  [labs]

A hierarquia de ISPs (Internet Service Providers) funciona assim:

Borda vs. Nucleo da rede

Podemos dividir a Internet em duas partes conceituais:

i
Hosts = sistemas finais Na terminologia de redes, "host" e "sistema final" (end system) sao sinonimos. Um host pode ser um cliente (seu navegador), um servidor (o Google), ou ambos (um peer em BitTorrent).

Comutacao de circuitos vs. comutacao de pacotes

Existem duas abordagens fundamentais para transmitir dados em uma rede:

Comutacao de circuitos (circuit switching)

Um circuito dedicado e estabelecido entre origem e destino antes da comunicacao comecar. Os recursos (largura de banda, buffers) ficam reservados durante toda a chamada. Exemplo classico: a rede telefonica tradicional (PSTN).

Diagrama
Comutacao de Circuitos:

  A =====[circuito dedicado]=====> B
  (recursos reservados end-to-end)

  Vantagens: latencia previsivel, sem perda
  Desvantagens: desperdicio quando nao ha dados,
                nao escala para milhoes de usuarios

Comutacao de pacotes (packet switching)

Os dados sao divididos em pacotes que sao enviados independentemente. Cada pacote carrega seu endereco de destino e pode seguir caminhos diferentes. Os recursos sao compartilhados entre todos os usuarios — multiplexacao estatistica.

Diagrama
Comutacao de Pacotes:

  A --[pkt1]--> R1 --[pkt1]--> R3 --[pkt1]--> B
  A --[pkt2]--> R1 --[pkt2]--> R2 --[pkt2]--> B
  A --[pkt3]--> R2 --[pkt3]--> R3 --[pkt3]--> B

  (pacotes compartilham links, sem reserva)

  Vantagens: eficiente, escala bem, tolerante a falhas
  Desvantagens: atrasos variaveis, possivel perda de pacotes

A Internet usa comutacao de pacotes. Essa escolha foi uma decisao de design fundamental que permite que bilhoes de dispositivos compartilhem a mesma infraestrutura de forma eficiente.

Protocolos

Um protocolo define o formato e a ordem das mensagens trocadas entre duas ou mais entidades comunicantes, bem como as acoes tomadas na transmissao e/ou recepcao dessas mensagens.

Protocolos sao para redes o que APIs sao para software: um contrato que define como duas partes se comunicam. Sem protocolos padronizados, cada fabricante implementaria sua propria forma de comunicacao, e nada seria interoperavel.

Analogia
Protocolo humano:          Protocolo de rede:

"Oi!"                      SYN
        "Oi, tudo bem?"            SYN-ACK
"Tudo! Posso perguntar..."  ACK
        "Claro!"                   HTTP GET /
"Qual o horario?"
        "Sao 14:30"               HTTP 200 OK
"Obrigado, tchau!"          FIN
        "Tchau!"                   FIN-ACK

Modelos cliente-servidor e peer-to-peer

Cliente-servidor

No modelo cliente-servidor, existe uma separacao clara de papeis: o servidor esta sempre ligado, tem um endereco fixo, e espera requisicoes. O cliente inicia a comunicacao quando precisa de algo.

Python
import requests

# Cliente HTTP fazendo uma requisicao a um servidor
response = requests.get("https://api.github.com/users/octocat")
print(response.status_code)  # 200
print(response.json()["login"])  # octocat

Peer-to-peer (P2P)

No modelo P2P, nao existe servidor dedicado. Cada no (peer) pode ser simultaneamente cliente e servidor. Exemplos: BitTorrent, Bitcoin, IPFS.

A maioria dos sistemas reais usa uma combinacao dos dois modelos. Por exemplo, BitTorrent usa um servidor central (tracker) para descobrir peers, mas a transferencia de dados e peer-to-peer.

No harness.os

O mesh do harness.os e uma rede de computadores em miniatura. Veja os paralelos:

Diagrama
Rede de computadores          harness.os mesh
─────────────────────         ──────────────────────
Hosts (end systems)     =     Harness instances (marco.ai, build.ai, cortex.ai)
Pacotes                 =     MCP tool calls (request/response)
Roteadores              =     Orchestrator (roteia requests para o agente certo)
Protocolos              =     MCP protocol (stdio, HTTP/SSE)
Enderecos IP            =     Project slugs / UUIDs
DNS                     =     Slug resolution (build-ai -> UUID -> Neon connection)
ISP                     =     Neon (provedor de conectividade ao banco)

Quando o orchestrator do harness.os spawna agentes e roteia requests para instancias especificas baseado em project slugs, ele esta fazendo exatamente o que um roteador faz: examinar o "endereco" (slug) e encaminhar o "pacote" (tool call) para o destino correto.

*
Mesh = rede overlay O mesh do harness.os e uma rede overlay — uma rede logica construida sobre a infraestrutura fisica da Internet. Cada no do mesh (marco.ai, build.ai, cortex.ai) roda em maquinas diferentes, mas se comunica como se estivesse em uma rede local. Redes overlay sao um conceito fundamental que veremos ao longo do curso.

Resumo

Exercicio pratico

Desenhe a topologia de rede do mesh harness.os atual. Identifique:

  1. Quais sao os nos (hosts) da rede? (marco.ai, build.ai, cortex.ai)
  2. Quais sao os links de comunicacao? (MCP stdio, MCP HTTP/SSE, Neon Postgres)
  3. Qual e o modelo: cliente-servidor, P2P, ou hibrido?
  4. Onde esta a "borda" e onde esta o "nucleo"?
  5. Se um no cair, o que acontece com os outros? Ha tolerancia a falhas?

Verifique seu entendimento

Por que a Internet usa comutacao de pacotes em vez de comutacao de circuitos?

  • Porque comutacao de pacotes e mais rapida que comutacao de circuitos
  • Porque comutacao de circuitos nao funciona com dados digitais
  • Porque comutacao de pacotes compartilha recursos de forma mais eficiente via multiplexacao estatistica
  • Porque comutacao de pacotes garante que nenhum pacote sera perdido