3

Topologias de Rede e Modelos de Referência

Comunicação de dados3.1

A comunicação é, em sua essência, o ato de compartilhar informações. Esse processo pode ocorrer localmente, face a face, ou remotamente, abrangendo distâncias consideráveis. O termo telecomunicação deriva justamente dessa necessidade de superar a distância (tele, do grego), englobando tecnologias como telefonia, telegrafia e televisão. Nesse contexto, definimos dados como informações apresentadas em qualquer formato acordado entre as partes criadoras e usuárias.

A comunicação de dados consiste na troca dessas informações entre dois dispositivos através de um meio de transmissão, como um cabo metálico. Para que esse processo ocorra, é necessário um sistema composto pela união de hardware (equipamentos físicos) e software (programas). A eficácia desse sistema depende de quatro características fundamentais:

  1. Entrega: O sistema deve entregar os dados ao destino correto e exclusivamente ao dispositivo ou usuário pretendido.
  2. Precisão: Os dados devem chegar intactos, pois informações alteradas e não corrigidas são inúteis.
  3. Sincronização: A entrega deve ocorrer no momento certo. Para áudio e vídeo, isso significa transmissão em tempo real, sem atrasos significativos.
  4. Jitter: Refere-se à variação no tempo de chegada dos pacotes. Um atraso desigual na entrega de pacotes de vídeo, por exemplo, resulta em uma reprodução de qualidade irregular.

Um sistema de comunicação de dados estrutura-se sobre cinco componentes essenciais, cuja interação harmoniosa viabiliza a troca de informações.

ComponenteFunçãoExemplos
1. MensagemA informação a ser transmitida.Texto, números, imagens, áudio e vídeo.
2. EmissorO dispositivo que envia os dados.Computador, câmera, telefone.
3. ReceptorO dispositivo que recebe os dados.Monitor, servidor, rádio.
4. MeioO caminho físico por onde a mensagem viaja.Par trançado, fibra óptica, ondas de rádio.
5. ProtocoloConjunto de regras que governa a comunicação.Acordos de software (a "língua" comum entre os dispositivos).

As informações modernas trafegam em diversos formatos. O texto é representado por padrões de bits, sendo o sistema Unicode (32 bits) o padrão predominante atual, englobando o antigo ASCII. Números são convertidos diretamente para binário para facilitar cálculos matemáticos. Imagens são formadas por matrizes de pixels, utilizando métodos como RGB (Red, Green, Blue) para compor cores. Já áudio e vídeo possuem natureza contínua e requerem digitalização.

A interação entre dois dispositivos é classificada pela direção e simultaneidade do fluxo de dados. Existem três modos de transmissão: Simplex, Half-Duplex e Full-Duplex.

Analogias de Fluxo
  • Simplex (Unidirecional): Como uma rua de mão única. Apenas um dispositivo transmite, o outro apenas recebe (Ex: Teclado para CPU, Monitor tradicional).
  • Half-Duplex (Bidirecional Alternado): Como uma estrada com obras onde passa um carro de cada vez. Ambos transmitem, mas nunca ao mesmo tempo (Ex: Walkie-talkies, Rádios CB).
  • Full-Duplex (Bidirecional Simultâneo): Como uma rodovia de pista dupla. O tráfego flui nos dois sentidos simultaneamente (Ex: Rede telefônica).

Aqui, é fundamental fazermos uma distinção crucial para evitar confusões com os conceitos de endereçamento vistos anteriormente (Unicast, Multicast e Broadcast). Enquanto os termos acima (Simplex, Half/Full-Duplex) referem-se à mecânica da estrada (se a mão é única ou dupla), os termos da aula passada referem-se a para quem você está dirigindo.

Comparativo: Direção de Fluxo vs. Tipo de Endereçamento

Muitos alunos confundem a direção dos dados com a quantidade de destinos. Veja a diferença:

| Conceito | Pergunta Principal | Exemplos | | :--- | :--- | :--- | | Fluxo (Simplex, Half, Full) | "Quem fala e quando?" | Simplex: Só eu falo, sempre.
Half-Duplex: Eu falo, depois você fala.
Full-Duplex: Falamos juntos. | | Endereçamento (Unicast, Multicast, Broadcast) | "Para quantos eu falo?" | Unicast: Falo para uma pessoa específica.
Multicast: Falo para um grupo interessado.
Broadcast: Grito para todos na sala. |

Exemplo Combinado: Uma transmissão de TV aberta é Simplex (apenas a emissora envia sinal para sua casa) e Broadcast (o sinal é enviado para todas as antenas da cidade). Já uma conversa telefônica é Full-Duplex (ambos falam ao mesmo tempo) e Unicast (você fala com apenas uma pessoa).

Para deixar ainda mais claro, a imagem abaixo fornece uma comparação dos três sentidos de transmissão.

Redes e topologias3.2

Uma rede é definida fundamentalmente como um conjunto de dispositivos, habitualmente conhecidos como nós, conectados por links de comunicação. Um nó pode ser um computador, uma impressora ou qualquer outro dispositivo capaz de enviar e receber dados. Atualmente, a maioria das arquiteturas utiliza o processamento distribuído, estratégia na qual uma tarefa é dividida entre vários computadores independentes (como estações de trabalho), em vez de ser concentrada em uma única máquina de grande porte.

Para que uma rede seja considerada efetiva, ela deve atender a critérios rigorosos de desempenho, confiabilidade e segurança, cujos detalhes e métricas são apresentados na tabela a seguir:

