32
Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin

Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Embed Size (px)

Citation preview

Page 1: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Redes Lógicas

DCA-FEEC-UNICAMP

Ricardo Gudwin

Page 2: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Conceitos Básicos

Redes de Computadores um conjunto de computadores autônomos e

interconectados autonomia: exclui arranjos com relação mestre/escravo ou

com controle centralizado (e.g. terminal)• nenhum computador recebe comandos de outro, possuindo

autonomia para até mesmo se desconectar da rede interconexão: por meios tais como

• cabos de cobre• fibras óticas• rotas de microondas• radiodifusão

meios de interconexão limitam a: taxa de transmissão extensão geográfica

Page 3: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Benefícios de Redes

compartilhamento de informação e recursos objetivo central

capacidade de processamento crescimento gradual

diversidade de equipamento liberdade de escolha

maior confiabilidade redundância

processamento local da informação comunicação social

meio alternativo

Page 4: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Estruturas de Redes

Host computador ligado à rede também denominado End System (ES)

Subredes de Comunicação conectam hosts carregam mensagens (ou pacotes) de um host para outro Redes locais:

tipicamente um único duto elétrico ou ótico Redes de longa distância:

linhas (ou canais) de transmissão IMPs (Interface Message Processors) ou ISs (Intermediate Systems)

• dispositivos de chaveamento• computadores especializados conectando duas ou mais linhas de

transmissão

Page 5: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Hosts e IMPs numa Subrede de Comunicação

Host

IMP

fronteira da subrede de comunicação

subrede de comunicação

Page 6: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Estruturação de Redes em Camadas

Modelo de uma rede de computadores: blocos funcionais interligados camadas a cada camada, um nível é associado

uma camada oferece serviços à camada superior esconde detalhes de implementação destes serviços

camada N de um host troca informação com camada N de outros hosts

protocolo da camada N regras de utilização de serviços oferecidos por uma

camada é definida pela interface entre camadas adjacentes

Arquitetura da rede: conjunto de camadas e protocolos de uma rede

Page 7: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Exemplo: Modelo ISO/OSI

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Física

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Física

Rede

Enlace

Física

Rede

Enlace

Física

Host #1 Host #2

protocolo de aplicação

protocolo de apresentação

protocolo de sessão

protocolo de transportesubrede de comunicação

pacote

quadro

bit

IMP #i IMP #j

Page 8: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Arquitetura Internet

Internet = TCP/IP Arquitetura de 4 camadas

Aplicação Transporte Inter-redes Interface de rede

Especifica protocolos para cada camada permite o compartilhamento de dados utilizando

diferentes tecnologias na camada anterior e.g. Ethernet, Token-Ring, PPP, etc...

Page 9: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Arquitetura Internet

Camada Interface de Rede corresponde às camadas Física e de Enlace do modelo OSI

Física: responsável pela geração dos sinais elétricos, ópticos ou eletromagnéticos que serão propagados pelo meio físico

• especificam características tais como duração do sinal, intensidade do sinal, técnica de multiplexação, etc.

Enlace: utiliza a camada física para transmitir quadros de dados• transmissão de quadros não é confiável: pode ocorrer duplicação de

quadros, recepção fora de ordem, etc... pode operar sobre rede local

interface de rede é uma placa implementando protocolo de enlace e acesso ao meio

pode operar sobre rede de longa distância interface de rede é um subsistema que implementa protocolo de

conexão física HOST-IMP e protocolo de enlace IMP-IMP

Page 10: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Arquitetura Internet

Camada Inter-Redes equivale à camada de rede do modelo OSI

controla a operação da subrede: roteamento de pacotes da origem ao destino

converte pacotes entre subredes: subredes de origem e destino podem empregar formatos diferentes

define protocolo IP - Internet Protocol transporte não confiável de mensagens (datagramas)

define protocolo ICMP Internet Control Message Protocol controle da comunicação e informe de erros

define protocolos para roteamento de mensagens, tais como GGP: Gateway-to-Gateway Protocol RIP: Routing Information Protocol

Page 11: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Arquitetura Internet

Camada de Transporte equivale à camada de transporte do modelo OSI

