Sockets. Bruno Guimarães Lucas Rossini



Documentos relacionados
Programação com sockets (em Java)

Redes de Computadores II

Sistemas Distribuídos

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Capítulo II Modelos de Programação Distribuída

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída

Redes de Computadores (RCOMP 2014/2015)

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

REDES DE COMPUTADORES

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Programação de Sockets em C/C++

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

Camada de Transporte, protocolos TCP e UDP

Java 2 Standard Edition Fundamentos de

Java NET: Interaja com a Internet. Ricardo Terra (rterrabh [at] gmail.com) Java NET: Interaja com a Internet Maio,

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos Java Sockets


Passagem de Mensagens

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 17 de junho de 2015

Comunicação entre Processos

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

Programação com Sockets

Programação: Sockets em Java

INF1013 MODELAGEM DE SOFTWARE

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

PEL/FEN Redes de Computadores 2015/1 Primeira Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Sistemas Distribuídos

Camada de Aplicação. Prof. Eduardo

Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07. Prof. Moises P. Renjiffo

Rede de Computadores (REC)

Comunicação entre processos

Programação de sockets com TCP

Redes de Computadores e a Internet

Prof. Marcelo Cunha Parte 5

MÓDULO 8 Modelo de Referência TCP/IP

Redes. Pablo Rodriguez de Almeida Gross

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets

Cliente-servidor com Sockets TCP

1 Redes de Computadores - TCP/IP Luiz Arthur

Sistemas Distribuídos. Coulouris Capítulo 4

Sockets com Java Parte I

Sistemas de Operação Sockets

Redes de Computadores. Camada de Transporte

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Sistemas Distribuídos

Camada de rede. Camada de enlace. Meio Físico

Redes de Computadores. Arquitetura de Protocolos Profa. Priscila Solís Barreto

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Redes de Computadores. Protocolos de comunicação: TCP, UDP

REDES DE COMPUTADORES

Implementando comunicação em JAVA via Sockets. Alcides Calsavara - alcides@ppgia.pucpr.br Leonardo R. Nunes - leonardo@sumersoft.

Camada de Transporte. Bruno Silvério Costa

Redes de Computadores Camada de Aplicação. Prof. MSc. Hugo Souza

Programação de Sockets

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet.

Introdução à Camada de Aplicação. Prof. Eduardo

REDES DE COMPUTADORES

Aula 2 Arquitetura de Redes. Prof. Dr. S. Motoyama

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

Protocolos de Redes Revisão para AV I

TECNOLOGIAS WEB AULA 2 PROF. RAFAEL DIAS

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Redes de Computadores

PROTOCOLOS DE COMUNICAÇÃO

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Capítulo 7 CAMADA DE TRANSPORTE

Redes de Computadores Modelo de referência TCP/IP. Prof. MSc. Hugo Souza


Exercícios de Revisão Redes de Computadores Edgard Jamhour. Nome dos Alunos

06/10/2015. Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES. UDP User Datagram Protocol. UDP User Datagram Protocol

Informática I. Aula Aula 22-03/07/06 1

Módulo de Transmissão e Ativos de Rede Curso Técnico de Informática. Prof. George Silva

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Fernando Albuquerque - fernando@cic.unb.br ADMINISTRAÇÃO TCP/IP. Fernando Albuquerque fernando@cic.unb.br

CAPÍTULO 6 A CAMADA DE TRANSPORTE

Redes de Computadores

REDE DE COMPUTADORES

Aula 30 - Sockets em Java

Cliente-servidor com Sockets TCP

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes

SISTEMAS DISTRIBUIDOS

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

Redes de Computadores. Trabalho de Laboratório Nº7

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

REDES DE COMPUTADORES II. Ricardo José Cabeça de Souza

Regras de funcionamento (Unreliable Delivery, etc.) Método de roteamento (Sem conexão) Formato dos dados em um datagrama

Transcrição:

Sockets Bruno Guimarães Lucas Rossini

Introdução Comunicação entre processos: Memória compartilhada Memória distribuída - Mensagens pela rede Um sistema distribuído é ausente de memória compartilhada, toda comunicação é feita por troca de mensagens. Troca de mensagens entre A e B: A cria a mensagem e despacha para o SO enviá-la Mensagem é binária, logo A e B deve concordar no significados dos bits

Modelo ISO OSI Questões: Quantos volts para bit zero, e para bit um? Como será o último bit? Como dizer se a mensagem está danificada? Foi criado um modelo em camadas para identificar níveis e serviços. 7 camadas: Física Enlace Rede Transporte Sessão - Apresentação - Aplicação

1ª definição "Socket é a interface entre a camada de aplicação e a camada de transporte"

Tipos de comunicação Persistente Não há a necessidade do remetente e destinatário estarem ligados no momento do envio/recebimento. Há uma camada middleware que irá armazenar a mensagem. Exemplo: serviço de e-mail. Transiente Mensagem fica ativa durante o tempo de aplicação.

Tipos de comunicação Assíncrona Síncrona Remetente cria a mensagem e "apresenta" para o SO. Remetente NÃO é bloqueado. Após o remetente ter criado a mensagem podem ocorrer três momentos na qual ficará bloqueado: 1. Até o momento que a camada inferior captura a mensagem 2. Até que o receptor receba a mensagem 3. Até que o receptor processe a mensagem

