Protocolos de Comunicação e Passagem de Mensagens Sistemas Distribuídos Prof. Carlos Augusto da Costa Carvalho
Protocolos em Camadas
Modelo de Referência ISO/OSI
Mensagem na Rede
Camadas do Modelo ISO/OSI Camada 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/OSI Camada 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 enlace Confirmação e retransmissão de quadros; Controle da quantidade e velocidade de transmissão de informações na rede.
Camadas do Modelo ISO/OSI Camada 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/OSI Camada 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/OSI Camada 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/OSI Camada 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/OSI Camada 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 Interprocessos A 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
Sockets Criado 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 Sala O 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?