particiona dados recebidos da camada superior em unidades menores: pode garantir ordem correta e não-duplicação

primeira camada a promover comunicação host-host define protocolo TCP/IP

Transfer Control Protocol transporte confiável de dados, mesmo para redes de baixa

confiabilidade define protocolo UDP

User Datagram Protocol confiabilidade do transporte é deixado a cargo das camadas

inferiores

Page 12: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Arquitetura Internet

Camada de Aplicação especifica protocolos comumente implementados em

programas interativos, tais como terminal remoto

• TELNET, RLOGIN transferência de arquivos

• FTP (file transfer protocol)• HTTP (hyper text transfer protocol)

correio eletrônico• SMTP (simple mail transfer protocol)

gerenciamento de rede• SNMP (simple network management protocol)

boletim eletrônico• NNTP (network news transfer protocol)

Page 13: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Internet e o modelo OSI/ISO

Aplicação

Transporte

Inter-redes

Interface de rede

Aplicação

Transporte

Inter-redes

Interface de rede

Meio físico

mensagens

pacotes

datagramas

quadros

Aplicação

ApresentaçãoSessão

Transporte

Rede

Enlace

Física

OSI/ISOInternet

Page 14: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação em Redes

Redes de Computadores Software para o uso da rede

Compartilhamento de Arquivos e Impressoras Serviços de Rede (autenticação, acesso a recursos, etc)

Emergência de um novo paradigma : sistemas distribuídos

Sistemas Distribuídos Sistemas Operacionais Distribuídos

Software do sistema é distribuído ao longo da rede Aplicações Distribuídas

Novos métodos de programação Tecnologias Básicas

• Sockets, RPC, Objetos Distribuídos

Page 15: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação em Redes

Comunicação entre Programas em uma Rede comutação de pacotes de dados - pacotes IP protocolo no nível de aplicação, utilizando um protocolo no nível

de transporte Dispositivo de Acesso à Rede

Endereço Físico - e.g. IEEE 802.3 (Ethernet) - 6 bytes (48 bits), usualmente fornecido como 6 números hexadecimais

exemplo: 67.F3.AF.3E.12.FF Endereço IP - números de 32 bits - NNN.NNN.NNN.NNN Domain Name System (DNS) - associação de nomes a endereços

IP - DNS Servers Portas

endereço dentro de um computador (16 bits) número associado a um tipo de serviço

Page 16: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação em Redes

TCP - Serviço Orientado a conexão estabelece uma conexão entre uma origem (porta/end.IP) e

um destino (porta/end.IP) que perdura até que a mesma seja explicitamente encerrada

comunicação confiável UDP - Serviço sem Conexão

Não estabelece um vínculo direto entre origem e destino envia datagramas sem confirmação de resposta e sem

técnicas de correção de erros mais rápidos que o TCP

Unicast x Multicast unicast - comunicação ponto a ponto multicast - grupo de hosts recebendo um mesmo endereço IP

Page 17: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação com Sockets

Programação Socket Base para programação em rede utilizando TCP/IP Apareceu como uma abstração para programação em rede

dentro de sistemas UNIX, tornando-o compatível com o paradigma básico de E/S do UNIX

Paradigma básico de E/S do UNIX open-read-write-close insuficiente para gerenciar todos os serviços e protocolos de

rede Socket

generalização do mecanismo de acesso a arquivos do UNIX, provendo um ponto de conexão para comunicação

programas aplicativos solicitam a criação de um socket ao sistema operacional, quando necessário

Page 18: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação com Sockets

Aplicação

Transporte

Inter-redes

Interface de rede

Aplicação

Transporte

Inter-redes

Interface de rede

Meio físico

mensagens

pacotes

datagramas

quadros

Sockets

Conexão

Page 19: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Modelo Cliente-Servidor

O modelo cliente/servidor de comunicação é um modelo de interação entre sistemas distribuídos, onde um processo contacta outro processo para requisitar serviços Processo requisitando o serviço é chamado de cliente Processo oferecendo o serviço é chamado de servidor

Papel do Cliente Realizar uma requisição ativa por serviços postura inicial - enviar mensagens