Tipos de comunicação Discreto A mensagem é uma unidade completa. Fluxo Há um conjunto de mensagens relacionadas por uma certa ordem.

2ª definição É um terminal de comunicação baseada em mensagens para o qual uma aplicação pode escrever e ler dados da rede. As informações são strings de bytes sem significado aparente.

2ª definição Implementa uma porta de comunicação entre um processo da camada de aplicação e um protocolo da camada transporte.

Tipo de conexão Datagram sockets Connectionless sockets User Datagram Protocol (UDP) Transmite pacotes Stream sockets Connection-oriented sockets Transmission Control Protocol (TCP) Cria uma conexão com outro processo

Interface Berkeley Também conhecido como BSD Socket, é a API de fato para programação. Veio do padrão POSIX. Esta API é provida pelo SO, e assim permite os programadores controlar e utilizar os sockets. Todos os sistemas operacionais modernos tem alguma implementação da interface de socket Berkeley. Se tornou o padrão de interface para conexão com a Internet, pois é uma implementação original para TCP/IP. Há outras interfaces como a Winsock para Windows, muito parecida com a de Berkeley.

Funções da API socket_create(dominio, protocolo) Cria um novo terminal. SO reserva recursos para atender envio e recebimento. Retorna um socket resource em caso de sucesso. Tipos de dominio: IPv4 IPv6 Tipos de protocolo da comunicação: Stream (TCP) - Connectionless Datagrama (UDP) - Connection-oriented

Funções da API socket_bind(socket, endereço, porta) Associa um endereço com o socket. Local Socket Address. Lado servidor. socket_listen(socket, nummax) Para orientado a conexão. Não bloqueante. SO reserva buffer para o nº de conexões.

Funções da API accept(socket) É bloqueante até chegar uma nova conexão. Aceita conexões vindas neste socket. Uma vez que uma conexão com sucesso é feita, é criado um novo socket (Remote Socket Address) com as mesmas propiedades do original que deve ser usado para comunicação.

Funções da API

Funções da API connect(socket) Especifica um endereço. Bloqueia até a conexão estiver estabelecida. send() receive()

Java A API sockets BSD é escrita em linguagem C. A maioria das outras linguagens provêm uma interface similar, escrita como um wrapper baseado na API. Está localizado no pacote java.net

PHP PHP é bem "equipado" para tratar sockets A extensão socket implementa uma interface de baixo nível para funções de comunicação entre sockets baseadas no popular BSD sockets, podendo acionar como um servidor socket ou como um cliente. --enable-sockets à linha de comando configure. Descomentar ;extension=php_sockets.dll no php.ini

Servidor Processo que espera ser contactado. É associado a uma porta particular, e fica escutando requisições naquela porta e respondendo. Servidores de email (POP3, SMTP) e servidores WEB são bons exemplos. O servidor HTTP escuta (na porta 80) requisições e serve de volta o HTML e outros arquivos.

Programando o servidor 1. Criar um ServerSocket a. ServerSocket server = new ServerSocket (port); b. numporta - Ponto de handshake 2. Espera conexão a. Socket connection = server.accept(); b. Objeto Socket - Gerencia a conexão com cliente 3. Obtem fluxo de E/S do socket a. connection.getoutputstream(); b. Objeto OutputStream e InputStream 4. Processamento 5. Fechar conexão no fluxo e sockets

Programando o cliente 1. Cria um socket Socket socket = new Socket (ip, porta); 2. Obtém fluxo de E/S new DataOutputStream(socket. getoutputstream()); 3. Processamento 4. Fecha conexão

Compatibilidade Java ultilizamos br.readline()!= null Lê até EOL socket_write($socket, $texto. "\n", strlen ($texto) + 1) Função só retorna null quando socket cliente é fechado. Modo de leitura do PHP PHP_BINARY_READ - \0 PHP_NORMAL_READ - \n

Quais os tipos de conexão em Sockets? O que as caracteriza? Connection-oriented X Connectionless Depende de como aplicação deseja. Temos dois tipos de serviços de transporte via socket: O confiável orientado a cadeia de bytes (byte stream) utilizando TCP. Datagramas não confiáveis. Utilizando o protocolo UDP.

Cite 5 funções da API Sockets e explique sua funcionalidade. Principais funções da API socket(); bind(); listen(); accept(); connect(); send(); receive();

Explique em linhas gerais o que deve ser feito para implementar uma aplicação servidora que atenda a vários clientes simultaneamente através de uma porta Socket. A API socket prevê esta funcionalidade. A aplicação servidora cria um Local Socket, e quando ocorre a conexão retorna um Remote Socket. Neste ponto pode ocorrer um fork(), ou uma programação com threads na qual uma linha escuta infinitamente por novas requisições e a outra processa a requisição.

Referências Java in Distributed Systems: Concurrency, Distribution and Persistence - Marko Boger Sistemas Distribuídos - ANDREW S. TANENBAUM http://php.net/manual/pt_br/book.sockets.php http://en.wikipedia.org/wiki/berkeley_sockets