21/11/16. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface

Documentos relacionados
29-Aug-07. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface

29/3/16. Processamento Paralelo Arquitetura de Software para Interação Distribuída. Cliente/Servidor. Cliente/Servidor.

Objetivo. Processamento Paralelo Middleware. Cliente/Servidor. Histórico. Cliente/Servidor. Programação de sistemas distribuídos

05-May-09. Objetivo. Processamento Paralelo Middleware. Histórico. Cliente/Servidor. Cliente/Servidor

16-Apr-08. Objetivo. Processamento Paralelo Middleware. Histórico. Cliente/Servidor. Cliente/Servidor

Comunicação entre Processos

Cliente TCP. Programação sockets. Agenda. Cliente TCP. Chamadas sockets para TCP. Chamada socket() Chamada socket()

Aula de Socket. Rafael De Tommaso do Valle

Sumário. Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos

Programação de Aplicações em. Rede usando Sockets

Sistemas Distribuídos

Comunicação entre processos. Sistema centralizado

Introdução à Programação Sockets

Soquetes TCP. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil

Redes de Computadores e Aplicações

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Sockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Programação com Sockets. Redes de Computadores I 2007/2008

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS

Programação com Sockets

sockets interprocess communication Taisy Weber

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP

Servidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Resumo das chamadas UDP. Resumo de Chamadas UDP.

Sistemas Operacionais II

Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP)

Servidor TCP Volnys Borges Bernal Depto de Engenharia de Sistemas Eletrônicos Escola Politécnica da USP

camada de transporte SOCKET TCP UDP

Programação TCP/IP (sockets)

API de Sockets. Modelo Cliente/Servidor (2/2) Modelo Cliente/Servidor (1/2) José Pedro Oliveira Sistemas Operativos I

Programação com Sockets TCP e UDP - Cliente. Gustavo Leitão

Comunicação entre Processos

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.

Sockets: Sumário. Resumo das Propriedades de UDP e de TCP

Canais de Comunicação

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Introdução à Programação com Sockets. Fernando Jorge Silveira Filho Daniel Sadoc Menasché

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Sistemas Operacionais Distribuídos e de Redes

SEM 544 Desenvolvimento de Produtos Mecatrônicos

COMUNICAÇÃO ENTRE APLICAÇÕES. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Estruturas de Sistemas Operacionais

Arquitetura TCP/IP - Internet Protocolo IP Protocolo ICMP

Sistemas Distribuídos

Redes de Computadores

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Resumo das Propriedades de UDP e de TCP

Protocolos de Rede. Protocolos em camadas

Arquitetura e Protocolos de Rede TCP/IP

Conceitos de Sistemas Distribuídos

Comunicação em Rede e Internet. Computação Aplicada à Comunicação e Artes Carlos Eduardo Ba9sta

Funcionalidade e Protocolos da Camada de Aplicação

Introdução aos Sistemas Distribuídos

Ambientes de Execução

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

AULA ANTERIOR: MODELOS FUNDAMENTAIS

Redes de Computadores

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Problemas relacionados a exclusão mútua

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Nível de Transporte Portas, Protocolos UDP e TCP

Introdução. Protocolos de Aplicação. Introdução à pilha de comunicações TCP/IP. Interface de sockets. Protocolos de aplicação. Exemplos de trabalhos

Sistemas de Operação Sockets

SIST706 Sistemas Distribuídos

User Datagram Protocol

Leandro Soares de Sousa (DSc.) Página: Aula 05 - desenvolvimento com sockets

Por Fernando Koyanagi

Introdução. Protocolos de Aplicação. Introdução à pilha de comunicações TCP/IP. Interface de sockets. Protocolos de aplicação. Exemplos de trabalhos

Professor: Jarbas Araújo.

Comunicação entre Processos

Camada de Aplicação da Arquitetura TCP/IP

Modelo de Camadas. Redes de Computadores

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Redes de Computadores

PTC Aula Princípios das aplicações de rede 2.2 A Web e o HTTP. (Kurose, p ) (Peterson, p ) 21/03/2017

Redes de Computadores II. Programação com Sockets em Python

Modelos de referência de arquiteturas de redes: OSI e TCP/IP Profsº Luciano / Roberto

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

Capítulo 2. Camada de aplicação