CritérioDefinição e MétricasFatores de Influência
DesempenhoMedido pelo tempo de trânsito (tempo de viagem da mensagem) e tempo de resposta (intervalo entre solicitação e resposta). Avalia-se também a vazão (throughput) e o atraso (delay).Número de usuários, meio de transmissão, capacidade do hardware e eficiência do software.
ConfiabilidadeMedida pela frequência de falhas, tempo de recuperação do link e robustez do sistema em caso de catástrofes.Qualidade dos componentes e redundância.
SegurançaProteção contra acesso não autorizado, danos aos dados e políticas de recuperação.Procedimentos contra violações e perda de dados.
Relação Vazão vs. Atraso

É importante notar que vazão e atraso são frequentemente contraditórios. Tentar aumentar a vazão enviando mais dados para a rede pode causar congestionamento, o que, consequentemente, aumenta o atraso.

Antes de discutirmos as formas das redes, precisamos definir seus atributos físicos. Uma rede consiste em dois ou mais dispositivos conectados por links. Existem dois tipos fundamentais de conexão:

  • Ponto a Ponto: Um link dedicado conecta exclusivamente dois dispositivos (ex: controle remoto da TV, links de micro-ondas).
  • Multiponto: Vários dispositivos compartilham o mesmo link espacialmente ou temporalmente.

A maneira como esses links e dispositivos são organizados fisicamente define a Topologia da Rede. A seguir, detalhamos as quatro topologias básicas e suas variantes híbridas, cada uma com sua representação visual.

Topologia em Malha (Mesh) Nesta configuração, cada dispositivo possui um link ponto a ponto dedicado com cada um dos demais dispositivos. Isso oferece robustez extrema (se um link falhar, os outros continuam) e privacidade, mas exige um volume massivo de cabeamento. Para dimensionar uma malha totalmente conectada com $n$ nós, utilizamos fórmulas específicas para calcular portas e cabos:

Cálculo de Malha

Para $n$ dispositivos:

  1. Número de Portas (I/O) por dispositivo: $n - 1$
  2. Número Total de Links Físicos: $$Links = \frac{n(n - 1)}{2}$$

Exemplo: Em uma rede com 5 computadores, seriam necessários 10 cabos ($5 \times 4 / 2$).

Topologia em Estrela (Star) Neste modelo, cada dispositivo tem um link dedicado apenas com um controlador central, geralmente denominado hub. Não há tráfego direto entre os dispositivos; o controlador atua como uma central telefônica retransmitindo os dados. É mais barata e fácil de instalar que a malha, e a falha de um link afeta apenas um dispositivo. Contudo, possui um ponto único de falha: se o hub parar, toda a rede para.

Topologia em Barramento (Bus) Esta é uma topologia multiponto onde um único cabo longo atua como backbone, interligando todos os dispositivos. Os nós conectam-se através de cabos transceptores e conectores (como o transceptor-vampiro). Embora use menos cabos e seja fácil de instalar, apresenta desafios de manutenção: o sinal degrada com a distância, a reconfiguração é difícil e uma ruptura no cabo principal derruba toda a rede, gerando reflexão de sinais e ruído.

Topologia em Anel (Ring) Cada dispositivo conecta-se ponto a ponto exclusivamente com seus dois vizinhos imediatos. O sinal percorre o anel em um sentido único, sendo regenerado pelo repetidor de cada dispositivo até o destino. É fácil de instalar e o isolamento de falhas é simplificado (um alarme pode indicar onde o sinal parou). Porém, em um anel simples, uma falha em qualquer estação ou link pode derrubar a rede, problema que pode ser mitigado com anéis duplos.

Topologia Híbrida Na prática, muitas redes combinam características das topologias anteriores. Um exemplo comum é ter uma topologia principal (backbone) em estrela ou anel, conectando sub-redes que operam em barramento, maximizando a eficiência e escalabilidade do sistema.

Hierarquias de Protocolos e Estruturação de Software de Rede3.3

O design de redes evoluiu significativamente desde os primórdios, onde o foco era puramente o hardware. Atualmente, o software de rede é altamente estruturado e essencial para o funcionamento do sistema. A metodologia padrão para lidar com a complexidade inerente às redes é a organização em camadas (ou níveis), empilhadas umas sobre as outras.

A ideia central é que cada camada funcione como uma máquina virtual, oferecendo serviços específicos à camada superior e ocultando os detalhes complexos de implementação. Esse conceito é análogo ao encapsulamento ou abstração de dados na programação orientada a objetos: o usuário consome um serviço sem precisar saber como ele é internamente construído.

A comunicação entre máquinas segue uma lógica de pares (peers). Quando a camada $n$ de uma máquina dialoga com a camada $n$ de outra, elas utilizam um conjunto de regras e convenções denominado protocolo.

Definição de Protocolo

Um protocolo é um acordo formal entre as partes comunicantes que define como a interação ocorrerá. Sem ele, a comunicação é inviável, assim como duas pessoas tentando conversar sem um idioma comum ou normas sociais de etiqueta.

A figura abaixo ilustra uma rede genérica de cinco camadas, destacando a diferença entre o fluxo real de dados e a comunicação virtual:

Neste diagrama, observamos três conceitos fundamentais:

  1. Comunicação Virtual (Linhas pontilhadas): Ocorre horizontalmente entre pares da mesma camada (ex: Camada 5 com Camada 5), utilizando o protocolo daquela camada.
  2. Comunicação Física (Linhas contínuas): Ocorre verticalmente. Os dados descem de uma camada para a inferior até o meio físico, e no destino sobem camada por camada.
  3. Interface: O ponto de contato entre camadas adjacentes (ex: Interface 4/5). Define quais operações a camada inferior oferece à superior. Interfaces bem definidas permitem, por exemplo, trocar uma tecnologia de transmissão (como substituir linhas telefônicas por satélite) sem afetar as aplicações superiores.

