• Nenhum resultado encontrado

Canais de Comunicação

N/A
N/A
Protected

Academic year: 2021

Share "Canais de Comunicação"

Copied!
10
0
0

Texto

(1)

Canais de Comunicação

February 24, 2010

Sumário

Comunicação via Mensagens

Propriedades dum Canal de Comunicação

Protocolos da Internet

UDP TCP

(2)

Aplicação Distribuída

O que é?

É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória. Um corolário desta definição é:

Os processos duma aplicação distribuída comunicam entre si através da troca de mensagens.

Process

Process

I Uma mensagem é uma sequência de bitsindivísivel:

I O formato e o significado duma mensagem são

especificados pelo protocolo de comunicação.

Comunicação com Mensagens e Redes

I O transporte duma mensagem da fonte ao destino é assegurado por uma rede de comunicação de dados.

Host Host Application Host Application Host Host Channel

I A rede pode ser abstraída como um canal de comunicação:

(3)

Propriedades dum Canal de Comunicação

I Baseado ou não em conexão. I Fiável ou não (perda e duplicação). I Ordenado ou não.

I Baseado em mensagens ou em streams. I Com ou sem controlo de fluxo.

I Número de “extremidades” do canal. I Identificação das entidades comunicantes.

Baseado em Conexão vs. Sem Conexão

Baseado em conexão: os processos têm que estabelecer o canal antes de iniciarem a transferência de informação – análogo ao telefone;

Sem conexão: os processos não têm que estabelecer o canal – análogo ao correio.

(4)

Fiabilidade (perda)

Fiável: garante que a informação enviada pelo remetente é entregue ao destinatário(s)

I assume determinadas condições; I caso contrário, notifica os processos

comunicantes.

1 2

3 3 2 1

Não fiável: cabe aos processos que comunicam detectar problemas com a comunicação e actuar de acordo com os requisitos da aplicação:

1 2

3 2 1

Fiabilidade(duplicação)

“Gera” duplicados: o canal pode entregar mensagens

duplicadas ao destinatário(s) – cabe a este último detectá-los:

1 2

3 3 2 2 1

Não “gera” duplicados: o canal de comunicações não entrega mensagens duplicadas ao destinatário(s):

1 2

(5)

Ordem

Ordenado: garante que a informação é entregue ao destinatário(s) na ordem em que foi enviada

1 2

3 2 1

Não ordenado: se a preservação da ordem fôr importante cabe à aplicação detectar a não ordenação, e eventualmente re-ordenar a informação

1 2

3 3 1 2

IMP ordem e fiabilidade são propriedades ortogonais

Abstracções da Comunicação

Mensagem (datagram): o canal suporta o transporte de mensagens – sequências de bytes processadas como um todo indivísivel: análogo ao correio.

Sequência de bytes (stream): o canal não suporta o conceito de mensagem. Essencialmente, funciona como uma conduta de bytes: análogo a pipes em Unix.

(6)

Outras Características do Canal de Comunicação

Controlo de fluxo: evitar que transmissores “rápidos” inundem receptores “lentos”:

I não significa necessariamente que os transmissores têm uma capacidade de processamento superior.

I Número de “extremidades” do canal de comunicação:

unicast (ponto-a-ponto) apenas 2 extremidades;

broadcast (difusão) todos os nós dum “universo";

multicast (multi-ponto) alguns nós dum “universo”. I Identificação das entidades comunicantes.

I Identificar a entidade em si, p.ex. processo, pessoa.

I Identificar a extremidade do canal, p.ex. o número

telefónico.

(Identificação dos Processos na Internet (IPv4))

Problema Como se identificam os processos na Internet?

Resposta Através dum par de identificadores:

Endereço IP (IP Address) :

I Identifica o computador na Internet;

I É um inteiro com 32 bits, representando-se normalmente na forma dotted decimal, p.ex.: 193.136.28.31.

Número do Porto (Port Number) :

I Identifica uma extremidade dum canal de

comunicação num dado computador (atributo da camada transporte);

I É um inteiro de 16 bits (entre 0 e 65535);

I Por convenção, certos serviços usam portos fixos.

Esclarecimento O par (IPAddress, PortNumber ) identifica uma extremidade dum canal de comunicação, o processo pode variar.

Isto é semelhante a um número de telefone, a pessoa que o atende pode variar.

(7)

Protocolos da Internet

Aplicação Serviços de comunicação específicos.

Transporte Comunicação entre 2 processos.

Rede Comunicação entre 2 computadoresnão

ligados directamente.

Interface Comunicação entre 2 computadores liga-dos directamente.

I Na Internet, as propriedades do canal de comunicação entre processos dependem do protocolo de transporte usado (UDP ou TCP):

I A concepção duma aplicação distribuída depende das

propriedades suportadas pelo protocolo de transporte escolhido.

Resumo das Propriedades de UDP e de TCP