TELECOMUNICAÇÕES Prof. Ricardo Rodrigues Barcelar

Camada de Transporte Protocolos TCP e UDP

Sistemas Distribuídos Aula 10

Sockets e Threads em Java

Protocolos de Aplicação

Protocolos de Aplicação

Redes de Computadores

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Redes de Computadores

Transcrição:

Interfaces e Periféricos Redes como interfaces Histórico Surgimento e popularização das redes criou a necessidade e oportunidade de usá-las como mecanismo de interação entre um computador e periféricos Ao mesmo tempo miniaturização e barateamento de disposiivos de rede permiiram que periféricos se tornassem autônomos e conectados diretamente na rede Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Mainframe com seu terminais... Terminais ficaram mais poderosos e com mais periféricos que poderiam ser comparilhados Evolução das redes Evolução das redes Abstração da infraestrutura de rede como interface Abstração da infraestrutura de rede como interface 1

Latência (atrasos na comunicação) Comportamento imprevisível da rede Falhas e ParIcionamento de rede Segurança Heterogeneidade Fonte: http://www.cs.wustl.edu/~schmidt/pdf/mt-orbix4.pdf Programação de sistemas distribuídos Como programar a interação entre uma unidade de processamento e os periféricos (e/ou outras unidades de processamento com seus periféricos? Modelos de programação para sistemas distribuzdos em / A difusão da Internet levou à hegemonia do Internet Protocol () Então o problema de interação com periféricos em rede se traduz em interação via 2

Interface de so]ware para comunicação de um programa de usuário (parte de aplicação) com a pilha de protocolos / Biblioteca de chamadas / API provê funções, Ipos de dados, estruturas de dados e constantes Flexível, simples de usar, padronizado (portabilidade) A API BSD s provê uma abstração similar a um sistema de arquivos para s (open, close, read, write) BSD s (originários do BSD 4.1 Unix em 1981) são a forma mais popular (API mais popular) disponível em: FreeBSD, Linux, Windows, Mac OS X,... Cliente e servidor se comunicam através de um par de s Endereço (32-bits na versão 4) + número da porta (16-bits = 64K portas) O par de s idenifica uma conexão também podem ser usados para comunicação entre processos no UNIX (mesmo, portas diferentes) http://pages.cpsc.ucalgary.ca/~ijirasek/courses/cpsc441/slides/s.ppt#3 http://lrcwww.epfl.ch/sc250_2004/lecture_notes/sc250_04_7.pdf Endereço e Portas e Porta any port agreed port client message other ports server Internet address = 138.37.94.248 Internet address = 138.37.88.249 Fonte: Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 Pearson Education 2005 : usando serviços no nível de transporte Protocolos no nível de aplicação (ex., HTTP, DNS, SMTP) usam os serviços da camada de transporte A camada de transporte provê: Comunicação entre processos MulIplexação/demulIplexação baseado no conceito de portas Entrega confiável de dados (em ordem): connecion setup (handshake) congesion control flow control Stream (SOCK_STREAM) Não confiável e sem ordem garanida de datagramas: Para se usar best-effort Datagram (SOCK_DGRAM) http://lrcwww.epfl.ch/sc250_2004/lecture_notes/sc250_04_7.pdf 3

driver network network driver Cliente/Servidor com s Cliente: Inicia o contato com o servidor (tem que saber o endereço ou hostname, e a porta) Normalmente requisita execução de um serviço Servidor: Espera passivamente (em uma certa porta) Normalmente roda constantemente à espera de clientes network internet 4