O conjunto completo de camadas e seus protocolos forma a Arquitetura de Rede. Já a lista de protocolos específicos utilizados em um sistema (um por camada) é chamada de Pilha de Protocolos.

Para visualizar esse processo, considere a analogia dos Filósofos:

Neste exemplo:

  • Camada 3 (Filósofos): Desejam comunicar uma ideia ("Gosto de coelhos"). Falam idiomas diferentes.
  • Camada 2 (Tradutores): Convertem a mensagem para um idioma comum acordado (Holandês). Este é o protocolo da camada 2.
  • Camada 1 (Secretárias): Transmitem a mensagem fisicamente (por Fax). Este é o serviço da camada 1.

Tecnicamente, o processo envolve o encapsulamento. À medida que a mensagem desce pela pilha, cada camada adiciona seu próprio cabeçalho (e as vezes um trailer) com informações de controle (como endereços ou números de sequência).

Conforme mostrado na figura acima:

  1. A Camada 5 produz a mensagem $M$.
  2. A Camada 4 adiciona um cabeçalho $H4$.
  3. A Camada 3 pode precisar fragmentar a mensagem (se ela for muito grande) em pacotes menores ($M1$ e $M2$), adicionando cabeçalhos $H3$ a cada fragmento.
  4. A Camada 2 adiciona cabeçalho $H2$ e um trailer $T2$ para transmissão física.

No destino, o processo é reverso (desencapsulamento): à medida que os dados sobem, cada camada remove e processa o cabeçalho correspondente, entregando apenas o conteúdo limpo à camada superior. Essa abstração permite dividir o projeto titânico de uma rede completa em problemas menores e gerenciáveis de design de camadas individuais.

Questões de projeto relacionadas às camadas3.3.1

Ao projetar redes de computadores, existem desafios universais que transcendem camadas específicas, exigindo soluções arquiteturais robustas. O primeiro desses desafios é a Confiabilidade, que consiste na arte de construir uma rede que opere corretamente mesmo sendo composta por componentes falíveis. Durante o tráfego de um pacote, bits podem ser corrompidos ou invertidos devido a ruídos elétricos, interferências sem fio ou bugs de software.

Para mitigar esses problemas, utilizam-se mecanismos de detecção e correção de erros. A detecção utiliza códigos para identificar falhas na informação recebida, solicitando a retransmissão dos dados, enquanto a correção de erros emprega códigos mais poderosos capazes de recuperar a mensagem original a partir dos bits incorretos, ambos baseados na adição de redundância aos dados.

Ainda no âmbito da confiabilidade, destaca-se o Roteamento, que é a capacidade da rede de encontrar caminhos funcionais automaticamente. Em uma rede vasta, enlaces podem falhar; se uma rota através da Alemanha estiver inoperante, o sistema deve ser capaz de redirecionar pacotes de Londres para Roma via Paris, por exemplo, sem intervenção manual.

O segundo pilar do projeto é a Evolução da Rede. O crescimento contínuo exige mecanismos de escalabilidade e organização. Para identificar os bilhões de transmissores e receptores, são essenciais sistemas de endereçamento (nas camadas altas) e nomeação (nas camadas baixas). Além disso, como diferentes tecnologias possuem limitações distintas (como o tamanho máximo de mensagem ou a ordem de entrega), surge a necessidade da Interligação de Redes, que harmoniza essas diferenças através da fragmentação e remontagem de mensagens. Projetos que mantêm o desempenho enquanto a rede cresce são considerados escaláveis, evitando colapsos análogos a engarrafamentos em metrópoles mal planejadas.

Uma terceira questão crucial é a Alocação de Recursos. As redes devem gerenciar seus recursos subjacentes, como a largura de banda, para que um host não prejudique o desempenho dos outros. Em vez de reservar uma fração fixa da capacidade para cada usuário (o que seria ineficiente), utiliza-se frequentemente a multiplexação estatística, compartilhando a banda dinamicamente com base na demanda momentânea.

Dentro da alocação de recursos, dois conceitos frequentemente confundidos, mas distintos, devem ser observados:

Controle de Fluxo vs. Controle de Congestionamento
  • Controle de Fluxo: Mecanismo de feedback que impede um transmissor rápido de sobrecarregar um receptor lento (foco no ponto a ponto).
  • Controle de Congestionamento: Estratégia global para evitar que a demanda excessiva de muitos computadores sobrecarregue a infraestrutura da rede (foco na saúde da rede).

Além da velocidade, certas aplicações exigem pontualidade. A Qualidade de Serviço (QoS) é o conjunto de mecanismos que reconcilia demandas concorrentes, garantindo, por exemplo, entrega em tempo real para transmissões de vídeo enquanto mantém a vazão para transferências de arquivos.

Por fim, a Segurança permeia todas as camadas, defendendo a rede contra ameaças diversas. Todas as estratégias modernas de segurança baseiam-se em criptografia para garantir três pilares fundamentais, descritos na tabela a seguir:

Pilar de SegurançaObjetivoExemplo de Aplicação
ConfidencialidadeImpedir a bisbilhotagem (snooping).Garantir que apenas o destinatário leia a mensagem.
AutenticaçãoVerificar a identidade das partes.Confirmar se um site bancário é legítimo ou se a chamada vem do seu telefone.
IntegridadeImpedir alterações clandestinas.Evitar que uma transação de "US$ 10" seja alterada para "US$ 1.000" no caminho.

Serviços orientados e não orientados a conexões3.3.2

