Redes - Conceitos
gerais
Topologia
Protocolos
Camadas
e pacotes
Concorrência por serviços
Os tópicos a serem examinados
podem ser encontrados nos seguintes capítulos de livros:
Computer
Networks, Tanenbaum, cap. 1
Redes de
Computadores, Soares-Lemos-Colcher, cap. 1, 2 e 5
Local & Metropolitan Area
networks, Stallings, cap. 1, 2, 3 e 4
No capítulo anterior
constatou-se a necessidade da operação eficiente de uma
rede de comunicação para o funcionamento de um sistema
distribuído. Isso leva à necessidade do estudo de redes
de computadores, que será iniciado aqui.
1. Topologia
Num primeiro momento o que se faz é
apresentar conceitos de topologia de redes (anel, barramento,
estrela, completa, etc.), que nada mais é do que a descrição
da forma de ligação elétrica entre as várias
máquinas que fazem parte da rede. Examina-se então as
diferenças entre essas topologias do ponto de vista de custo,
tempo de transmissão e estabilidade.
2. Protocolos
A simples ligação elétrica
entre os vários computadores não garante a comunicação
entre os mesmos. Para que isso ocorra existe a necessidade de se
definir um protocolo para a comunicação entre máquinas
distintas. Isso significa definir um padrão organizado para o
estabelecimento de uma conversa, tal como ocorre, por exemplo, em uma
ligação telefônica, quando a pessoa que inicia a
chamada deve esperar por um sinal de linha, discar o número
desejado, esperar o sinal de chamando e pelo atendimento no outro
lado da linha, podendo então iniciar de fato a comunicação.
Todos sabemos que não é possível estabelecer uma
comunicação correta sem seguir todos esses passos.
Para a comunicação entre
computadores isso se torna ainda mais crítico pois tais
máquinas são essencialmente "burras", além
de poderem falar "línguas" distintas (usarem
processadores e/ou sistemas operacionais diferentes).
Assim é fundamental a criação de um protocolo de comunicação que seja não apenas possível mas também confiável. Vários protocolos têm sido propostos, com diversas implementações distintas para cada um deles. Em particular se destacam os protocolos IEEE 802-xx, o RM-OSI da ISO, o ATM e o TCP-IP.
É interessante notar que todos os protocolos têm em comum sua estruturação em camadas. Isso ocorre, primeiro, para tornar sua implementação mais simples e segundo para possibilitar que cada tipo de problema durante a comunicação possa ser resolvido em um ponto diferente do processo. Durante essa disciplina examinaremos com mais detalhes o RM-OSI, algumas variantes dos protocolos 802-xx e o TCP-IP, que na prática é mais uma implementação ad-hoc de protocolo criada com o UNIX.
3. Camadas e pacotes
As camadas dentro de um protocolo estão
organizadas de forma vertical, isto é, um usuário ao
iniciar um processo de comunicação acessa a camada
superior do protocolo, que por sua vez acessa a camada imediatamente
abaixo e assim por diante, até que se chegue ao meio físico
que liga as duas máquinas envolvidas na comunicação.
No outro lado da linha o processo se repete, agora indo da camada
mais baixa até a mais alta e, finalmente, ao destinatário
da comunicação. O fluxo da comunicação ao
longo das camadas é feito por pacotes de bits enviados
sequencialmente. Assim, toda vez que existir algo para ser
transmitido, essa informação é transformada em
pacotes e esses pacotes são passados de camada em camada
através da prestação de serviços por cada
uma delas.
4. Concorrência por serviços
Quando um processo de comunicação
ocorre da forma descrita acima é fácil constatar que
possivelmente teremos vários pacotes sendo transferidos
(servidos) entre as (pelas) camadas do protocolo. Em algumas camadas
podemos servir mais do que um pacote simultaneamente. Entretanto, em
outras camadas o serviço deve ser oferecido a apenas um pacote
por vez.
Essa situação caracteriza
uma condição de corrida pelo acesso ao serviço,
ou em outras palavras, a existência de concorrência por
serviços. O tratamento dessa concorrência exige cuidados
para evitar o acesso simultâneo ao serviço (exclusão
mútua) e também para obter a sincronização
entre os serviços de camadas diferentes. Esses cuidados são
o objeto de estudo da "Programação
Concorrente", sendo examinados com maior rigor a seguir.
|