SERVER Create Servidor sock_init() Create the CLIENT bind a port to the bind() Register port with the system Create listen for incoming s listen() Establish client connecion connect to server's port accept an incoming accept() Accept client connecion write to the read from the read/write read/write data read from the loop loop write to the close() shutdown close Cliente sock_init () connect() write/read close() Create Set up connecion write/read data Shutdown SERVER Create bind a port to the listen for incoming s accept an incoming read from the int (int domain, int type, int protocol) sockfd = (PF_INET, SOCK_STREAM, 0); int bind(int sockfd, struct sockaddr *server_addr, socklen_t length) bind(sockfd, &server, sizeof(server)); server inclui a porta previamente definida int listen( int sockfd, int num_queued_requests) listen( sockfd, 5); começa a aceitar conexões (máximo 5 na fila) int accept(int sockfd, struct sockaddr *incoming_address, socklen_t length) newfd = accept(sockfd, &client, sizeof(client)); /* BLOCKS */ client é o endereço do cliente que se conectou int read(int sockfd, void * buffer, size_t buffer_size) read(newfd, buffer, sizeof(buffer)); write to the int write(int sockfd, void * buffer, size_t buffer_size) write(newfd, buffer, sizeof(buffer)); : Java (Cliente ) CLIENT Create int (int domain, int type, int protocol) sockfd = (PF_INET, SOCK_STREAM, 0); connect to Server write to the int connect(int sockfd, struct sockaddr *server_address, socklen_t length) connect(sockfd, &server, sizeof(server)); server inclui e porta previamente definida int write(int sockfd, void * buffer, size_t buffer_size) write(sockfd, buffer, sizeof(buffer)); read from the int read(int sockfd, void * buffer, size_t buffer_size) read(sockfd, buffer, sizeof(buffer)); 5

: Java (Cliente ) 2 : Java (Servidor ) http://lrcwww.epfl.ch/sc250_2004/lecture_notes/sc250_04_7.pdf : Java (Servidor ) Servidor single-threaded x muli-threaded Vários clientes podem fazer pedidos ao mesmo tempo para o servidor. O servidor então pode: a) atender um cliente por vez; outros clientes tem que esperar (servidor não concorrente, ou single-threaded) b) atender vários clientes simultaneamente (servidor concorrente ou muli-threaded) De qualquer forma, muitos disposiivos requerem acesso dedicado ou pelo menos serializado (ou seja, não permitem acesso paralelo). A solução em muitos casos é a criação de spools, filas de trabalhos a serem efetuados http://lrcwww.epfl.ch/sc250_2004/lecture_notes/sc250_04_7.pdf Non-concurrent server sock_init() Create the Concurrent server Sock_init() Create the bind() Register port with the system bind() Register port with the system while(1) Start the loop. This loop will { service each request sequenially listen() Establish client connecion accept() Accept client connecion read/write read/write data } End loop close() Shutdown listen() accept() fork() read/write exit() Establish client connecion Accept client connecion Create a child process which will now communicate with client read/write data in child process exit child process 6

Problemas?? Ordem dos bytes nos Ipos de dados dependem da arquitetura da máquina host order: 12 34 56 78 (Motorola) big endian 78 56 34 12 (Intel) li le endian network order: 12 34 56 78 Funções de conversão: u_long htonl(u_long hostlong); u_short htons(u_short hostshort); u_long ntohl(u_long netlong); u_short ntohs(u_short netshort); Baixo nível de abstração... Principalmente quando o que você queria fazer era pedir para outra máquina executar um serviço... ou simplesmente usar um procedimento remoto Endereços s/dns/portas Detectar Ime-outs Threading Como codificar os dados de uma aplicação? Por exemplo, como enviar uma lista, um array, um struct, um objeto Tem que se criar um protocolo sempre... Protocolo Definição clássica Mensagens e regras que determinam ações a serem tomadas de acordo com a Cooperation recepção das mensagens Mais precisamente... EnIdades (de protocolo) cooperando através de um meio Entity A Entity B de comunicação Communication means Protocolo Definir/especificar: Formatos de mensagens Tanto Ipos de dados abstratos quanto a forma de se codificá-los na rede Comportamento Em que momento cada mensagem pode ser enviada e o que deve ser feito para cada lidar com cada mensagem Protocolo / serviço User Q Q-req SAP Q A-ind User A A-req SAP A Q-ind QA-Service provider 7

Implementação do protocolo Implementação do protocolo API User A SAP A User C SAP C LSI C API User A SAP A User C SAP C LSI C PE A PDU exchange PE C PE A PDU exchange PE C Lower Level Service provider / Service provider s BIOS Lower Level Service provider / BIOS Service provider s Cabeamento ou rádio Exemplos: protocolos para impressão Line printer protocol h p://www.ie.org/rfc/rfc1179.txt P h p://tools.ie.org/html/rfc2910 SMB/CIFS h p://www.samba.org/cifs/docs/what-is-smb.html Exemplos: protocolos para comparilhamento de disco NFS SMB/CIFS h p://www.samba.org/cifs/docs/what-is-smb.html 8