As camadas de uma arquitetura de rede oferecem dois tipos fundamentais de serviços às camadas superiores: serviços orientados a conexões e serviços não orientados a conexões. A distinção entre eles molda a forma como os dados trafegam e como a confiabilidade é gerenciada.

O serviço orientado a conexões inspira-se no funcionamento do sistema telefônico clássico. O processo ocorre em três etapas distintas: primeiro estabelece-se a conexão, depois utiliza-se o canal para transmitir os dados e, finalmente, libera-se a conexão. A característica essencial é que a conexão funciona como um tubo (ou circuito), onde os bits entram por uma extremidade e saem pela outra, geralmente preservando a ordem de envio. Durante o estabelecimento da conexão, pode haver uma negociação de parâmetros entre transmissor, receptor e sub-rede, definindo o tamanho máximo das mensagens e a qualidade de serviço exigida.

Em contraste, o serviço não orientado a conexões baseia-se na analogia do sistema postal. Cada mensagem (ou pacote, no contexto da camada de rede) carrega o endereço completo de destino e é roteada pelos nós intermediários de forma independente.

O processamento desses pacotes pelos nós intermediários pode ocorrer de duas formas principais:

  1. Store-and-forward: O nó espera receber a mensagem completa antes de enviá-la ao próximo.
  2. Cut-through: A retransmissão inicia-se antes mesmo de a mensagem ser totalmente recebida, reduzindo a latência.

A tabela a seguir resume as diferenças cruciais entre os dois modelos:

CaracterísticaOrientado a ConexõesNão Orientado a Conexões
AnalogiaSistema TelefônicoSistema Postal (Cartas)
FluxoEstabelecimento $\to$ Transferência $\to$ LiberaçãoEnvio direto e independente
Ordem dos DadosGeralmente preservadaNão garantida (podem chegar fora de ordem)
CaminhoFixo (Circuito/Tubo)Dinâmico (cada pacote pode seguir uma rota)

Além da conexão, os serviços são caracterizados pela sua confiabilidade. Um serviço confiável garante que nenhum dado seja perdido, geralmente através de confirmações de recebimento (ACKs) enviadas pelo receptor. Embora vital para transferências de arquivos (onde cada bit importa), esse processo introduz atrasos (overhead) que podem ser inaceitáveis para aplicações em tempo real, como voz sobre IP (VoIP) ou videoconferências. Nesses casos, os usuários preferem eventuais falhas momentâneas no áudio ou vídeo a sofrerem com atrasos constantes causados pela correção de erros.

Dentro do modelo orientado a conexões, existem variações importantes na forma como os dados são tratados:

  • Sequências de Mensagens: Os limites são preservados. Se duas mensagens de 1.024 bytes são enviadas, elas chegam como duas entidades distintas (útil para envio de páginas de texto, por exemplo).
  • Fluxos de Bytes: A conexão é um fluxo contínuo sem limites definidos. O receptor recebe os dados conforme chegam, sem saber se foram enviados em blocos separados (útil para streaming de filmes, onde o que importa é o fluxo contínuo).
Por que usar comunicação não confiável?

Pode parecer contraintuitivo preferir um serviço "não confiável". No entanto, ele é essencial por dois motivos:

  1. Disponibilidade Tecnológica: Camadas inferiores, como a Ethernet, são inerentemente não confiáveis (sujeitas a ruídos). A confiabilidade é construída nas camadas superiores.
  2. Performance: O overhead das confirmações torna o serviço lento para aplicações multimídia em tempo real.

O serviço não orientado a conexões também possui suas variações, adaptadas a diferentes necessidades. O serviço de datagramas (análogo ao telegrama) não oferece garantias de entrega e é a forma dominante na maioria das redes, sendo ideal para tráfego massivo ou envios únicos onde a configuração de conexão seria custosa (como no caso de spammers). Já o serviço de datagramas confirmados adiciona confiabilidade ao envio de mensagens curtas (como SMS), funcionando como uma carta registrada. Por fim, o modelo de solicitação/resposta é a base da arquitetura cliente-servidor, onde uma pergunta gera uma resposta imediata.

A figura abaixo resume os principais tipos de serviços discutidos:

Primitivas de serviço3.3.3

A especificação formal de um serviço de rede ocorre através de um conjunto de primitivas (operações) que permitem aos processos do usuário acessar esse serviço. Essas primitivas instruem o sistema a executar uma ação específica ou relatam uma ação realizada por uma entidade par. Frequentemente, quando a pilha de protocolos reside no sistema operacional, essas primitivas atuam como chamadas de sistema, gerando uma armadilha para o kernel que assume o controle para o envio dos pacotes.

A natureza do serviço (orientado ou não a conexões) determina o conjunto de primitivas disponíveis. Inspirado na interface de sockets de Berkeley, a tabela abaixo apresenta um conjunto simplificado de primitivas essenciais para implementar um fluxo de bytes confiável em um ambiente cliente-servidor:

PrimitivaSignificado e Ação
LISTENO processo bloqueia e aguarda por uma conexão de entrada (servidor).
CONNECTSolicita o estabelecimento de uma conexão com um par que está à espera (cliente).
ACCEPTAceita uma conexão de entrada solicitada por um par.
RECEIVEO processo bloqueia e aguarda a chegada de uma mensagem.
SENDEnvia uma mensagem para o par conectado.
DISCONNECTSolicita o encerramento da conexão.

Para ilustrar a aplicação dessas primitivas, analisaremos um protocolo simples utilizando datagramas confirmados. O processo inicia-se com o servidor executando LISTEN, indicando sua disponibilidade para aceitar conexões. Esta é geralmente uma chamada de bloqueio: o servidor fica suspenso até que uma solicitação surja. Em seguida, o cliente executa CONNECT, especificando o endereço do servidor. O sistema operacional então envia um pacote de solicitação, conforme ilustrado no passo (1) da figura abaixo:

