Software de Rede
Willamys Araújo
Tópicos da Aula de hoje
•
•
•
•
•
Hierarquias de protocolos (camadas)
Questões de projeto relacionadas às camadas
Serviços oferecidos por camadas
Primitivas de Serviços
Relacionamento entre serviços e protocolos
Software de Rede
• Nas primeiras redes de computadores os
aspectos relacionados ao hardware foram
colocados como prioridade e os aspectos de
software em segundo plano.
• No entanto logo foi percebida a fundamental
importância dos mecanismos de software de
uma rede, e, em função disto, os softwares de
rede são altamente estruturados.
Software de Rede
• Os conceitos relacionados a esta estruturação
são de vital importância para a compreensão
de todos os aspectos relacionados à
arquitetura de redes como um todo.
Hierarquia de Protocolos
Hierarquia de Protocolos
• Em redes de computadores, um protocolo é
um acordo entre as partes que se comunicam,
estabelecendo como se dará a comunicação.
• Para reduzir a complexidade do projeto, a
maioria das redes é organizada como uma
pilha de camadas ou níveis, colocadas umas
sobre as outras.
Hierarquia de Protocolos
• O numero de camadas, o nome, o conteúdo e
a função de cada camada diferem de uma
rede para outra.
• No entanto, em todas as redes o objetivo de
cada camada e oferecer determinados
serviços as camadas superiores, isolando essas
camadas dos detalhes de implementação
desses recursos.
Hierarquia de Protocolos
• A camada n de uma máquina se comunica
com a camada n de outra.
• As regras e convenções usadas nesse diálogo
são conhecidas como protocolo de camada n.
• Na realidade, os dados não são transferidos
diretamente da camada n de uma máquina
para a camada n de outra máquina.
Hierarquia de Protocolos
Hierarquia de Protocolos
• Entre cada par de camadas adjacentes existe uma
interface.
• Esta define as operações e os serviços que a
camada inferior tem a oferecer à camada que se
encontra acima dela.
• Isso alem de reduzir o volume de informações
que deve ser passado de uma camada para outra,
• Simplificam a substituição da implementação de
uma camada por uma implementação
completamente diferente.
Hierarquia de Protocolos
• Um conjunto de camadas e protocolos é
chamado de arquitetura de rede.
• Uma arquitetura de rede deve conter
informações suficientes para permitir que um
programador desenvolva software/hardware
de cada camada.
• Uma lista de protocolos usados por um
determinado sistema é chamado pilha de
protocolos.
Hierarquia de Protocolos
Hierarquia de Protocolos
• Vejamos um exemplo mais técnico:
– Uma mensagem M é produzida por um processo que
funciona na camada 5;
– A camada 4 coloca um cabeçalho no início da
mensagem para identificá-la;
– A camada 3, por limitações no tamanho das
mensagens, divide a mensagem M em duas partes:
M1 e M2.
– A camada 2 então adiciona não só um cabeçalho no
começo de cada fragmento, mas também no fim.
– Por fim a camada transmite fisicamente a mensagem
Hierarquia de Protocolos
Questões de projetos
relacionadas às camadas
Questões de projetos relacionadas às
camadas
• Todas as camadas precisam de um mecanismo
para identificar os transmissores e os
receptores
• Como em geral uma rede tem muitos
computadores, e alguns deles tem vários
processos, é necessário um meio para que um
processo de uma maquina especifique com
quem ela deseja se comunicar.
• Isso é feito através do endereçamento.
Questões de projetos relacionadas às
camadas
• Transferência de dados
– Em alguns sistemas, os dados são transferidos em
apenas um sentido;
– em outros, os dados trafegam em ambos os
sentidos.
– O protocolo também deve definir a quantos canais
lógicos corresponde a conexão e quais são suas
prioridades.
Questões de projetos relacionadas às
camadas
• Controle de Erros
– é uma questão importante, pois os circuitos de
comunicação física não são perfeitos.
– o receptor deve ter algum meio para informar ao
transmissor quais mensagens foram recebidas
corretamente e quais não foram.
Questões de projetos relacionadas às
camadas
• Controle de fluxo
– Nem todos os canais de comunicação preservam a
ordem das mensagens enviadas a eles.
– Uma questão que afeta cada nível é como impedir
que um transmissor rápido envie uma quantidade
excessiva de dados a um receptor mais lento
Questões de projetos relacionadas às
camadas
• Mensagens arbitrariamente longas
– Nos diversos níveis existe a falta de habilidade de
todos os processos para aceitarem essas
mensagens
– Essa propriedade nos leva ao uso de mecanismos
para desmontar, transmitir e remontar mensagens
– Uma questão relacionada é o que fazer quando os
processos insistem em transmitir dados em
unidades tão pequenas que o envio de cada uma
separadamente se torna ineficiente.
Questões de projetos relacionadas às
camadas
• Roteamento
– Quando houver vários caminhos entre a origem e
o destino, uma rota deverá ser escolhida.
Questões de projetos relacionadas às
camadas
• Multiplexação e Demultiplexação
– Quando for inconveniente configurar uma
conexão isolada para cada par de processos de
comunicação, a camada subjacente pode decidir
usar a mesma conexão para diversas conversações
não relacionadas entre si.
Serviços oferecidos por camadas
Serviços oferecidos por camadas
• As camadas podem oferecer dois tipos
diferentes de serviços às camadas situadas
acima delas:
– Serviços orientado a conexões
– Serviços sem conexões
Serviços oferecidos por camadas
• Serviços orientados a conexões
– Se baseiam no sistema telefônico.
• Para falar com alguém, você tira o fone do gancho,
disca o numero, fala e, em seguida, desliga.
– Na maioria dos caos a ordem é preservada;
– os bytes chegam na ordem em que foram
enviados.
Serviços oferecidos por camadas
• Serviços sem conexão
– Se baseiam no sistema postal.
– Cada mensagem carrega o endereço de destino
completo.
– e cada uma delas e roteada (encaminhada)
através do sistema, independentemente de todas
as outras.
– Também chamado de serviço de datagramas.
Serviços oferecidos por camadas
Primitivas de Serviço
Primitivas de Serviço
• Um serviço é especificado formalmente por um
conjunto de primitivas (operações) disponíveis para
que um processo do usuário acesse o serviço.
• Essas primitivas informam ao serviço que ele deve
executar alguma ação ou relatar uma ação
executada por uma entidade par.
Primitivas de Serviço
O Relacionamento entre serviços
e protocolos
O Relacionamento entre serviços e
protocolos
• Serviços e protocolos são conceitos diferentes,
embora sejam confundidos com freqüência.
• Serviço
– é um conjunto de primitivas (operações) que uma
camada oferece à camada situada acima dela.
– define as operações que a camada esta preparada
para executar em nome de seus usuários, mas não
informa absolutamente nada sobre como essas
operações são implementadas.
– se relaciona a uma interface entre duas camadas,
sendo a camada inferior o fornecedor do serviço e a
camada superior o usuário do serviço.
O Relacionamento entre serviços e
protocolos
• Protocolo
– é um conjunto de regras que controla o formato e
o significado dos pacotes ou mensagens que são
trocadas pelas entidades pares contidas em uma
camada.
O Relacionamento entre serviços e
Os serviços estão
protocolos
relacionados
as
interfaces entre
camadas.
Os protocolos se
relacionam aos pacotes
enviados entre entidades
pares
de maquinas diferentes.
Download

Aula – 5 – Fundamentos de Redes