Quando as redes de computadores surgiram, as soluçãoes eram, na maioria das vezes, proprietárias, isso é, uma determinada tecnologia era suportada somente por seu fabricante. Dessa forma, um mesmo fabricante era responsável por construir praticamente tudo na rede.
Para facilitar a interconexão de sistemas de computadores, a ISO (International Standads Organization) desenvolvel um modelo de referência chamado OSI (Open System Interconnection), que veio trazer interoperabilidade (Compatibilidade) entre os padrões de redes existentes e servir de modelo para novos protocolos. Hoje, fabricam-se produtos baseados principalmente nesta arquitetura.
O modelo OSI é dividido em sete níveis, sendo que cada um deles possui uma
função distinta no processo de comunicação entre dois sistemas abertos. A figura abaixo
mostra os sete níveis do modelo OSI, que serão analisados a seguir, iniciando pelo nível
mais próximo ao meio físico e terminando no nível mais próximo do usuário. Pode-se
ver através da figura que cada nível possui um ou mais protocolos que realizam as
funções específicas daquele nível, e esses protocolos são compatíveis entre as máquinas
que estão se comunicando (host A e host B).
Entre cada nível existe uma interface. Essa interface permite que dois níveis
quaisquer troquem informações. A interface também define quais primitivas, operações
e serviços o nível inferior oferece ao imediatamente superior.
Cada nível é independente entre si e executa somente suas funções, sem se
preocupar com as funções dos outros níveis. Assim, por exemplo, o nível 2 preocupa-se
em fazer uma transmissão livre de erros, não importando se o nível físico esteja
utilizando par trançado, cabo coaxial ou fibra ótica.
A seguir serão analisados os sete níveis do modelo OSI, bem como suas funções e
exemplos referentes aos protocolos existentes para cada um deles.
Nível 1: físico
O nível físico tem a função de transmitir uma seqüência de bits através de um
canal de comunicação. As funções típicas dos protocolos deste nível são para fazer com
que um bit "1" transmitido por uma estação seja entendido pelo receptor como bit "1" e
não como bit "0". Assim, este nível trabalha basicamente com as características
mecânicas e elétricas do meio físico, como por exemplo:
•Número de volts que devem representar os níveis lógicos "1" e "0";
•Velocidade máxima da transmissão;
•Transmissão simplex, half-duplex ou full-duplex;
•Número de pinos do conector e utilidade de cada um;
•Diâmetro dos condutores.
Os protocolos deste nível são os que realizam a codificação/decodificação de
símbolos e caracteres em sinais elétricos lançados no meio físico, que fica logo abaixo
dessa camada.
Exemplos de protocolos que se enquadram no nível físico do modelo OSI são:
RS-232C, X.21 (para redes com transmissão digital), X.21bis (para redes com
transmissão analógica), codificação Manchester, codificação Manchester Diferencial,
SONET (Synchronous Optical Network), SDH (Synchronous Digital Hierarchy) e assim
por diante.
Nível 2: enlace
O principal objetivo do nível de enlace é receber/transmitir uma seqüência de bits
do/para o nível físico e transformá-los em uma linha que esteja livre de erros de
transmissão, a fim de que essa informação seja utilizada pelo nível de rede.
O nível de enlace está dividido em dois sub-níveis: o superior é o controle lógico
do enlace (LLC - Logical Link Control), e o inferior é o controle de acesso ao meio
(MAC - Medium Access Control), como mostra a figura a seguir.
Subnível LLC
protocolo LLC pode ser usado sobre todos os protocolos IEEE do subnível
MAC, como por exemplo o IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus) e IEEE
802.5 (Token Ring). Ele oculta as diferenças entre os protocolos do subnível MAC.
UNISINOS - Universidade do Vale do Rio dos Sinos
Redes de Computadores - modelos OSI e TCP/IP
Página 9
Usa-se o LLC quando é necessário controle de fluxo ou comunicação confiável.
Ele oferece três opções de transmissão: serviço de datagrama não-confiável, serviço de
datagrama com confirmação e serviço orientado à conexão confiável.
O LLC consegue isso dividindo a mensagem a transmitir em quadros com
algumas centenas de bytes de dados e alguns bytes de controle (como CRC, por
exemplo). Enquanto transmite seqüencialmente os quadros de dados, o transmissor deve
tratar os quadros de reconhecimento (ACK), que são enviados pelo receptor a fim de
indicar se a transmissão ocorreu com ou sem erros. Caso algum quadro não tenha
chegado corretamente, o transmissor deve retransmiti-lo, e o receptor deve descartar o
quadro errado.
Um ruído mais forte na linha pode destruir completamente um quadro. Nesse
caso, os protocolos da camada de enlace devem retransmitir essa informação.
Entretanto, múltiplas retransmissões do mesmo quadro podem fazer com que existam
quadros duplicados. Um quadro duplicado pode acontecer se, por exemplo, o ACK do
receptor foi destruído. É tarefa do LLC tratar e resolver problemas causados por quadros
danificados, perdidos e duplicados. Existem várias classes de serviço neste nível, cada
uma com seu fator de qualidade.
Outra função do nível de enlace LLC é controle de fluxo, ou seja, o controle de
um transmissor rápido para que não inunde de dados um receptor mais lento. Algum
mecanismo regulador de tráfego deve ser empregado para deixar o transmissor saber
quanto espaço em buffer tem no receptor naquele momento. Freqüentemente, o controle
de fluxo e de erro é integrado, simplificando o protocolo.
Para entender quando é necessário controle de fluxo, suponha um transmissor que
pode enviar dados a 1Mbps, e um receptor que pode receber dados somente a 100Kbps,
como mostra a figura a seguir. Evidentemente, algum controle deve haver para que o
receptor não seja obrigado a descartar dados.
Transmissor
(1Mbps)
Receptor
(100Kbps)
Outra complicação que deve ser tratada em nível de enlace é quando a linha for
utilizada para transmitir tráfego em ambas direções (de A para B e de B para A).
Normalmente, uma comunicação envolve a transmissão do pacote de dados e o ACK
(acknowledge) enviado de volta pela estação receptora, indicando que os dados
chegaram sem erros. Entretanto, o problema é que os quadros de ACK competem pelo
meio físico da mesma forma que os quadros de dados, prejudicando o desempenho do
sistema. Para eliminar esse problema, em alguns protocolos utiliza-se o conceito de
piggybacking, onde os bits de ACK que devem ser enviados em resposta ao quadro de
dados transmitidos pela estação A vem junto com o quadro de dados que a estação B
quer transmitir para a estação A.
Resumindo, as principais funções do nível de enlace são as seguintes:
•Entregar ao nível de rede os dados livres de erros de transmissão;
•Retransmissão de quadros errados;
•Controle de fluxo;
UNISINOS - Universidade do Vale do Rio dos Sinos
Redes de Computadores - modelos OSI e TCP/IP
Página 10
•Tratamento de quadros duplicados, perdidos e danificados.
Subnível MAC
O sub-nível MAC possui alguns protocolos importantes, como o IEEE 802.3
(Ethernet), IEEE 802.4 (Token Bus) e IEEE 802.5 (Token Ring).
O protocolo de nível superior pode usar ou não o subnível LLC, dependendo da
confiabilidade esperada para esse nível. Em intranets se utiliza TCP/IP sobre MAC
direto.
Esse subnível fica muito próximo ao nível físico, não existindo confirmações de
mensagens (ACK) nem controle de fluxo. Caso a mensagem chegue errada no receptor
(detectado através do CRC), ele simplesmente descarta o quadro.
As redes baseadas em TCP/IP que utilizam o Ethernet / Token Ring em nível 2
funcionam dessa forma, ou seja, se dá erro num pacote ele é descartado. As
confirmações e verificações ficam para o nível mais alto (TCP). Essa é uma boa forma
de reduzir overheads na rede, sem repetições e retransmissões a cada nível que a
mensagem passa.
Nível 3: rede
O nível de rede tem a função de controlar a operação da rede de um modo geral. O
principal aspecto é executar o roteamento dos pacotes entre fonte e destino,
principalmente quando existem caminhos diferentes para conectar entre si dois nós da
rede. Em redes de longa distância é comum que a mensagem chegue do nó fonte ao nó
destino passando por diversos nós intermediários no meio do caminho, e é tarefa do
nível de rede escolher o melhor caminho para essa mensagem.
A escolha da melhor rota pode ser baseada em tabelas estáticas, que são
configuradas na criação da rede e são raramente modificadas, pode também ser
determinada no início de cada conversação, ou ser altamente dinâmica, sendo
determinada a cada novo pacote, a fim de refletir exatamente a carga da rede naquele
instante. Na prática, os roteadores atualizam suas tabelas de roteamento de tempos em
tempos (30 segundos, no RIP).
Se muitos pacotes estão sendo transmitidos através dos mesmos caminhos, eles
vão diminuir o desempenho global da rede, formando gargalos. O controle de tais
congestionamentos é tarefa da camada de rede.
Normalmente, a transmissão de mensagens em redes de longa distância é cobrada
pela central pública que administra o serviço, e a contabilização é feita pela camada de
rede, que deve contar o número de pacotes ou bytes que o usuário utilizou a fim de
tarifar o sujeito.
Resumindo, as principais funções do nível de rede são as seguintes:
•Roteamento dos pacotes entre fonte e destino, mesmo que tenha que passar
por diversos nós intermediários durante o percurso;
UNISINOS - Universidade do Vale do Rio dos Sinos
Redes de Computadores - modelos OSI e TCP/IP
•Controle de congestionamento;
•Contabilização do número de pacotes ou bytes utilizados pelo usuário, para
fins de tarifação;
Com relação às redes broadcast (do tipo Ethernet), onde a informação é escutada
por todas outras estações, o roteamento não é necessário dentro da subrede, fazendo
com que a camada de rede seja muito simples. Caso não seja tarefa da subrede, o pacote
é enviado ao roteador default.
Exemplos de protocolos desse nível são o IPX, usado pelo Netware até a versão
5.0, o IP (Internet Protocol), que pertence à família de protocolos TCP/IP, e o PLP
(Packet Layer Protocol), referenciado no modelo OSI e utilizado nas redes X.25.
A principal diferença entre o protocolo IP e o PLP é que a transmissão de dados
no protocolo IP é orientada a datagramas (sem conexão), e no PLP é orientada à
conexão (onde um caminho virtual é estabelecido antes de iniciar a comunicação
propriamente dita).
Uma transmissão orientada a datagrama é menos confiável pois as mensagens não
seguem um caminho pré-determinado entre fonte e destino, podendo tomar caminhos
diferentes dependendo da decisão do roteador, que pode escolher diferentes rotas para
enviar cada pedaço da mensagem. Assim, nesse tipo de transmissão, não é garantido que
a mensagem chegue ao destino na mesma ordem que foi enviada, sendo uma tarefa das
camadas superiores a sua remontagem na seqüência correta. Dessa forma, uma
mensagem que foi transmitida e segmentada na seqüência 1, 2 e 3, pode chegar ao
destino na ordem 2, 3 e 1. Pode-se associar a transmissão orientada à datagrama com o
envio de uma mensagem por telegrama via correio. No corpo do telegrama constam
todos os dados necessários para o carteiro encontrar o endereço destino, e se forem
enviados vários telegramas, não se pode garantir qual deles chegará antes.
Na transmissão orientada à conexão, ao contrário, antes de se estabelecer a
transmissão de dados propriamente dita, é criada uma rota através da qual todos os
pacotes irão trafegar, dessa forma, a correta seqüência dos pacotes é garantida. Pode-se
associar a transmissão orientada à conexão com uma ligação telefônica: antes de se
estabelecer a comunicação entre origem e destino, é necessário a criação de uma
conexão física através de chaves comutadoras da central pública, e, após estabelecida
essa conexão, não é mais necessário o reforço do número discado até o término da
conversação, onde a conexão é desfeita.
Nível 4: transporte
O nível de transporte inclui funções relacionadas com conexões entre a máquina
fonte e máquina destino, segmentando os dados em unidades de tamanho apropriado
para utilização pelo nível de rede.
Sob condições normais, o nível de transporte cria uma conexão distinta para cada
conexão de transporte requisitada pelo nível superior. Se a conexão de transporte
requisitada necessita uma alta taxa de transmissão de dados, este nível pode criar
múltiplas conexões de rede, dividindo os dados através da rede para aumentar a
UNISINOS - Universidade do Vale do Rio dos Sinos
Redes de Computadores - modelos OSI e TCP/IP
Página 12
velocidade de transmissão. Por outro lado, se é caro manter uma conexão de rede, a
camada de transporte pode multiplexar várias conexões de transporte na mesma conexão
de rede, a fim de reduzir custos. Em ambos os casos, a camada de transporte deixa essa
multiplexação transparente ao nível superior.
Existem várias classes de serviço que podem ser oferecidas ao nível superior, e,
em última instância, aos usuários da rede. A mais popular é uma comunicação através
de um canal ponto a ponto livre de erros, que envia as mensagens seqüencialmente, na
mesma ordem que elas foram recebidas. Existem outras classes permitidas, como o
envio de mensagens isoladas, sem garantia sobre a ordem da entrega, ou enviar
mensagens para múltiplos destinos (mensagens multicast). Atualmente, está se
popularizando uma classe de serviço que garante um atraso mínimo na transmissão e a
variação máxima do atraso entre pacotes, viabilizando assim aplicações de voz e vídeo
através da rede.
O nível de transporte é o primeiro que trabalha com conexões lógicas fim a fim,
ou seja, um programa na máquina fonte conversa com um programa similar na máquina
destino, diferentemente dos níveis anteriores, que conversavam somente com o nó
vizinho. Vale ressaltar que a conexão criada pelo nível de transporte é uma conexão
lógica, e os dados são transmitidos somente pelo meio físico, através do nível 1 do
modelo. Assim, os dados devem descer nível a nível até atingir o nível 1, para então
serem transmitidos à máquina remota.
Resumindo, as principais funções do nível de transporte são as seguintes:
•Criar conexões para cada requisição vinda do nível superior;
•Multiplexar as várias requisições vindas da camada superior em uma única
conexão de rede;
•Dividir as mensagens em tamanhos menores, a fim de que possam ser
tratadas pelo nível de rede;
•Estabelecer e terminar conexões através da rede.
Como exemplos de protocolos de nível de transporte da família TCP/IP temos o
TCP (Transfer Control Protocol), orientado à conexão e mais confiável, e o UDP (User
Datagram Protocol), orientado a datagrama e menos confiável. O protocolo
especificado pela ISO nesse nível é o TP4.
Nível 5: sessão
A função do nível 5 do modelo OSI é administrar e sincronizar diálogos entre dois
processos de aplicação. Este nível oferece dois tipos principais de diálogo: half-duplex e
full-duplex.
Uma sessão permite transporte de dados de uma maneira mais refinada que o nível
de transporte em determinadas aplicações. Uma sessão pode ser aberta entre duas
estações a fim de permitir a um usuário se logar em um sistema remoto ou transferir um
arquivo entre essas estações. Os protocolos desse nível tratam de sincronizações
(checkpoints) na transferência de arquivos.
UNISINOS - Universidade do Vale do Rio dos Sinos
Redes de Computadores - modelos OSI e TCP/IP
Página 13
Um exemplo de protocolo que se enquadra neste nível é o RPC (Remote
Procedure Call).
Nível 6: apresentação
A função do nível 6 é assegurar que a informação seja transmitida de tal forma
que possa ser entendida e usada pelo receptor. Dessa forma, este nível pode modificar a
sintaxe da mensagem, mas preservando sua semântica. Por exemplo, uma aplicação
pode gerar uma mensagem em ASCII mesmo que a estação interlocutora utilize outra
forma de codificação (como EBCDIC). A tradução entre os dois formatos é feita neste
nível.
O nível de apresentação também é responsável por outros aspectos da
representação dos dados, como criptografia e compressão de dados.
Nível 7: aplicação
O sétimo nível, o de aplicação, fornece ao usuário uma interface que permite
acesso a diversos serviços de aplicação, convertendo as diferenças entre diferentes
fabricantes para um denominador comum.
Por exemplo, em uma transferência de arquivos entre máquinas de diferentes
fabricantes, podem haver convenções de nomes diferentes (DOS tem uma limitação de
somente 8 caracteres para o nome de arquivo, UNIX não), formas diferentes de
representar as linhas, e assim por diante. Transferir um arquivo entre os dois sistemas
requer uma forma de trabalhar com essas incompatibilidades, e essa é a função do nível
de aplicação.
O nível de aplicação sem dúvida nenhuma é o nível que possui o maior número de
protocolos existentes, devido ao fato de estar mais perto do usuário, e os usuários
possuírem necessidades diferentes. Algumas aplicações deste nível são transferência de
arquivos, correio eletrônico e terminais virtuais, entre outras.
Exemplos de protocolos deste nível são o NFS (Network File System), o X.400, o
SMTP (Simple Mail Transfer Protocol), bases de dados distribuídas, telnet, FTP (File
Transfer Protocol), SNMP (Simple Network Management Protocol), CMIP (Common
Management Information Protocol), X.500 e assim por diante.
Referências Bibliograficas: Senac-MG, UNISINOS - Universidade do Vale do Rio dos Sinos.