Sistemas Distribuídos Prof. Carlos Augusto da Costa Carvalho Protocolos de Comunicação e Passagem...

Preview:

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?

Recommended