Ao receber a solicitação, o sistema operacional do servidor desbloqueia o processo ouvinte, que pode então executar ACCEPT. Isso envia uma confirmação de volta ao cliente (passo 2). Neste ponto, a conexão está estabelecida, criando um cenário análogo a uma chamada telefônica: o gerente (servidor) espera o telefone tocar (LISTEN), o cliente disca (CONNECT) e o gerente atende (ACCEPT).

Com a conexão ativa, a troca de dados ocorre. O servidor executa RECEIVE para aguardar solicitações. O cliente utiliza SEND para transmitir sua requisição (passo 3) e imediatamente executa RECEIVE para aguardar a resposta. O servidor processa a requisição e envia a réplica via SEND (passo 4). Finalmente, para encerrar a sessão, utiliza-se a primitiva DISCONNECT. O cliente inicia o desligamento (passo 5) e o servidor confirma (passo 6), liberando a conexão em ambas as pontas.

Por que tanta complexidade?

Alguém poderia questionar por que utilizar um protocolo de 6 pacotes (como mostrado acima) em vez de um modelo simples de 2 pacotes (solicitação e resposta), típico de serviços não orientados a conexão.

A resposta reside na confiabilidade do mundo real. Em um cenário ideal, dois pacotes bastariam. Contudo, em redes reais sujeitas a erros, perda de pacotes e transmissão de arquivos grandes (que exigem fragmentação), é crucial garantir que:

  • Todos os fragmentos chegaram.
  • A ordem dos pacotes foi preservada.
  • Não houve duplicação de pacotes antigos.

Por isso, embora introduza overhead, o serviço orientado a conexões fornece a estabilidade necessária para a maioria das aplicações complexas.

Relacionamento entre serviços e protocolos3.3.4

Serviços e protocolos são conceitos distintos, e essa diferenciação é tão fundamental para a arquitetura de redes que merece destaque especial. Essencialmente, um serviço é um conjunto de primitivas (operações) que uma camada oferece à camada imediatamente superior. Ele define o que a camada está preparada para executar em nome de seus usuários, mas não revela absolutamente nada sobre como essas operações são implementadas. Trata-se de uma relação vertical entre duas camadas adjacentes: a inferior atua como fornecedora e a superior, como usuária.

Em contrapartida, um protocolo é o conjunto de regras que governa o formato e o significado dos pacotes ou mensagens trocados entre entidades pares (situadas na mesma camada, mas em máquinas diferentes). As entidades utilizam protocolos para implementar as definições de serviço. Um ponto crucial é a independência: as entidades têm liberdade para alterar seus protocolos, desde que não modifiquem o serviço visível para os usuários acima.

A figura a seguir ilustra essa relação geométrica, onde os serviços ocorrem nas interfaces verticais e os protocolos nas interações horizontais:

Para consolidar o entendimento, a tabela abaixo resume as principais diferenças entre os dois conceitos:

CaracterísticaServiçoProtocolo
DefiniçãoConjunto de operações (primitivas) oferecidas à camada superior.Conjunto de regras para troca de dados entre entidades pares.
DireçãoVertical (Interface entre camadas adjacentes).Horizontal (Comunicação entre máquinas diferentes).
FocoDefine o que a camada faz.Define como a camada implementa a comunicação.
VisibilidadeVisível para o usuário da camada (camada superior).Oculto do usuário (detalhe interno de implementação).
Analogia com Programação Orientada a Objetos

Podemos comparar um serviço a um Tipo Abstrato de Dados (TAD) ou à interface de um objeto: ele define os métodos públicos disponíveis, mas não expõe o código interno. Já o protocolo equivale à implementação interna desses métodos, ou seja, o código que faz o objeto funcionar, mas que permanece invisível para quem o utiliza.

Historicamente, muitos protocolos antigos falhavam em fazer essa distinção. Nesses sistemas, uma primitiva de serviço frequentemente exigia que o usuário fornecesse um pacote totalmente montado, expondo detalhes internos. Isso significava que qualquer mudança no protocolo impactava imediatamente os usuários. Atualmente, os projetistas de redes consideram essa mistura de conceitos um erro grave de design, priorizando o encapsulamento e a separação clara entre a interface (serviço) e a implementação (protocolo).

Modelos de Referência3.4

O modelo de referência OSI3.4.1

Para concretizar a compreensão das redes em camadas, analisaremos o Modelo de Referência OSI (Open Systems Interconnection). Baseado em propostas da ISO (International Standards Organization), este modelo foi concebido como um passo fundamental rumo à padronização internacional. Seu nome, "Interconexão de Sistemas Abertos", refere-se à capacidade de conectar sistemas que estão abertos à comunicação com outros, independentemente de suas arquiteturas internas proprietárias.

Embora o modelo OSI em si não seja uma arquitetura de rede operacional (ele não especifica os protocolos exatos de cada camada, apenas suas funções), ele permanece como uma ferramenta teórica vital. Seus princípios de design estabelecem que:

  1. Cada camada deve representar um grau de abstração necessário.
  2. Cada camada deve ter uma função bem definida e padronizável.
  3. Os limites devem minimizar o fluxo de informações através das interfaces.

A estrutura é composta por sete camadas, organizadas da seguinte forma:

Abaixo, detalhamos a função de cada camada, partindo da base física até o nível do usuário.

Camada Física3.4.1.1

A base do modelo lida com a transmissão bruta de bits por um canal de comunicação.

  • Função: Garantir que um bit '1' enviado chegue como '1' e não '0'.
  • Questões de Projeto: Definição de sinais elétricos (voltagem para 0 e 1), duração do bit (nanossegundos), modo de transmissão (simplex/duplex) e especificações mecânicas de conectores e pinos.