Papel do Servidor Aguardar a requisição de mensagens, e quando de sua

chegada providenciar os serviços requisitados postura inicial - receber mensagens

Page 20: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Modelo Cliente-Servidor

Processos podem assumir o papel de clientes, servidores ou de ambos

Sistemas mais antigos atribuiam somente um único papel a cada processo: cliente OU servidor Servidores de Arquivos Servidores de Banco de Dados

Sistemas mais modernos usam novas metodologias que permitem aos processos interagir como clientes ou servidores dependendo da situação Monitores de Transações/Processos (TP Monitors) Groupware Objetos Distribuídos

Page 21: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Sistemas Cliente-Servidor com Sockets e Java

Pacote java.net provê diversas classes para facilitar o acesso a redes,

utilizando o paradigma de sockets e outros mais sofisticados InetAddress - encapsula endereços IP e suporta conversão

entre notação decimal pontuada e nomes de hosts Socket, ServerSocket, DatagramSocket, MulticastSocket -

implementam sockets clientes e servidores SocketImpl e DatagramSocketImpl (classes) e

SocketImplFactory (interface) - auxiliam a criação de sockets customizados

URL, URLConnection, HttpURLConnection e URLEncoder - implementam conexões Web de alto nível

FileNameMap (interface) - usada no mapeamento de nomes de arquivos a tipos MIME

Page 22: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Sistemas Cliente-Servidor com Sockets e Java

Streams Sequências de bytes que se movimentam de uma origem a

um destino Pacote java.io

possui diversas classes para a manipulação de diferentes tipos de Streams

InputStreams, OutputStreams, Readers, Writers Programação de Sistemas Cliente-Servidor

protocolo de comunicação entre cliente e servidor regras para troca de mensagens entre os programas

criação de Sockets e ServerSockets, e a obtenção dos Streams associados aos sockets

envio de dados por meio dos Streams

Page 23: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Sistemas Cliente-Servidor com Sockets e Java

Cliente

…Socket cl = new Socket(destination,port);… BufferedReader inS = new BufferedReader( cl.getInputStream())DataOutputStream outS = new DataOutputStream( cl.getOutputStream());…/* use inS and outS */

Servidor

…ServerSocket s = new ServerSocket(PORT);Socket cl = s. accept();… String dnm =

cl.getInetAddress().getHostName();int dpt = cl.getPort();… BufferedReader inS = new

BufferedReader( new InputStreamReader (cl.getInputStream()));

DataOutputStream outS = new DataOutputStream( cl.getOutputStream());

…/* use inS and outS */

Page 24: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação RPC

Programação Socket apesar de conveniente, apresenta um problema incurável:

paradigma de troca de mensagens Implementar toda a programação de rede em cima de troca de

mensagens tem uma série de inconveniências diferentes formatações de dados (big-endian/little-endian, 8/16 bits,

formatos de ponto flutuante), dados estruturados (árvores, grafos, listas ligadas), dificuldades na sincronização de mensagens, perda de pacotes, crashes de uma ou ambas as máquinas, etc...

RPC - Remote Procedure Call introduzida por Birrel e Nelson em 1984 idéia: chamar rotinas localizadas em outras máquinas como se

fossem rotinas locais informação vai por meio de parâmetros retornando como o

resultado da chamada

Page 25: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação RPC

Transparência na Programação Chamadas stubs

procedimento local com nome correlato ao procedimento remoto, que se responsabiliza por efetuar toda a codificação/decodificação dos dados e comunicação pela rede

Stub do Cliente: empacota os parâmetros e envia ao servidor. Depois, fica esperando um retorno do servidor, bloqueando o socket. Quando o servidor retorna, desempacota a mensagem do servidor, copia o resultado para a rotina que fez a chamada do RPC e retorna de modo usual

Stub do Servidor: quando a mensagem do stub do cliente chega ao servidor, o kernel a passa para o stub do servidor, que tipicamente está com um socket bloqueado esperando por mensagens. O stub desempacota os parâmetros, chama a rotina desejada e a seguir re-empacota o resultado da chamada e envia a resposta ao stub do cliente, aguardando nova requisição

