Upload
luiz-guilherme-paiva-azeredo
View
218
Download
1
Embed Size (px)
Citation preview
Sistemas DistribuídosProf. Carlos Augusto da Costa Carvalho
Protocolos de Comunicação e Passagem de Mensagens
Protocolos em Camadas
Modelo de Referência ISO/OSI
Mensagem na Rede
Camadas do Modelo ISO/OSICamada Física
Move bits através de um meio físico;
Define as características elétricas e mecânicas do meio, taxa de transferência dos bits, conectores entre outros.
Camadas do Modelo ISO/OSICamada de enlace de Dados
Agrupa bits em quadros (frames) e verifica se foram transmitidos corretamente;
Controle de Acesso ao Meio tipicamente em LANs;
Controle lógico de enlaceConfirmação e
retransmissão de quadros;Controle da quantidade e
velocidade de transmissão de informações na rede.
Camadas do Modelo ISO/OSICamada de Rede
Movimenta pacotes a partir de sua fonte original até seu destino através de um ou mais enlaces, caso necessário;Define como dispositivos de rede descobrem uns aos outros e como os pacotes são roteados até seu destino final.
Camadas do Modelo ISO/OSICamada de Transporte
Determina a classe de serviço necessária:Orientada a conexão e com controle de
erro e serviço de confirmação (acknowledgment);
Sem conexões e nem confiabilidade.
Camadas do Modelo ISO/OSICamada de Seção
Disponibiliza serviços como, por exemplo, pontos de controle (checkpoint) periódicos a partir dos quais a comunicação pode ser re-estabelecida em caso de pane na rede.
Camadas do Modelo ISO/OSICamada de Apresentação
Define como inteiros, mensagens de texto e outros dados são codificados e transmitidos na rede;
Isso permite que computadores com arquitetura de hardware e SOs diferentes troquem informação.
Camadas do Modelo ISO/OSICamada de Aplicação
Transmitem informações específicas para uma dada aplicação;
Exemplos: FTP (File Transfer Protocol ), HTTP (Hypertext Transfer Protocol ), SMTP (Simple Mail Transfer Protocol ).
Passagem de mensagem
Comunicação InterprocessosA comunicação entre um par de processos em um
ambiente distribuído envolve:A transferência de dados do ambiente do processo
emissor para o ambiente do processo receptor;Em algumas operações de comunicação, a sincronização das
atividades de envio e recepção, de forma a impedir que o processo emissor ou receptor progrida até que o outro processo realize uma ação que o libere.
O mecanismo de passagem de mensagens permite que dois processos se comuniquem através da cópia do dado a ser compartilhado do espaço de endereçamento do emissor para o do receptor;
Isto é realizado enviando-se uma mensagem de um processo a outro contendo o dado a ser compartilhado;
Esta forma de comunicação é mais comum quando os processos não compartilham memória.
Primitivas de Passagem de Mensagem
Organização do Sistemas de Comunicação em rede
Classificação das Primitivas de Passagem de Mensagem
Classificação das Primitivas de Passagem de Mensagem
Comunicação Assíncrona
Comunicação Síncrona Persistente
Comunicação Síncrona Transiente
Figura: (d) Comunicação síncrona transiente baseada no receptor (e) Comunicação síncrona transiente baseada na entrega (ex. RPC assíncrona)
Comunicação Síncrona Transiente
Figura: (f) Comunicação síncrona transiente baseada na resposta (ex. RPC e RMI)
Endereçamento nas Primitivas de Passagem de Mensagem: Nome Simétrico
Send (destino, mensagem);Receive (origem, mensagem);Utiliza-se nomes de processos. Em um sistema
distribuído isto pode ser: processo@máquina.domínio ;
Um único caminho de comunicação direto é criado:
Este esquema é também conhecido como endereçamento simétrico já que tanto o processo emissor quanto o receptor devem explicitamente identificar o nome nas primitivas de comunicação
Endereçamento nas Primitivas de Passagem de Mensagem: Nome Assimétrico
Receive
Endereçamento nas Primitivas de Passagem de Mensagem: Link
Endereçamento nas Primitivas de Passagem de Mensagem: Mailbox
Endereçamento nas Primitivas de Passagem de Mensagem: Portas
Endereçamento nas Primitivas de Passagem de Mensagem: Portas
Sockets
Sockets
SocketsCriado através de uma chamada ao sistema que retorna
um descritor utilizado em operações subseqüentes;O descritor é chamado de LCE (Local Communication
Endpoint);O LCE deve ser associado a um PCE (Physical
Communication Endpoint) para o transporte de dados;O PCE é especificado pelo endereço de rede da máquina
e por um número correspondente a uma porta;Esta associação é realizada pela chamada bind().A comunicação envolve dois PCEs, cada um pertencente
a um dos processos envolvidos;Tanto o endereço local quanto o PCE remoto são
necessários a cada operação sendto()/recvfrom() a não ser que se utilize um socket orientado à conexão.
Sockets e estabelecimento de Conexão
Sockets e estabelecimento de Conexão
Sockets e estabelecimento de Conexão
Analogia TCP = Sistema Telefônico- Você disca para um número, o outro lado atende e uma
conexão é estabelecida;- O outro lado escuta suas palavras na ordem em que
foram emitidas;- Se o telefone está ocupado ou se não há resposta você
descobre prontamente.O endereçamento explícito do PCE remoto nas chamadas
send/receive pode ser eliminado através da chamada connect() que realiza o bind do LCE com o PCE remoto antes de iniciar a transferência de dados;
O cliente envia um connect() ao servidor que aceita a comunicação através da chamada accept() e assim estabelece uma conexão com o cliente.
Sockets com Estabelecimento de Conexão: Código do Servidor
Sockets com Estabelecimento de Conexão
Atividade em SalaO que é modelo ISO/OSI? Para que serve as camadas física, enlace
de dados, rede, transporte, sessão, apresentação e aplicação? Explique?
Quais as diferenças entre as classificações das mensagens Persistentes e Transientes
O que é Socket? Quais as diferenças entre UDP e TCP?