Camada de Enlace de Dados3.4.1.2

Responsável por transformar um canal de transmissão bruto em uma linha livre de erros para a camada superior.

  • Mecanismo: Fragmenta os dados de entrada em quadros (frames) e gerencia confirmações (ACKs) de recebimento.
  • Controle de Fluxo: Impede que um transmissor rápido afogue um receptor lento.
  • Subcamada MAC: Em redes de broadcast, a subcamada de Controle de Acesso ao Meio gerencia quem tem o direito de transmitir no canal compartilhado.

Camada de Rede3.4.1.3

Controla a operação da sub-rede, focando no caminho que os dados percorrem.

  • Roteamento: Determina a rota da origem ao destino (estática ou dinâmica).
  • Controle de Congestionamento: Gerencia gargalos de tráfego.
  • Interconexão: Resolve problemas de heterogeneidade (endereçamentos ou tamanhos de pacotes diferentes) ao conectar redes distintas.
  • Unidade de Dados: Pacote.

Camada de Transporte3.4.1.4

A primeira camada de ponta a ponta (fim a fim), isolando as camadas superiores dos detalhes de hardware.

  • Função: Aceita dados da camada de sessão, divide-os se necessário e garante a entrega correta no destino.
  • Independência: Diferente das camadas inferiores (1-3) que operam entre vizinhos imediatos (roteador a roteador), a camada 4 estabelece uma conversa lógica direta entre o programa de origem e o de destino.
  • Tipos de Serviço: Pode oferecer canais livres de erro, entrega desordenada ou broadcasting, dependendo da necessidade.

Camada de Sessão3.4.1.5

Gerencia o estabelecimento e manutenção de sessões de comunicação entre usuários de máquinas diferentes.

  • Serviços: Controle de diálogo (quem fala quando), gerenciamento de tokens (para operações críticas) e sincronização (pontos de checagem para retomar transferências longas em caso de falha).

Camada de Apresentação3.4.1.6

Foca na sintaxe e semântica das informações, não apenas na movimentação de bits.

  • Função: Atua como um tradutor universal. Resolve diferenças de representação de dados (ex: codificação de caracteres ASCII vs. EBCDIC, inteiros big-endian vs. little-endian) para que sistemas heterogêneos possam se entender. Criptografia e compressão também ocorrem aqui.

Camada de Aplicação3.4.1.7

Contém os protocolos utilizados diretamente pelos usuários finais.

  • Exemplos:
    • HTTP: Base da World Wide Web.
    • FTP: Transferência de arquivos.
    • SMTP: Correio eletrônico.

O modelo de referência TCP/IP3.4.2

Após analisarmos o modelo OSI, voltamo-nos agora para a arquitetura que fundamentou a "avó" de todas as redes de computadores de longa distância: a ARPANET, e sua sucessora direta, a Internet mundial. A ARPANET foi uma rede de pesquisa patrocinada pelo Departamento de Defesa dos Estados Unidos (DoD) que conectou centenas de universidades e repartições públicas. A necessidade de interligar essas linhas telefônicas dedicadas com novas redes de rádio e satélite forçou a criação de uma arquitetura de referência robusta e flexível, capaz de unificar sistemas díspares.

Filosofia de Design e Contexto Histórico

O desenvolvimento do TCP/IP foi influenciado pela Guerra Fria. O DoD necessitava de uma rede capaz de sobreviver à perda de hardware ou linhas de transmissão (por exemplo, em um ataque militar) sem interromper as conversações existentes. Se a origem e o destino estivessem funcionais, a conexão deveria permanecer intacta.

Essa necessidade de robustez e flexibilidade (suportando desde transferência de arquivos até voz em tempo real) levou à escolha de uma rede de comutação de pacotes não orientada a conexões. A estrutura resultante, conhecida como Modelo TCP/IP, possui quatro camadas distintas, comparadas ao modelo OSI na figura abaixo:

A Camada de Enlace. Situada na base do modelo, esta camada descreve o que os enlaces de transmissão (como linhas seriais e Ethernet) devem fazer para cumprir os requisitos da rede. Não é uma camada no sentido estrito, mas sim uma interface crítica entre os hosts e os meios físicos de transmissão.

A Camada Internet (Camada de Rede). Esta camada é o "coração" que mantém toda a arquitetura unida. Sua função primordial é permitir que hosts injetem pacotes em qualquer rede e garantir que eles trafeguem independentemente até o destino, possivelmente passando por redes diferentes.

O funcionamento desta camada é análogo ao sistema de correio convencional: você deposita cartas (pacotes) em uma caixa, e elas atravessam diversos centros de triagem internacionais até o destino. O usuário não precisa conhecer as regras internas de cada centro. A camada Internet define um formato de pacote oficial e utiliza dois protocolos principais:

  • IP (Internet Protocol): Responsável pelo endereçamento e entrega.
  • ICMP (Internet Control Message Protocol): Protocolo auxiliar para mensagens de controle e erro.

A Camada de Transporte. Localizada acima da camada Internet, permite que as entidades pares nos hosts de origem e destino mantenham uma conversação. Aqui, definem-se dois protocolos de ponta a ponta com características opostas, essenciais para diferentes tipos de aplicação:

