5) Redes de Computadores
1as Redes: simples transferência de arquivos
Redes hoje: protocolo TCP/IP implementado como parte do SO Unix
Diversas classificações das redes de computadores
Quanto ao tamanho:
redes locais (LANs – local area networks)
redes de longa distância (WANs – wide area networks)
Quanto ao fabricante:
redes proprietárias (fechadas)
redes abertas
Quanto à topologia: (Fig. 3.10)
Anel
Via
Estrela
Irregular
Internet: é uma rede de redes de computadores
É uma combinação de:
LANs
WANs
‘backbones’ (espinha dorsal)
redes de computadores de alta velocidade
meios de comunicação de alta capacidade
roteadores (máq. especializadas em transm de pacotes)
Endereçamento na Internet: por meio de grupos de rede, chamados de domínios (Fig. 3.11)
Endereçamento de um computador na Internet:
descrito por meio de um padrão de bits (32 bits)
duas partes, onde cada uma identifica:
o domínio a que pertence (identif. de rede)
a máquina (identif. do computador)
papel da InterNIC (Internet Network Informat. Center)
nome do domínio (mais fácil de memorizar)
Exemplo: comp.ufla.br (Fig. 3.12)
Word Wide Web: divulgação por meio de hipertexto
Hipermídia: redes de textos, imagens e sons
Modelo Cliente/Servidor novamente
Linguagem do hipertexto: HTML (Hypertext Markup Language)
Segurança na rede: senha
6) Protocolos de Redes
São os conjuntos de regras que regulam a comunicação entre os diferentes componentes de um SO
Os protocolos de rede definem os detalhes de cada atividade realizada na rede:
modo de envio das mensagens
maneira como autoriza o envio de mensagens
forma de manipulação das tarefas de empacotar e desempacotar mensagens para transmissão
Um método para coordenar as autorizações de transmissão de mensagens: protocolo token-ring (anel de tokens) para redes em anel
Cada máquina só transmite mensagens à direita (Fig.3.13)
E só recebe mensagens da máquina à esquerda
Transmissão sempre é feita no sentido horário: a máquina que recebe a mensagem faz uma cópia dela e a re-envia à sua direita
Quando a mensagem volta para a máquina que a originou a mensagem é retirada de circulação
Deve haver cooperação entre as máquinas da rede
Problema: cada máquina tenta enviar só as suas mensagens
Solução: padrão bits chamado ‘token’
A máquina só pode enviar mensagens se tiver o ‘token’
Uma vez enviadas as mensagens o computador envia o ‘token’ ao computador à sua direita, o qual também poderá enviar mensagens
Deste modo, cada máquina terá a oportunidade de enviar, na sua vez, mensagens para as outras máquinas do anel
Outro método para coordenar as autorizações de transmissão de mensagens: protocolo CSMA/CD (Carrier Sense, Multiple Acess with Collision Detection)
É o protocolo da rede Ethernet
Toda mensagem transmitida por uma máquina é re-enviada para todas as outras máquinas da via (redes em via)
Cada máquina monitora todas as mensagens; retém somente aquelas endereçadas para ela
Para enviar uma mensagem, uma máquina espera até detectar silêncio na via, quando começará a transmitir
Se outra máquina começar a transmitir ao mesmo tempo, elas detectam o sinal e interrompem suas transmissões
Elas aguardam um período de tempo aleatório (curto) e tentam novamente a transmissão
Software de rede fornece as ferramentas abstratas necessárias para a transmissão de mensagens pela rede
Tais ferramentas abstratas formam a infra-estrutura do modelo ‘cliente-servidor’
Compreensão desta estrutura é importante para que se possa entender a Internet
Seu estudo exemplifica os conceitos em que se baseiam os sistemas de software
‘Ferramenta abstrata’ significa que:
o usuário dela não se preocupa com o ‘como’ ela faz, apenas com ‘o que’ ela faz
o implementador dela não se preocupa com ’quem ou quando’ ela é utilizada, apenas com o ‘como’ ela faz
Analogia do ‘Transporte de Pacote via Correio’ (Fig. 3.15)
Sua empresa (Tabajara):
envia peças de reposição a um cliente em lugar distante
sua tarefa: juntar e empacotar as peças de acordo com as especificações da companhia entregadora de encomendas
você despacha o pacote nesta companhia (e a sua tarefa está completa, pois a responsabilidade é da companhia)
porém, não é papel da companhia entregadora transportar peças de reposição, mas sim o de transportar pacotes com certo tamanho e peso, de um destino ao outro, e dentro de um certo prazo de tempo
por sua vez, a companhia entregadora junta o pacote com vários outros em um contêiner, de acordo com as regras que a companhia área especifica
com o contêiner preenchido a companhia área assume a responsabilidade pelo transporte
não é papel da companhia aérea transportar peças de reposição ou pacotes, mas sim o de transportar contêiners de um destino a outro, dentro de certo prazo de tempo
após o vôo, a companhia aérea entrega o contêiner para a companhia entregadora da cidade, assumindo esta a responsabilidade pela entrega dos pacotes
Esta companhia abrirá o contêiner e entregará o pacote a seu cliente, de acordo com o endereço fornecido
Em suma, o transporte de pacotes é feito por meio de uma hierarquia de três níveis:
o nível do usuário (você e seu cliente)
o nível da companhia entregadora
o nível da companhia aérea
Cada nível usa nível inferior como uma ferramenta abstrata
você não se preocupa com os detalhes do trabalho da companhia entregadora, e esta não se preocupa com os detalhes do trabalho feito pela companhia aérea
Em cada nível da hierarquia se pode identificar o remetente e o destinatário (pacote e contêiner)
É o que ocorre com o software que controla a comunicação em rede; mas no caso pode haver mais de 3 níveis e estes são chamados de ‘camadas’
Cada camada é formada por conjunto de rotinas de software
Objetivo da divisão de trabalho em hierarquia de camada:
divide a tarefa completa em subtarefas manipuláveis
estabelece objetivos específicos para cada subtarefa
estabelece limites entre as ações de cada subtarefa
estabelece interface padronizada entre as camadas
o ‘como’ é feito o trabalho de cada subtarefa não é importante para as outras subcamadas
Para cada camada, as subtarefas feitas nas outras camadas são vistas como ferramentas abstratas
Hierarquia do Software da Internet
O software de controle de comunicação da rede Internet utiliza 4 camadas (Fig. 3.16)
Mensagem dividida em pequenas parcelas ou partes
Cada parcela é repetidamente empacotada pelas camadas de software, à medida que elas passam de uma camada à outra, descendo de nível
Cada empacotamento consiste em bits adicionais colocados à frente ou atrás da parcela (ou pacote)
Os pacotes que chegam a máquina destinatária são, na realidade, pacotes acondicionados (empacotados) dentro de outros pacotes
Estes pacotes ‘empacotados’ (acondicionados) são desempacotados, camada por camada, à medida que eles sobem de nível, até que as parcelas de mensagens sejam reagrupadas e enviadas ao módulo de software adequado, da máquina destino
É comum o invólucro de um pacote exceder o tamanho das próprias mensagens contidas nele
Camada de Aplicação: armazena as mensagens recebidas e supervisiona a transmissão delas
Exemplos: o envio de mensagens de um gerenciador de correio eletrônico, ou de arquivos para outro computador, ou ainda o recebimento de ‘homepages’ por um ‘browser’
Importante: não confundir os software aplicativos com o software da camada de aplicação
Camada de Transporte: é usada pela camada de aplicação
A camada de aplicação envia à camada de transporte a mensagem a ser transmitida, juntamente com o endereço do destinatário
É de responsabilidade da camada de aplicação prover um endereço com formato compatível com as especificações da camada de transporte
Para cumprir a exigência, a camada de aplicação solicita os serviços dos servidores de nomes da Internet, para traduzir os endereços mnemônicos usados para os correspondentes endereços numéricos de rede (o padrão de 32 bits)
Tende recebido a mensagem e o seu endereço, a camada de transporte divide a mensagem em segmentos de tamanho compatível com as especificações da camada de transporte, acrescenta números sequênciais a estes segmentos (para sua reconstituição), e despacha os pacotes resultantes para a camada de rede
Camada de Rede: responsável por verificar se os pacotes recebidos são despachados corretamente pela Internet aos seus destinatários finais
Isso é feito acrescentando-se a cada pacote um endereço destinatário intermediário, de acordo com as seguintes normas:
Se o destino final do pacote estiver dentro da rede corrente, o endereço anexado será uma duplicata do último endereço destinatário usado
Caso contrário, o endereço anexado será o roteador da rede corrente
Daí que:
o pacote destinado a uma máquina dentro da rede corrente será enviado a esta máquina
e o pacote destinado a uma máquina externa será enviado a um roteador, de onde será transferido para uma rede adjacente
A camada de rede embrulha os pacotes, que recebe da camada de transporte, com uma cobertura adicional, que apresenta o endereço intermediário (em vez do original)
Os pacotes estendidos (re-empacotados) são então enviados à camada de ligação (link layer)
Camada de Ligação: responsável por lidar com os detalhes da comunicação com a rede específica em que a máquina se encontra:
Rede ‘token-ring’ aguarda o recebimento do token
Rede Ethernet espera por um silêncio na via
Camada de ligação também tem que traduzir os endereços da Internet (que aparecem do lado de fora dos pacotes) para um sistema local apropriado de endereços, e acrescentar estes endereços traduzidos ao pacote, na forma de mais um invólucro adicional
No recebimento dos ‘pacotes de pacotes’, cada camada desfaz o trabalho feitos pelas várias camadas na emissão da mensagem
Quando a camada de ligação recebe os pacotes de rede de comunicação, ela retira o invólucro exterior colocado pela camada de ligação na mensagem original, e despacha os pacotes desempacotados para a sua camada de rede
Toda vez que a camada de rede recebe um pacote da sua camada de ligação, aquela elimina o endereço intermediário da Internet e passa a considerar o último endereço destinatário
Se este for o seu endereço (o da própria máquina), a camada de rede enviará o pacote para a sua camada de transporte
Caso contrário, a camada de rede re-embrulha o pacote, anexando um novo endereço intermediário e envia de volta a sua camada de ligação para prosseguir na rede
Deste modo, os pacotes passam de máquina em máquina até os seus destinos finais
A cada passo, é a camada de rede que se encarrega de determinar o destino da mensagem no passo seguinte de seu trajeto
Para facilitar o re-endereçamento: a camada de rede mantém uma tabela de roteamento
Quando a camada de transporte recebe pacotes da camada de rede, aquela extrai os segmentos da mensagem e a reconstrói, de acordo com a sequência de números
Uma vez reconstruída a mensagem, a camada de transporte a envia para a sua camada de aplicação, onde será devidamente tratada (acessada por um aplicativo qualquer)