Resumo do Livro Hands-On Network Programming with C# and .NET Core - Parte 2

C# 25 de Mar de 2025

Neste segundo artigo, iremos falar sobre a criação do Modelo OSI e suas camadas. Iremos abordar um pouco sobre os cabeçalhos e rodapés que envolve o pacote.

O que é e para que serve o Modelo OSI?

O modelo OSI (Open System Interconnection) procura padronizar as diferentes etapas da comunicação entre dispositivos. Ele é um modelo de referência de como os protocolos nas diversas camadas que existe, vão transportar o dado de um ponto a outro. Por exemplo, quando realizamos uma consulta em uma API, essa requisição sai do nosso computador, ou via Wi-Fi, ou via cabo de rede e passa por diversos outros servidores até chegar ao destino. Cada camada tem a sua função para o dado chegar ao seu destino.

Origem

Se viu a necessidade de desenvolver um modelo padronizado para redes logo após o surgimento das redes. No final da década de 1970, duas organizações se propuseram a resolver o problema: a Organização Internacional para Padronização (OSI) e o Comitê Consultivo Internacional Telegráfico e Telefônico (CCITT). Ambas estavam desenvolvendo um modelo semelhante para o mesmo problema, mas não sabiam da existência uma da outra o que facilitou depois na unificação desses modelos. Em 1983, a unificação resultou no Modelo de Referência OSI, oficializado em 1984.

Camadas

O OSI define a interação unidirecional entre as camadas. Uma camada só pode falar com a camada que está abaixo dela por meio de uma interface abstrata exposta por essa camada inferior. Essa interface é chamada definição de serviço e nela é definido o que ficará exposto para quem for consumir. Isso se assemelha com interfaces no desenvolvimento de software, onde definimos o que ficará exposto do objeto para outros consumirem os recursos.

Imagem retirada de Hands-On Network Programming with C# and .NET Core

Conforme os dados vão descendo pelas camadas, cada camada deixa sua “assinatura” envolvendo o dado em cabeçalhos e rodapé para o dispositivo destinatário analisar. As informações tidas nos cabeçalhos e rodapé é de onde o dado se originou e como analisar o mesmo.

Abaixo se encontra alguns exemplos de cabeçalhos retirados dos protocolos TCP e HTTP usando o Wireshark:

TCP
HTTP

O pacote passado de camada em camada é conhecido como uma Unidade de Dados do Protocolo (PDU).

Então depois de tudo isso vamos descrever como o nosso pacote é transportado:

1 — O dispositivo cria um pacote (PDU) em alguma camada

2 — A camada que criou o pacote passa ele para baixo usando a interface da camada anterior

3 — As camadas abaixo recebem o PDU e cada uma envolve os seus cabeçalhos e rodapés para ser analisado pela camada responsável no dispositivo remoto

4 — Transmite o PDU para o dispositivo remoto

5 — Cada camada remove o cabeçalho correspondente a ela mesmo e envia o PDU para camada acima

6 — O PDU é analisado conforme as regras do protocolo da camada onde ele está sendo processado. Quem criou o PDU define essas regras.

Imagem retirada de Hands-On Network Programming with C# and .NET Core

Certo, certo, certo e quais são essas camadas?

Existem 7 camadas definidas em duas categorias: host e media.

A camada host tem os quatro níveis mais alto do modelo OSI e detalha informações sobre um host que tenta se comunicar em uma rede.

Já a camada media descreve como são as implementações físicas dos componentes entre dois hosts. As implementações dessa camada normalmente são a quase ao nível de hardware.

Media

Camada Física: transmissão bruta de bits através dos cabos, fibra óptica e ondas de rádio

Camada de Enlace de Dados: fornece meios para transferir os dados entre os dispositivos. É responsável pelo endereçamento físico, controle de erros e controle de fluxo.

Camada de Rede: responsável pelo endereçamento lógico e pelo roteamento dos pacotes (por exemplo, endereçamento IPV4, IPV6). Define como os pacotes são enviados de uma origem a um destino.

Host

Camada de Transporte: responsável pela entrega dos dados entre host. Controla a confiabilidade da entrega (protocolo TCP) ou não (UDP). Também gerencia a segmentação dos dados.

Camada de Sessão: gerencia as sessões de comunicação, estabelecendo, controlando e encerrando conexões entre aplicações.

Camada de Apresentação: cuida da tradução dos dados e da formatação dos mesmos para a aplicação (codificação, compressão, criptografia, etc.)

Camada de Aplicação: camada na qual o usuário ou o processo interage diretamente. Essa camada provê serviços como e-mail e navegadores para as aplicações. Inclui alguns protocolos como HTTP, FTP, SMTP, DNS, etc.

Modelo OSI

Referências

Anatomia dos pacotes TCP/IP sob a perspectiva da cibersegurança
Compreender a anatomia dos pacotes TCP/IP é essencial para desvendar os segredos que fluem pelas redes e compreender sua estrutura é fundamental para os profissionais de cibersegurança.

https://www.cloudflare.com/pt-br/learning/network-layer/what-is-a-packet/

Marcadores