Propriedade UDP TCP

Abstracção Mens. Stream

Baseado em Conexão N S

Fiabilidade (perda & duplicação) N S

Ordem N S

Controlo de Fluxo N S

Número de Receptores n 1

I A abstracção fornecida por TCP é apenas resultante da interface de programação ou é intrínseca ao protocolo?

(8)

UDP: Observações (1/3)

I Canais UDP são canais que suportam o transporte de mensagens – datagramas UDP:

I Basicamente, a sua API oferece

duas operações send() e receive();

I Cada mensagem é enviada

invocando send() uma única vez;

I Se entregue, uma mensagem

sê-lo-à por inteiro e invocando

receive()uma única vez.

send()

receive()

I Datagramas têm um tamanho máximo – 65535 bytes:

I As aplicações podem ter que fragmentar mensagens em

datagramas e posteriormente reconstruí-las.

UDP: Observações(2/3)

I UDP, não sendo baseado em conexão:

+ Permite transmitir dados sem espera;

− Requer a especificação completa da outra extremidade do

canal em cada invocação de send().

I UDP não dá qualquer garantia de fiabilidade:

I Mensagens enviadas usando UDP

podem perder-se ou ser duplicadas;

I Se a aplicação não puder tolerar a

perda de mensagens ou a sua duplicação, terá ela própria de detectar e recuperar dessas situações.

send()

(9)

UDP: Observações(3/3)

I UDP não fornece controlo de fluxo, pelo que um receptor pode ser inundado de pedidos, ficando sem recursos (buffers de recepção) para receber outras mensagens. I UDP suporta multicast, i.e. invocando send() uma única

vez, pode enviar-se uma cópia da mesma mensagem para vários processos.

receive()

send()

receive()

TCP: Observações (1/3)

I Canais TCP são canais do tipo stream, i.e.:

I São semelhantes a pipes em Unix, excepto:

I Permitem a comunicação entre processos em computadores distintos;

I São canais bidireccionais – i.e. pode enviar-se informação nos 2 sentidos, simultaneamente.

I Embora a sua API ofereça duas operações send() e receive()para enviar dados,

I TCP não preserva a separação entre bytes enviados em

invocações de send(), distintas;

I write()e read() são mais intuitivas.

I Se fôr importante manter a separação entre mensagens, a aplicação terá ela própria que o garantir. Como?

(10)

TCP: Observações(2/3)

I TCP é baseado em conexão. A comunicação com TCP tem 3 fases:

1. Estabelecimento duma conexão TCP;

2. Transferência da informação;

3. Terminação da conexão.

I TCP garante fiabilidade (contra perda e duplicação de bytes):

I Em caso de problemas na comunicação, a conexão é

abortada, e os processos na sua extremidade notificados.

I TCP fornece controlo de fluxo:

I Evita perda de dados devido a falta de recursos;

I Contudo, TCP ainda é vulnerável a ataques de

denial-of-service (nomeadamente, SYN attacks).

TCP: Observações(3/3)

I Canais TCP têm apenas duas extremidades, suportando comunicação entre 2 processos apenas.

I Ao contrário do que acontece com UDP, canais TCP no mesmo computador podem ter o mesmo número de porto:

I Um canal TCP é identificado pelos pares

(IP Address, TCP Port) das duas extremidades;

I Permite o atendimento concorrente de vários clientes, em

aplicações cliente-servidor, p.ex. Web: browser

browser 80

80 Web Server

Referências

Documentos relacionados

Dioscorea pumilio, a dwarf species, was originally described by Grisebach in 1875 based on staminate material only, which was obtained from a few fl owered and fl oral bud

A terceira se¸ca˜o deste cap´ıtulo traz uma an´alise das equa¸c˜oes de movimento de um sistema, para verificarmos seu comportamento em rela¸c˜ao a referenciais n˜ao

Efetuar ligações a bases de dados Criar aplicações com acesso a bases de dados Apresentação esquemática de conceitos Demonstração prática dos procedimentos Resolução

Therefore, the time required for desorption (~ 120 min or more) was always one order of magnitude higher than the time required for complete sorption (~ 30 min). In the

Potencialidades e desafios na utilização de coberturas vegetais em condições edafoclimáticas na Amazônia Taxas de liberações diárias de fósforo de resíduos vegetais nos

seu ponto de opera¸c˜ ao atrav´ es das tens˜ oes de controle, foi poss´ıvel ajustar o sistema para que este operasse sem nenhuma modula¸c˜ ao de fase, de modo que o sinal ´

Para se analisar os tributos incidentes na cadeia produtiva da soja, deve-se, inicialmente, distinguir alguns fatores como características dos produtores: se micro, pequeno,

Com a referida pesquisa, foi constatado que parte dos animais observados pelas ruas do bairro não estão abandonados, mas são semi-domiciliados, pois possuem