Modelo ISO/OSI
Anteriormente a computação era baseada em grandes computadores chamados mainframe
que esigiam grande manutenção.
Ligados a ele existiam terminais chamados de burros por não fazerem nada mais do que controla
o input (teclado) e o output (monitor). todo o processamento era realizado pelo mainframe.
Com o aumento do número de usuários, a performance degrada e na tentativa de melhorar o desempenho
surgiram os computadores pessoais (PC) que além da capacidade de conectar, substituindo os obsoletos terminais,
possuiam poder de processamento.
Novas tecnologias mais eficientes, surgiram na tentativa de fazer com que PCs se comunicassem.
Na realidade estamos falando de Local Area Networks -LAN baseadas nas tecnologias Token Ring e
Ethernet, bastando para isto adicionar uma Network Interface Card - NIC ao PC.
As LANs cresceram e se espalharam em regiões cada vez maiores se transformando em Wide Area Network- WAN.
A combinação de LANs e WANs em diferentes configurações são o que chamamos de
Internet. O estudo destas combinações, Internetworking, é o que
pretendemos elaborar neste sítio.
As LANs eram implementadas por várias empresas de tal forma que não havia compatibilidades entre os equipamentos
tornando a comunicação entre elas impossível.Em 1984, um grupo de trabalho da International
Organization for Standardization - ISO criou um modelo chamado Open Systems Interconnect - OSI,
baseado em camadas, que definiu as bases para a interoperabilidade entre equipamentos de redes de manufaturadores diversos.
É importante observar que o modelo ISO/OSI somente define as principais funções distribuídas pelos diversos níveis
de abstrações, ou seja, as camadas que passaremos a explecar abaixo.
Um modelo de camadas é muito útil no desenvolvimento de protocolos devido à estruturação que pode ser conseguida.
O desenvolvimento do modelo e a definição das camadas foi baseado em quatro características principais:
- níveis de abstrações diferentes
- funções bem definidas e não superpostas
- utilização de padrões internacionais
- mínimo de fluxo de informaçòes entre as interfaces
O modelo estruturado em camadas apresenta facilidades modulares de projeto, de implementação e de testes muito apropriadas na fase inicial,
na fase posterior de novas versões de protocolos e na interoperabilidade entre fabricantes.
O modelo ISO/OSI é constituído por 7 camadas descritas na figura acima.
Normalmente as camadas 1, 2 e 3 são implementadas através de software e hardware, enquanto que as demais somente por software.
A figura descreve também todo o processo de comunicação através da rede.
Cada camada encapsula (desencapsula) os dados das camadas superiores (inferiores)
o que significa que cada camada do host origem se comunica com a mesma camada do host destino apesar da comunicação acontecer entre camadas
imediatamente superior e inferior.
Vamos agora analisar cada uma das camadas. Para cada uma delas, escrevi uma frase que caracteriza
a sua principal função. Acredito ser mais intuitivo analizarmos as funções do que a área de atuação.
Claro que não pretendo aqui ser muito profundo como é o autor Tanenbaum em seu livro clássico na área de internetworking.
1. Camada Física
"Define a conexão física entre o sistema computacional e a rede, necessária para transmissão da informação através do meio físico.
Especifica o conector, a pinagem, níveis de tensão, dimensões físicas, características mecânicas e elétricas, etc."
Esta é a camada mais fácil para abstrairmos. Nesta camada estão os protocolos Ethernet 50ohm e 10/100BaseT, entre outros.
Na realidade esta camada executa duas tarefas: envia e recebe dados através de um meio físico. A unidade de dados
é o bit (0 ou 1) e são transmitidos através de sinais elétricos, ópticos ou tons de áudio.
Esta camada define: Data Terminal Equipament - DTE e Data Circuit-Terminating Equipment - DCE que são padronizados
como sendo o modem e o terminal/computador, respectivamente.
Algumas interfaces típicas são: HSSI, V.35, EIA/TIA-232 e X.21.
2. Camada Enlace
"Aqui a informação é formatada em quadros (frames). Um quadro representa a exata estrutura
dos dados fisicamente transmitidos através do fio ou outro meio."
Esta camada faz a conexão entre os protocolos de software e os de hardware. Esta camada é subdividida em duas outras,
Logic Link control - LLC e Media Access Control - MAC, sendo esta última mais próxima da camada 1 (Física).
A sub-camada MAC, define um endereço MAC ou endereço Físico (ex. endereço Ethernet ou endereço Token Ring) que é uma maneira
única para identificação de uma interface (placa) de rede na rede, mesmo que um único dispositivo possua duas ou mais
(ex. roteador). Este endereço, e portanto a interface, independe da camada superior (rede) podendo ser utilizada com os protocolos
IP ou IPX, por exemplo.
O endereço MAC é constituído por 6 bytes, sendo os 3 primeiros definidos pela IEEE e específico de cada fabricante:
- 00 00 0C XX XX XX Cisco
- 00 E0 98 XX XX XX LinkSys
- 00 10 5A XX XX XX 3Com
- 08 00 20 XX XX XX Sun
- 08 00 5A XX XX XX IBM
A unidade básica de informação é o quadro (frame). Alguns protocolos desta camada são: HDLC, X.25, PPP, ISDN e Frame Relay.
3. Camada Rede
"O roteamento dos dados através da rede é implementado aqui."
As duas camadas inferiores, camadas 1 e 2, permitem comunicação entre dispositivos de um mesmo segmento de rede.
Se os dispositivos estiverem em redes (segmentos) diferentes esta camada realiza o papel fundamental de encaminhar (rotear)
os pacotes para o segmento correto. O roteador é o equipamento característico desta camada 3.
O endereço de rede deve conter uma parte relativa à rede propriamente dito, e uma outra relativa ao host ou dispositivo.
Por exemplo, consideremos os endereços 4.2, 4.56 e 7.28. Os dois primeiros pertencem a um mesmo segmento, rede 4, porém à dispositivos
diferentes, enquanto o terceiro endereço pertence à ma outra rede, rede 7.
Para comunicação entre de mesmo segmento, a camada 3 não participa, enquanto que para comunicação entre 4.56 e 7.28, a
camada 3 precisa de um roteador para implementar sua principal função que é o direcionamento de pacotes (roteamento).
Um roteador é um equipamento camada 3, e portanto não interpreta os endereços físicos (MAC).
Quando um pacote chega a um roteador, o cabeçalho desta camada é analisado e o pacote é então encaminhado
para interface correta que o levará para rede destino fazendo assim que o pacote seja roteado da rede origem para a rede destino.
A unidade básica de informação é o datagrama. Alguns protocolos desta camada são: IP, IPX, RIP e OSPF.
4. Camada Transporte
"Efetua os processos de sequenciamento e, em alguns casos, confirmação de recebimento dos pacotes de
dados. "
Esta camada implementa diferentes funções necessárias para o envio de dados para o parceiro de comunicação.
Estes mecanismos incluem multiplexação dos dados de diferentes aplicações o que significa que vários aplicações
irão enviar seus dados no mesmo stream ou mesmo circuito virtual.
A integridade dos dados é essencial para sua transmissão. Nesta camada são implementados 3 métodos para controle do fluxo:
buffering, source quench e windowing.
Buffering: é mantido no dispositivo receptor e basicamente armazena os dados que chegam quando o processamento deles
é lento. Em situações críticas onde o fluxo de dados é muito alto, o buffer ficará cheio e certamente haverá perda de dados.
Source Quench: neste método, quando o fluxo é grande para o processamento, o receptor envia uma mensagem para o transmissor,
informando da necessidade de interromper o fluxo de dados até que outra mensagem informe que o receptor está disponível
para mais dados.
Sliding Windowing: o princípio ativo deste processo é informar ao transmissor a quantidade de dados que podem ser enviadas
definindo assim um tamanho para "janela". Quando o recpetor receber os dados, ele envia uma mensagem (ACK) ao transmissor informando
quais os segmentos de dados foram recebidos. Por sua vez, o transmissor esvazia sua "janela" e a preenche com novos dados.
A unidade básica de informação é o segmento. Alguns protocolos desta camada são: TCP e UDP.
5. Camada Sessão
"Estabelece e encerra os enlaces de comunicação."
Esta camada define o método de comunicação: Half Duplex ou Full Duplex.
No primeiro caso, um dispositivo envia o dado quando o outro dispositivo está aguardando e no segundo caso,
ambos os dispositivos enviam e recebem dados simultaneamente, com a maior velocidade possível.
A sessão é iniciada após estabelecida a conexão entre os parceiros de comunicação, ou seja, após negociação do
método de comunicação e definição dos protocolos a serem utilizados.
Esta camada utiliza o conceito de checkpoint que é uma maneira do receptor enviar uma menssagem ao
transmissor informando da chegada do pacote. Na ausência de algumas destas menssagens, os pacotes são reenviados, a partir
da última menssagem não necessitando reenviar todos os pacotes.
Alguns protocolos desta camada são: SQL, RPC, X Windows e NFS.
6. Camada Apresentação
"Aqui os dados são convertidos e garantidos em um formato universal."
Esta camada é responsável pela apresentação dos dados em um formato universal.
Ex.: em uma comunicação entre um PC e um grande porte (mainframe), é necessário converter os dados de ASCII para EBCDIC, que
são os formatos utilizados, respectivamente. Outros exemplos são os formatos gráficos (PICT, JPEG, TIFF, GIF, ..., os formatos
de áudio e vídeo (MPEG, QuickTime, ...).
Encriptação é um outro tipo de estrutura de dados, muito necessária em troca de dados reservados, como senhas, dados bancários, etc.
7. Camada Aplicação
"Esta camada funciona como uma interface de ligação entre os processos de comunicação de rede e as
aplicações utilizadas pelo usuário."
Esta camada é na realidade um buffer entre a interface do usuário usada para executar algum trabalho (editores, navegadores,
programs de e-mail, etc) e a aplicação de rede . Esta aplicação pode fazer parte
da aplicação propriamente dita (opção "enviar" no programa de e-mail) ou ser uma Aplication Programming Interface - API.
Esta camada é responsável por encontrar um parceiro na rede para comunicação (receptor), posteriormente é responsável por garantir
a banda necessária para transmissão de dados. Tb é responsável pelo sincronismo entre os dispositivos envolvidos e verificação de erros,
garantindo assim que a aplicação receba e envie dados porém, nunca simultaneamente.