Redes L - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Redes L

Description:

Redes L gicas DCA-FEEC-UNICAMP Ricardo Gudwin – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 33
Provided by: Capi97
Category:

less

Transcript and Presenter's Notes

Title: Redes L


1
Redes Lógicas
  • DCA-FEEC-UNICAMP

Ricardo Gudwin
2
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

3
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

4
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

5
Hosts e IMPs numa Subrede de Comunicação
fronteira da subrede de comunicação
IMP
Host
subrede de comunicação
6
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

7
Exemplo Modelo ISO/OSI
protocolo de aplicação
Aplicação
Aplicação
protocolo de apresentação
Apresentação
Apresentação
protocolo de sessão
Sessão
Sessão
protocolo de transporte
Transporte
Transporte
subrede de comunicação
Rede
Rede
Rede
Rede
pacote
Enlace
Enlace
Enlace
Enlace
quadro
Física
Física
Física
Física
bit
IMP i
IMP j
Host 1
Host 2
8
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...

9
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

10
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

11
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

12
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)

13
Internet e o modelo OSI/ISO
OSI/ISO
Internet
Aplicação
Aplicação
Aplicação
mensagens
Apresentação
Sessão
Transporte
Transporte
Transporte
pacotes
Rede
Inter-redes
Inter-redes
datagramas
Enlace
Interface de rede
Interface de rede
quadros
Física
Meio físico
14
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

15
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

16
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

17
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

18
Programação com Sockets
Aplicação
Aplicação
mensagens
Sockets
Conexão
Transporte
Transporte
pacotes
Inter-redes
Inter-redes
datagramas
Interface de rede
Interface de rede
quadros
Meio físico
19
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

20
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

21
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

22
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

23
Sistemas Cliente-Servidor com Sockets e Java
Servidor ServerSocket s new
ServerSocket(PORT) Socket cl s. accept()
String dnm cl.getInetAddress().getHostName() i
nt dpt cl.getPort() BufferedReader inS
new BufferedReader( new InputStreamReader
(cl.getInputStream())) DataOutputStream outS
new DataOutputStream( cl.getOutputStream()) /
use inS and outS /
Cliente Socket cl new Socket(destination,por
t) BufferedReader inS new BufferedReader(
cl.getInputStream()) DataOutputStream outS new
DataOutputStream( cl.getOutputStream()) / use
inS and outS /
24
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

25
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

26
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 RPCDCE RPC, Microsoft
    RPC, ONC RPC, etc

27
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

28
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

29
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

30
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

31
Arquitetura CORBA
32
Facilidades e Serviços CORBA
Write a Comment
User Comments (0)
About PowerShow.com