CaracterísticaTCP (Transmission Control Protocol)UDP (User Datagram Protocol)
Tipo de ConexãoOrientado a conexões.Não orientado a conexões (sem conexão).
ConfiabilidadeAlta. Garante entrega sem erros e ordenada.Baixa (Não confiável). Não garante entrega ou ordem.
ControleRealiza controle de fluxo (evita sobrecarga do receptor).Sem controle de fluxo ou sequenciamento.
Uso IdealTransferência de arquivos, e-mail, navegação Web.Consultas rápidas (cliente-servidor), voz e vídeo em tempo real (onde a velocidade supera a precisão).

A relação hierárquica entre esses protocolos e a camada IP pode ser visualizada a seguir:

A Camada de Aplicação. O modelo TCP/IP não possui camadas de sessão ou apresentação, pois a experiência demonstrou que essas funções eram raramente necessárias; quando precisas, são implementadas pela própria aplicação. Esta camada contém todos os protocolos de nível mais alto, incluindo:

  • TELNET: Protocolo de terminal virtual.
  • FTP: Transferência de arquivos.
  • SMTP: Correio eletrônico.
  • DNS (Domain Name Service): Mapeia nomes de hosts (ex: www.google.com) para endereços IP.
  • HTTP: Busca de páginas na World Wide Web.
  • RTP: Entrega de mídia em tempo real.

Comparação entre OSI e TCP/IP3.5

Embora possuam origens distintas, os modelos de referência OSI e TCP/IP compartilham fundamentos essenciais. Ambos baseiam-se no conceito de uma pilha de protocolos independentes e apresentam funcionalidades de camadas muito similares. Em ambos os modelos, as camadas inferiores até a de transporte formam o provedor de transporte, oferecendo um serviço de ponta a ponta independente da rede, enquanto as camadas superiores focam nas aplicações que utilizam esse serviço. Apesar dessas semelhanças, as divergências conceituais e estruturais são profundas.

Provavelmente a maior contribuição do modelo OSI foi tornar explícita a distinção entre três conceitos que, no TCP/IP original, não eram claramente separados. Essa distinção é vital para a arquitetura de software moderna e pode ser detalhada da seguinte forma:

ConceitoDefinição e Função
ServiçosDefine a semântica da camada, ou seja, o que a camada faz e quais operações oferece à camada superior, sem revelar como funcionam.
InterfacesDefine como os processos superiores acessam os serviços, especificando parâmetros e resultados esperados, mantendo o funcionamento interno oculto.
ProtocolosRefere-se à implementação interna e como o trabalho é realizado. A camada pode alterar seus protocolos livremente, desde que mantenha o serviço e a interface inalterados.
Analogia com Programação Orientada a Objetos (POO)

Esses conceitos do OSI adaptam-se perfeitamente à POO:

  • Serviço = Conjunto de métodos públicos de um objeto (o que ele faz).
  • Interface = Assinatura dos métodos (parâmetros e retornos).
  • Protocolo = Código interno do método (implementação invisível externamente).

O modelo TCP/IP, por ter sido criado com foco prático, possui protocolos menos encapsulados, dificultando alterações transparentes em comparação ao rigor do OSI.

A forma como cada modelo foi concebido influenciou diretamente sua adoção e generalidade. A tabela abaixo contrasta as abordagens de desenvolvimento:

CaracterísticaModelo OSIModelo TCP/IP
CronologiaModelo criado antes dos protocolos.Protocolos criados antes do modelo.
VantagemGenérico e não enviesado por uma tecnologia específica.Ajuste perfeito aos protocolos existentes, funcionando bem na prática.
DesvantagemProjetistas tinham pouca experiência prática; exigiu adaptações (subcamadas) posteriores para funcionar na realidade.O modelo não se adapta bem a outras pilhas de protocolos que não sejam TCP/IP.
Foco InicialRedes controladas pelo governo e interconexão teórica.Interconexão de redes heterogêneas na prática.

Além da diferença óbvia no número de camadas (sete no OSI contra quatro no TCP/IP), existe uma distinção crucial na filosofia de suporte a conexões. O modelo TCP/IP, focado na robustez e flexibilidade da Internet, prioriza a liberdade de escolha na camada de transporte, enquanto o OSI impõe restrições diferentes.

A matriz abaixo resume o suporte a serviços orientados e não orientados a conexão em cada modelo:

CamadaAbordagem do Modelo OSIAbordagem do Modelo TCP/IP
Camada de RedeSuporta ambos (Orientado e Não Orientado a Conexão).Suporta apenas Não Orientado a Conexão (foco no IP).
Camada de TransporteSuporta apenas Orientado a Conexão.Suporta ambos (TCP orientado e UDP não orientado), oferecendo escolha ao usuário.

Essa flexibilidade do TCP/IP na camada de transporte (permitindo protocolos simples de solicitação/resposta via UDP) provou-se essencial para aplicações modernas, contrastando com a rigidez do modelo OSI nessa camada específica.

Questões3.6

1. Muitos iniciantes confundem a direção do fluxo de dados com o método de endereçamento. Considere um sistema de Rádio FM tradicional (onde a torre transmite e o rádio do carro recebe) e um sistema de Walkie-Talkie (onde você aperta um botão para falar e solta para ouvir).

  • a) Classifique ambos quanto à direção do fluxo (Simplex, Half-Duplex ou Full-Duplex).
  • b) Classifique a torre de Rádio FM quanto ao endereçamento (Unicast, Multicast ou Broadcast).
  • c) Explique por que uma conversa telefônica é considerada Full-Duplex e Unicast ao mesmo tempo.

2. Você foi contratado para projetar a rede de um pequeno escritório com 6 computadores. O cliente está indeciso entre uma topologia em Malha (Mesh) e uma em Estrela. Para ajudá-lo a decidir baseando-se no custo de cabeamento, calcule:

  • a) Quantos cabos físicos (links) são necessários para conectar os 6 computadores em uma topologia em Malha completa? (Use a fórmula $n(n-1)/2$).
  • b) Quantos cabos são necessários para conectar os mesmos 6 computadores em uma topologia em Estrela (assumindo 1 hub central)?
  • c) Qual a diferença absoluta no número de cabos entre as duas opções?