Page 26: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Programação RPC

Transparência na Programação O programa não tem a menor idéia que o trabalho está sendo

feito remotamente Todos os detalhes de passagem de mensagens ficam escondidos

dentro dos dois stubs Gerando stubs

Se a troca de mensagens é feita manualmente, erros obscuros podem acontecer

Portanto, a geração de stubs deve ser feita automaticamente Um compilador de stubs deve ser utilizado, portanto para gerar os

stubs do cliente e do servidor e.g. - SunRPC: arquivo .x - linguagem RPC, um programa - rpcgen

gera os arquivos de stubs (em linguagem C) diversos mecanismos de RPC:DCE RPC, Microsoft RPC, ONC RPC,

etc

Page 27: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Objetos Distribuídos

Aplicações convencionais do tipo Cliente-Servidor apenas transformam aplicações monolíticas separando-as em

duas metades Futuro do Modelo Cliente-Servidor

extrapolar de aplicações restritas a redes locais para redes de alcance global

Como ? Usando uma arquitetura baseada em componentes Objetos Distribuídos são a chave para esta revolução Aplicações envolvendo objetos distribuídos são muito

adequadas para a criação de sistemas cliente/servidor mais flexíveis, pois tanto dados quanto a lógica da aplicação estão encapsulados dentro dos objetos, permitindo sua localização em qualquer lugar de um sistema distribuído

Page 28: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Objetos Distribuídos

Objetos Clássicos unidade de serviço encapsulando código e dados provê diversas facilidades para reutilização de código existe somente dentro de um programa isolado

Objetos Distribuídos unidade de serviço localizada em qualquer lugar de uma rede armazenados como pedaços independentes de código que podem

ser acessados por clientes remotos via invocação de métodos linguagens de programação e compiladores envolvidos são

totalmente transparentes para seus clientes clientes não necessitam saber onde se localizam os objetos ou que

sistema operacional está sendo executado remotamente pedaços inteligentes de software que podem trocar mensagens

entre si de modo transparente em qualquer lugar do mundo

Page 29: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Objetos e Componentes

Componentes pedaços isolados de software que podem se interconectar

automaticamente via redes, aplicações, linguagens, ferramentas e sistemas operacionais

Objetos Distribuídos são por definição, componentes nem todo componente é um objeto e nem todos os

componentes são distribuídos Tecnologia de Componentes

promete alterar radicalmente a maneira como se desenvolve software: permitem a criação de sistemas cliente-servidor sofisticados simplesmente interconectando-se componentes

meta é atingir o nível de interoperabilidade encontrado por exemplo em circuitos integrados

Page 30: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

CORBA - Common Object Request Broker Architecture

Norma da OMG definindo a operação, gerenciamento, serviços e facilidades para objetos distribuídos

Características arquitetura completamente orientada a objetos separa interface de serviços de sua implementação provê um conjunto padrão de serviços e facilidades integra múltiplas linguagens de programação permite sua inserção dentro de um sistema operacional independente do sistema operacional padrão aberto adotado por múltiplas empresas de software permite a interoperabilidade entre produtos de diferentes

empresas

Page 31: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Arquitetura CORBA

Stubs IDLdo Cliente

InvocaçãoDinâmica

SkeletonsInvocaçãoDinâmica

ORB

Cliente Servidor

Interface c/o ORB

Adaptador de Objeto Básico (BOA)

Repositóriode Interfaces

Repositório deImplementações

SkeletonsEstáticos

IDL

Page 32: Redes Lógicas DCA-FEEC-UNICAMP Ricardo Gudwin. Conceitos Básicos zRedes de Computadores yum conjunto de computadores autônomos e interconectados xautonomia:

Facilidades e Serviços CORBA

Object Request Broker

Naming

Externalization

Events

Persistence

Life Cycle

Properties

Query

Relationships

Time

Security

Transactions

Collections

Trader

ChangeManagement

Licensing

Concurrency

Common Object Services

UserInterface

InformationManagement

SystemsManagement

TaskManagement

Horizontal Common Facilities

Common FacilitiesVertical Common FacilitiesApplication Objects