curso de especialização em teleinformática – disciplina...

56
Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla -1- Copyright Cesar Augusto Tacla 2003

Upload: vankhanh

Post on 12-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 1 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 2 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

COMUNICAÇÃO INTER PROCESSOS DISTRIBUÍDOS.

- 3 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 4 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Os sockets UDP e TCP são a interface provida pelos respectivos protocolos. Pode-se dizer que estamos no middleware de sistemas distribuídos ou na interface da camada de transporte.

- 5 -

Copyright Cesar Augusto Tacla 2003

estamos no middleware de sistemas distribuídos ou na interface da camada de transporte.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 6 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

•Para haver comunicação é preciso fazer o binding (ligação) entre os processos.

•Um socket pode ser utilizado para enviar e receber mensagens.

- 7 -

Copyright Cesar Augusto Tacla 2003

•Um socket pode ser utilizado para enviar e receber mensagens.

•Um processo pode fazer uso de várias portas para receber/enviar mensagens, mas não pode compartilhar (usar o mesmo número de porta) que outros processos do mesmo host.

•Um socket é associado a um determinado protocolo: UDP ou TCP

•O comando netstat –a mostra todos as conexões e seus estados.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Um processo pode estar ligado a várias portas. O número da porta serve ao protocolo de transporte para identificar o processo destinatário dentro do mesmo host. Inclusive distingue threads do

- 8 -

Copyright Cesar Augusto Tacla 2003

para identificar o processo destinatário dentro do mesmo host. Inclusive distingue threads do mesmo processo. No processo 1 há duas threads, cada uma recebendo e enviando datagramas através do seu socket.

Definition: A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent.