3. Uma empresa decide conectar 10 computadores em uma configuração de segurança máxima usando uma topologia em Malha (Mesh) completa, para garantir que a falha de um cabo nunca isole dois computadores.

  • a) Quantas portas de I/O (Input/Output) cada computador individual precisará ter instaladas para suportar essa configuração?
  • b) Quantos links físicos (cabos) existirão no total nessa rede?
  • c) Se a empresa adicionar apenas mais um computador (totalizando 11), quantos novos cabos precisarão ser instalados para manter a malha completa?

4. Analise uma rede montada em topologia de Barramento (Bus) contendo 15 estações de trabalho conectadas a um único cabo backbone.

  • a) Quantos terminadores são necessários fisicamente para que essa rede funcione corretamente, evitando a reflexão do sinal?
  • b) Se o cabo backbone for rompido exatamente entre a 7ª e a 8ª estação, quantas estações continuarão aptas a se comunicar com todas as outras da rede? Justifique.

5. Considere uma rede em Anel unidirecional com 20 estações.

  • a) Quantas conexões físicas (links) existem no total para fechar o anel?
  • b) Em termos de robustez, o que acontece com a rede se a estação número 5 sofrer uma falha de energia e desligar (considerando que ela atua como repetidora)?
  • c) Como a topologia em Estrela isola esse tipo de falha de estação melhor que o Anel simples?

6. Considere o diagrama de fluxo de informação onde os dados descem as camadas. Suponha que um arquivo de 1.000 bytes precise ser enviado. O modelo de rede possui 5 camadas. Cada camada adiciona um cabeçalho ($H$) de 20 bytes ao processar a mensagem, e a camada de enlace (Camada 2) adiciona também um trailer ($T$) de 20 bytes.

  • a) Qual será o tamanho total do quadro transmitido fisicamente pelo meio?
  • b) Qual é a porcentagem de overhead (informação de controle inútil para o usuário final) nessa transmissão?

7. Na analogia dos Filósofos-Tradutores-Secretárias apresentada no texto: Suponha que a camada 1 (Secretárias) decida parar de usar o Fax e comece a usar E-mail para enviar as mensagens.

  • a) Isso exige que a camada 2 (Tradutores) mude o idioma que eles usam (o protocolo)?
  • b) Isso exige que a camada 3 (Filósofos) mudem a mensagem ("Gosto de coelhos")?
  • c) Use essa analogia para explicar o conceito de independência de camadas.

8. O texto compara serviços orientados a conexão com o sistema telefônico e serviços não orientados com o sistema postal.

  • a) Cite duas aplicações modernas onde um serviço não confiável (sem confirmação de recebimento) e não orientado a conexão (UDP) é preferível a um serviço confiável. Justifique com base no conceito de atraso/tempo real.
  • b) Por que o estabelecimento de conexão é necessário para garantir a entrega ordenada de pacotes?

9. O Modelo OSI introduziu uma distinção clara entre Serviço e Protocolo. Utilizando a analogia de Programação Orientada a Objetos apresentada no texto:

  • a) O que corresponde ao "Serviço"?
  • b) O que corresponde ao "Protocolo"?
  • c) Se um engenheiro alterar o algoritmo de criptografia interno de uma camada, ele alterou o serviço ou o protocolo?

10. Compare a Camada de Transporte nos modelos OSI e TCP/IP:

  • a) O modelo OSI permite que a camada de transporte use protocolos não orientados a conexão?
  • b) O modelo TCP/IP permite que a camada de transporte use protocolos orientados a conexão?
  • c) Qual dos dois modelos provou-se mais flexível para as aplicações modernas e por quê?

11. Em uma interação Cliente-Servidor confiável, seis pacotes são trocados para enviar uma única requisição e receber uma resposta (estabelecer, enviar, receber, desconectar). Se a conexão fosse "Não Orientada a Conexão" (Datagrama), quantos pacotes seriam trocados minimamente? Explique por que o modelo orientado a conexão, apesar de gerar mais tráfego, é usado para transferências bancárias.

12. Identifique qual pilar de segurança (Confidencialidade, Autenticação ou Integridade) foi violado nos cenários a seguir:

  • a) Um atacante intercepta um pacote com valor de $10,00 e altera para $1.000,00.
  • b) Um usuário acessa um site falso que imita seu banco para roubar senhas.
  • c) Um espião industrial lê e-mails confidenciais sem alterá-los.

13. O texto define "Jitter" como uma das características fundamentais para a eficácia de um sistema de comunicação. Explique por que uma variação alta de Jitter é catastrófica para uma transmissão de TV via internet (IPTV), mas quase imperceptível para o download de um arquivo PDF.

14. Na Camada de Rede (Modelo OSI ou Internet no TCP/IP), existem as funções de endereçamento e roteamento. Qual é a diferença técnica entre endereçar um pacote e rotear um pacote? Use a analogia do sistema de correios para explicar.

Próximos passos3.7

No próximo capítulo, Camada Física, Meios de Transmissão e Sem Fio, mergulharemos na base da pilha de protocolos para compreender os princípios físicos da comunicação de dados, desde a modulação de sinais até as propriedades dos meios guiados (cobre, fibra) e não guiados (rádio). Esse entendimento será a base necessária para analisarmos, na sequência, como a Camada de Enlace transforma essa transmissão bruta de bits em um fluxo de dados confiável e organizado.