(http://java.sun.com/docs/books/tutorial/networking/sockets/definition.html)

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 9 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 10 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 11 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Datagrama

É uma mensagem auto-contida que contém todas as informações necessárias para chegar no

- 12 -

Copyright Cesar Augusto Tacla 2003

É uma mensagem auto-contida que contém todas as informações necessárias para chegar no destino

Tamanho máximo limitado pelo protocolo IP

216 bytes (cabeçalhos + conteúdo) = 65.536 bytes

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

O cabeçalho UDP vem após o cabeçalho IP, por isso só contém a porte source e porte destino. Os endereços IP estão no cabeçalho IP.

- 13 -

Copyright Cesar Augusto Tacla 2003

endereços IP estão no cabeçalho IP.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Este slide ilustra como os datagramas podem chegar fora de ordem no destino e a perda de datagrama.

- 14 -

Copyright Cesar Augusto Tacla 2003

datagrama.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 15 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 16 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 17 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 18 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Explicar como funciona uma conexão entre cliente e servidor.

Salientar que o servidor pode deixar de responder caso os itens 3 e 4 tomem muito tempo. Se chegar

- 19 -

Copyright Cesar Augusto Tacla 2003

Salientar que o servidor pode deixar de responder caso os itens 3 e 4 tomem muito tempo. Se chegar uma enxurrada de pedidos neste interstício, alguns podem não ser respondidos pelo servidor. Isto poderia ser verificado mudando-se o programa servidor para responder após um certo delay randômico e colocando-se um for no cliente para enviar vários datagramas em seguida.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

O arquivo do exercício 2 é a solução, portanto deve ser escondido e liberado somente para aqueles que não conseguiram fazê-lo poderem fazer o exercício 3.

- 20 -

Copyright Cesar Augusto Tacla 2003

que não conseguiram fazê-lo poderem fazer o exercício 3.

Para outra vez: Alterar a versão 2 para atender no máximo 3 clientes concorrentemente.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 21 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Nesta prática pode-se visualizar:

•Um servidor atende um cliente

- 22 -

Copyright Cesar Augusto Tacla 2003

•Um servidor atende um cliente

•Um servidor atende vários clientes

•Seria interessante pedir aos alunos para incluir um thread.sleep no servidor para que ele demorasse para atender o pedido do cliente 1. Neste caso o pedido do cliente 2 seria perdido.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 23 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

O receive bloqueia até que um datagrama seja recebido ou dê timeout. O processo receptor (servidor) pode ter várias threads, uma bloqueada no receive e outras executando as solicitações dos

- 24 -

Copyright Cesar Augusto Tacla 2003

(servidor) pode ter várias threads, uma bloqueada no receive e outras executando as solicitações dos clientes.

Connect

Connects the socket to a remote address for this socket. When a socket is connected to a remote address, packets may only be sent to or received from that address. By default a datagram socket is not connected.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 25 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 26 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Controle de congestionamento: TCP controla o sender quando a rede congestiona.

Controle de fluxo: Controla o sender para não sobrecarregar o receiver,

- 27 -

Copyright Cesar Augusto Tacla 2003

Controle de fluxo: Controla o sender para não sobrecarregar o receiver,

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

http://www.rnp.br/newsgen/9901/ttcp.html

- 28 -

Copyright Cesar Augusto Tacla 2003

THREE WAY HANDSHAKE PARA CONEXÃO

FOuR WAY HANDSHAKE PARA FIM

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Kurose (slide 69 do capítulo 2):

A stream is a sequence of characters that flow into or out of a process.

- 29 -

Copyright Cesar Augusto Tacla 2003

A stream is a sequence of characters that flow into or out of a process.

An input stream is attached to some input source for the process, eg, keyboard or socket.

An output stream is attached to an output source, eg, monitor or socket.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Este slide ilustra como os datagramas podem chegar fora de ordem no destino e a perda de datagrama.

- 30 -

Copyright Cesar Augusto Tacla 2003

datagrama.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 31 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 32 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 33 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 34 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 35 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 36 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 37 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 38 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Nesta prática pode-se visualizar:

•Um servidor atende um cliente

- 39 -

Copyright Cesar Augusto Tacla 2003

•Um servidor atende um cliente

•Um servidor atende vários clientes

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 40 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 41 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Explicar como funciona uma conexão entre cliente e servidor.

Salientar que o servidor pode deixar de responder caso os itens 3 e 4 tomem muito tempo. Se chegar

- 42 -

Copyright Cesar Augusto Tacla 2003

Salientar que o servidor pode deixar de responder caso os itens 3 e 4 tomem muito tempo. Se chegar uma enxurrada de pedidos neste interstício, alguns podem não ser respondidos pelo servidor. Isto poderia ser verificado mudando-se o programa servidor para responder após um certo delay randômico e colocando-se um for no cliente para enviar vários datagramas em seguida.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 43 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 44 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 45 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 46 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

A associação a um grupo de multicast é dinâmica – pode-se entrar e sair a qqer momento

- 47 -

Copyright Cesar Augusto Tacla 2003

Para fazer um multicast para um grupo não é necessário ser membro do grupo

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Variações

Multicast confiável: se um dos processos entrega uma mensagem, então todos os participantes do grupo deverão fazê-lo.

- 48 -

Copyright Cesar Augusto Tacla 2003

Multicast confiável: se um dos processos entrega uma mensagem, então todos os participantes do grupo deverão fazê-lo.

Aplicações

Muitas vezes, exigem multicast confiável.

Perder datagramas: um receptor (placa Ethernet) numa LAN pode simplesmente deixar passar uma mensagem se seu buffer estiver cheio. Se um datagrama é perdido no caminho entre dois roteadores de multicast A e B, todos os membros do grupo que estão adiante de B não receberão o datagrama (o mesmo pode acontecer se o roteador B falha). (Kurose, ed2, ch2): Data loss - some apps (e.g., audio) can tolerate some loss, other apps (e.g., file transfer, telnet) require 100% reliable data transfer

Ordem diferente: pacotes IP não chegam necessariamente na mesma ordem em que foram enviados. Membros de um grupo podem receber datagramas enviados pela mesma fonte em ordens diferentes. Além disso, mensagens enviadas por dois processos diferentes não chegarão necessariamente na mesma ordem para todos os membros do grupo.

Efeitos em serviços replicados: temos um grupo de servidores que iniciam no mesmo estado e sempre executam as mesmas operações na mesma ordem para que estejam consistentes um com os outros. Esta aplicação de multicast exige que todas as réplicas recebem todos os pedidos de execução de operação. Se um dos pedidos é perdido então uma réplica pode-se tornar inconsistente com as demais. Na maioria dos casos a ordem de processamento dos pedidos é importante.

Efeitos em dados replicados: consideremos o caso no qual os dados replicados(ao invés das operações sobre os dados) são difundidos por multicast. O efeito de mensagens perdidas e de ordenação depende da importância de manter as réplicas atualizadas. Por exemplo, as réplicas de newsgroups não são consistentes entre si todo o tempo – mensagens podem até mesmo aparecer em ordens diferentes, mas os usuários são capazes de transpor este problema.

Eficiência: economia no consumo de banda de passagem pela utilização de hardware de multicast e pela simples fato de fazer um único send da mensagem.Timing (Kurose, 2ed. Ch2)some apps (e.g., Internet telephony, interactive games) require low delay to be “effective”Bandwidth some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective” (real-time audio and video: audio: 5kbps-1Mbps; video:10kbps-5Mbps)other apps (“elastic apps”) make use of whatever bandwidth they get (FTP, email, web pages).

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 49 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Quando um host possui um ou mais processos cujos sockets pertençam ao mesmo grupo de multicast de um pacote recebido,

- 50 -

Copyright Cesar Augusto Tacla 2003

multicast de um pacote recebido,

então o protocolo IP do host copia o pacote para cada um dos processos. Num host pode haver vários processos pertencentes

ao mesmo grupo e devem utilizar a mesma porta.

Detalhes sobre roteamento de pacotes multicast: slides kurose, capítulo 4, slide n. 102.

Roteamento local: usa protocolo IGMP, Internet Group Management Protocol

Roteamento WAN: os roteadores utilizam algoritmos de roteamento

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 51 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

Falta detalhar – ver se falta algum!!! Para a próxima versão.

- 52 -

Copyright Cesar Augusto Tacla 2003

Também incluir exemplo básico de código antes de entrar na prática.

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 53 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 54 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

O Norton parece que impede o funcionamento deste chat.

- 55 -

Copyright Cesar Augusto Tacla 2003

Curso de especialização em Teleinformática – Disciplina Sistemas Distribuídos – Prof. Tacla

- 56 -

Copyright Cesar Augusto Tacla 2003