PROGRAMAÇÃO COM SOCKETS

Tamanho: px
Começar a partir da página:

Download "PROGRAMAÇÃO COM SOCKETS"

Transcrição

1 unidade I Tecnologias de Redes de Computadores PROGRAMAÇÃO COM SOCKETS Olá! Na aula de hoje, faremos um estudo sobre sockets. Esta aula fornecerá uma boa base de como sockets são utilizados para a transmissão de informações entre aplicações cliente/servidor. Ao final da aula, você entenderá a diferença entre programação de sockets TCP e UDP, bem como o fluxo de sua programação em linguagem Java. Tenha uma ótima leitura! INTRODUÇÃO A primeira pergunta que você deve estar se fazendo é: O que é um socket? Para compreender o que é um socket inicialmente temos de entender que a comunicação entre processos de software tornou-se indispensável nos sistemas atuais. Quanto maior a quantidade de processos de software sendo executados, provavelmente maior será a necessidade de comunicação entre eles. O elo de ligação entre os processos do servidor e do cliente é o socket. Ele é a porta na qual os processos enviam e recebem mensagens. Neste sentido, podemos dizer que um socket é a interface entre a camada de aplicação e a de transporte dentro de uma máquina. Existem diversas aplicações cliente/servidor desenvolvidas, onde cliente(s) e servidor podem estar em máquinas diferentes, distantes umas das outras Os aplicativos do cliente e do servidor utilizam protocolos de transporte para se comunicarem. Quando um aplicativo interage com o software de protocolo, ele deve especificar detalhes, como por exemplo, se é um servidor ou um cliente. Além disso, os aplicativos que se comunicam devem especificar detalhes adicionais. Por exemplo, o remetente deve especificar os dados a serem enviados, e o receptor deve especificar onde os dados recebidos devem ser colocados. Analisando este esquema, percebemos que tudo acima da interface do socket, na camada de aplicação, é controlado pelo criador da aplicação. Por outro lado, o controle da camada de transporte é feito pelo Sistema Operacional. Outra característica importante é que, basicamente, temos dois tipos de serviços de transporte via socket: o confiável, orientado a cadeia de bytes (byte stream), e os datagramas não confiáveis. O protocolo na qual implementa-se o primeiro é o TCP, já o segundo é implementado no protocolo UDP. Veremos isto mais detalhadamente na sequência desta aula. HISTÓRICO Na década de 80 nos Estados Unidos, a ARPA (Advanced Research Projects Agency of the Department of Defense) confiou à Berkeley, uma importante universidade da Califórnia, a responsabilidade de construir um sistema operacional que pudesse ser utilizado no suporte à ARPAnet, a rede antecessora da atual Internet. Neste sentido, uma interface foi desenvolvida e adicionada ao sistema operacional Unix BSD (Berkeley Software Distribution). Tal interface tinha justamente a função de suporte à comunicação em rede. Esta interface ficou então conhecida como Berkeley Sockets Interface, e é a base para a maioria das interfaces entre protocolos de Internet TCP/IP existentes. Você já deve ter estudado em disciplinas anteriores que existe uma nomenclatura específica para se referir a cada lado da comunicação. Temos o servidor, que fica esperando por conexões de entrada e que fornece certos tipos de serviços à outra parte. Já o cliente vem a ser quem solicita a conexão ao servidor para fazer alguma requisição, algum pedido. É importante salientar que não é o computador que distingue quem é servidor e quem é cliente, mas sim a forma como certo programa usa os sockets. Às vezes também fazemos confusão no fato de 51

2 se pensar que um servidor precisa ser um mainframe. Desktops como os que usamos em casa funcionam tanto como cliente quanto como servidor, e é o que ocorre frequentemente. Cada socket tem um endereço único na Internet. Este endereço é formado por um número IP e por um número de porta. Devido às grandes dimensões da Internet, não há como uma pessoa, ou mesmo uma máquina, saber o endereço de todas as outras. Para resolver este problema foi criado protocolo DNS (Domain Name Service). Este protocolo tem a função de traduzir os nomes ou endereços de alto nível das máquinas para o seu respectivo número IP. Assim, ao se passar o endereço de um socket de um servidor, não se passa diretamente seu número IP, mas sim um nome mais fácil de recordar e então o DNS traduz para o endereço real, ou endereço IP. Os sockets podem ser usados para comunicação via qualquer um dos protocolos UDP ou TCP. Assim, é possível termos tanto comunicação orientada a conexão (via TCP), quanta não orientada a conexão (via UDP). O socket abstrai esse conceito, permitindo, assim, a utilização de qualquer um dos meios. PROGRAMAÇÃO DE APLICAÇÕES TCP Inicialmente o cliente deve contatar o servidor. Para isso, o processo servidor já deve estar executando o programa antes de ser contatado além de já ter criado o socket (porta) que aceita o contato do cliente. O cliente contata o servidor criando um socket TCP local e especifica o endereço IP e o número da porta do processo servidor. Quando o servidor é contatado o servidor cria um novo socket para se comunicar com o cliente, permitindo assim a liberação do socket de boas vindas para que possa ser contatado por outros clientes. A I.1 ilustra este conceito. Do ponto de vista da aplicação, a conexão TCP é um fluxo contínuo de dados. A mensagem é fragmentada em pacotes e não há duplicação. A entrega e a ordem dos pacotes são garantidas. Note que a conexão é ponto-aponto, ou seja, existe um remetente e um destinatário conectado por sockets. A figura I.2 ilustra uma aplicação cliente/servidor descrita em linguagem Java. 52

3 Vamos analisar as linhas de código, em linguagem Java, referentes às instruções que são utilizadas para a aplicação da figura I.2, começando com a aplicação que será hospedada no servidor. No início do programa, as seguintes linhas deverão ser inseridas para importar a biblioteca que contém as classes que são utilizadas em uma aplicação com Socket (java.net.*) e as classes de recepção de informação do teclado, do Socket do cliente ou do servidor (java.io.*). import java.io.*; import java.net.*; Neste ponto, criamos um objeto welcomesocket. Este é o socket do lado do servidor. O valor referente à numero_ da_porta deverá ser substituído pelo número da porta pela qual a aplicação cliente usará para conectar-se com o servidor. Este socket esperará a requisição de conexão de um cliente. ServerSocket welcomesocket = new ServerSocket(numero_da_porta); Como o programa servidor normalmente fica funcionando por tempo indefinido, costuma-se colocar o restante das instruções dentro de um loop infinito, como segue: while(true) {... } 53

4 Na sequência, a próxima instrução é responsável por criar um objeto connectionsocket do tipo Socket toda vez que um cliente conectar ao servidor. O TCP se encarregará de criar uma conexão virtual direta entre esse socket e o socket do cliente de forma que todos os bytes serão enviados ao servidor na ordem correta. Socket connectionsocket = welcomesocket.accept(); No caso do envio de um objeto do tipo String do cliente para o servidor, devemos utilizar as seguintes instruções para receber os dados do cliente. BufferedReader infodocliente = new BufferedReader(new InputStreamReader(c onnectionsocket.getinputstream()); String mensagemdocliente = infodocliente.readline(); Depois de processar a informação enviada pelo cliente, podemos enviar um outro objeto (mensagem_para_ cliente) do tipo String de volta para o cliente. Isto geralmente é feito para dar retorno, comunicando que o dado foi recebido ou algo similar. DataOutputStream infoparacliente = new DataOutputStream(connectionSocket. getoutputstream()); infoparacliente.writebytes(mensagem_para_cliente); Agora vamos analisar o programa cliente. Como no caso do programa servidor, o código do programa cliente inicia com a importação das bibliotecas que contém as classes de sockets e de envio de informações. import java.io.*; import java.net.*; Primeiramente, criamos o socket que conectará com o servidor. O primeiro parâmetro passado ao construtor é o nome do servidor, por exemplo, se a aplicação servidor estiver rodando no mesmo computador que a aplicação cliente. O segundo parâmetro é o número da porta que é informado ao socket servidor. Socket clientsocket = new Socket( nome_do_servidor, numero_da_porta); Após a criação do socket cliente, precisamos criar os objetos de cadeia que serão ligados ao socket. O objeto infoparaservidor será a cadeia que enviará informações para o servidor. O objeto infodoservidor será a cadeia que receberá informações do servidor. DataOutputStream infoparaservidor = new DataOutputStream(clientSocket.getOutputStream()); BufferedReader infodoservidor = new BufferedReader(new InputStreamReader(client.getInputStream())); 54

5 Utilizaremos o mesmo modelo anterior do lado servidor. Enviaremos mensagem_do_cliente e receberemos mensagem_para_cliente, dois objetos do tipo String para exemplificar. infoparaservidor.writebytes(mensagem_do_cliente); String mensagem_para_cliente = infodoservidor.readline(); Por fim, podemos fechar o socket, e também a conexão TCP entre cliente e servidor. clientsocket.close(); PROGRAMAÇÃO DE SOCKETS COM UDP A comunicação entre processos também é possível por UDP. Entretanto, UDP é um serviço sem conexão. Com isso, não há o three-way handshaking (ou apresentação de três vias) inicial, e, assim, não há um canal preestabelecido entre os processos. Para que a comunicação entre os processos seja possível, deve-se incorporar ao conjunto de bytes enviados tanto o endereço IP do destino quanto a porta do processo de destino. Este conjunto (bytes + endereço IP + porta) recebe o nome de pacote. Com o pacote criado, ele é colocado na rede através do socket. O processo receptor deverá abrir o pacote para retirar as informações pertinentes. Sendo o UDP um serviço sem conexão, não há garantias de que o pacote realmente chegará ao seu destino. Na comunicação por TCP, não é necessário que todas as cadeias de bytes recebam endereço IP e número de porta, já que existe uma tubulação virtual, pela qual as cadeias fluem, a qual possui estas informações adicionais. Já na comunicação por UDP, não havendo essa tubulação virtual, torna-se necessário que as cadeias de bytes sejam organizadas em pacotes, todos com endereço IP e número de porta. Abaixo temos um exemplo de programação em socket com UDP. Vamos iniciar nossa análise pela parte do servidor. DatagramSocket serversocket = new DatagramSocket(9543); Diferentemente do TCP, aqui criamos um objeto do tipo DatagramSocket e não ServerSocket. Os dados que serão enviados e recebidos pelo servidor passarão todos através deste socket do tipo DatagramSocket. Não se faz necessária a criação de um objeto DatagramSocket para cada nova conexão. Todas as conexões dos clientes passarão por esse único socket serversocket. Isto não é um problema porque cada vez que recebe um pacote, o servidor responde e fica livre novamente, pois não existe conexão entre ambos. Em nosso exemplo, o socket escuta na porta while (true) {... } Temos um loop infinito, onde o servidor fica esperando o recebimento de pacotes. DatagramPacket receivepacket = new DatagramPacket(receiveData, receivedata.length); serversocket.receive(receivepacket); 55

6 O objeto receivepacket aloca memória onde serão salvos os dados de entrada, recebidos pelo servidor. O método receive fica esperando o recebimento e armazena o pacote em receivepacket. String sentence = new String(receivePacket.getData()); InetAddress IPAdress = receivepacket.getaddress(); int port = receivepacket.getport(); Por fim, estas linhas desmontam o pacote, retirando as informações necessárias à retransmissão. O objeto sentence recebe os dados. IPAdress é o número de IP do cliente, que é necessário para mandar a resposta assim como o número de porta port. Note que todos estes dados foram enviados pelo cliente. Após o processamento a resposta é enviada para o respectivo endereço IP e número de porta. Do lado do cliente, temos a criação do socket pelo qual será enviado um pacote da seguinte forma: DatagramSocket clientsocket = new DatagramSocket(); Note que a única diferença entre o socket cliente e o servidor é de que para o servidor foi necessário especificar um número de porta, e para o cliente não. Este comando não cria conexão alguma e nem contata o servidor, e é justamente por isso que não se faz necessário especificar nome do servidor nem seu número de porta. InetAddress IPAddress = InetAddress.getByName( hostname ); Na sequência, criamos um objeto para armazenar o número de IP do Server. Hostname é o nome (apelido) do servidor. O método getbyname() faz uma consulta ao servidor DNS para saber qual o número IP do server. byte[] senddata new byte[1024]; byte[] receivedata = new byte[1024]; Estes dois vetores armazenarão os dados enviados e recebidos respectivamente. DatagramPacket sendpacket = new DatagramPacket(sendData, senddata.length, IPAdress, 9543); Esta linha cria o pacote que será enviado ao Server. Nele estão gravados os dados em si, senddata, o tamanho dos dados, senddata.length, o número de IP do Server, IPAdress, e o número da porta onde o Server espera, clientsocket.send(sendpacket); 56

7 Depois de tudo pronto, enviamos o pacote através do método send do socket clientsocket. Uma vez enviado o pacote, o cliente fica esperando uma resposta. clientsocket.receive(receivepacket); Quando ocorre o recebimento do pacote, ele é armazenado em receivepacket. Note que sockets UDP são mais rápidos que sockets TCP. Eles são mais simples, porém menos confiáveis. Em UDP, não é necessário abrir conexão, deste modo a comunicação ocorre apenas com o envio da mensagem. Uma mensagem é um datagrama, que é composto de um remetente (sender) e um receptor (receiver) e a mensagem (content). Até a próxima aula! Referências: MENDES, Douglas Rocha. Redes de Computadores: Teoria e Prática. Editora Novatec, Wikiversidade: Programação com sockets. Disponível em < Sockets e aplicações em rede. Disponível em < Acesso em: 15 Jun

Programação de sockets com TCP

Programação de sockets com TCP Programação de sockets Objetivo: aprender a construir aplicações cliente-servidor que se comunicam usando sockets SOCKET = API (Application Program Interface) Introduzida no BSD4.1 UNIX, 1981 * Explicitamente

Leia mais

Comunicação entre processos

Comunicação entre processos Comunicação entre processos Processo: um programa em execução num sistema terminal (host) Processos em sistemas distintos comunicam trocando mensagens Processo Cliente: processo que inicia a comunicação

Leia mais

Programação de Sockets

Programação de Sockets Programação de Sockets Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets Socket API introduzida no BSD4.1 UNIX, 1981 explicitamente criados, usados e liberados

Leia mais

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

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets Programação de Sockets Mário Meireles Teixeira. UFMA-DEINF Programação de Sockets Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando s API de Sockets: introduzida no UNIX

Leia mais

Programação de Sockets

Programação de Sockets Programação de Sockets Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets API de Sockets introduzida no BSD4.1 UNIX, 1981 sockets são explicitamente criados, usados

Leia mais

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim Redes TCP/IP [email protected] Camada de Transporte 2 Camada de Transporte Função: Fornecer comunicação lógica entre processos de aplicação em diferentes hospedeiros. Os protocolos de transporte são

Leia mais

Resumo das Propriedades de UDP e de TCP

Resumo das Propriedades de UDP e de TCP Relembrando... Processos duma aplicação distribuída comunicam via mensagens. O formato e o significado destas mensagens depende do protocolo usado. As mensagens são transportadas entre processos através

Leia mais

Programação: Sockets em Java

Programação: Sockets em Java Programação: Sockets em Java Redes de Computadores Glauco Antonio Ludwig Leonardo Lemes Fagundes Roteiro Programação usando Sockets Sockets com TCP Exemplo de aplicação Sockets com UDP Exercício Bibliografia

Leia mais

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens Roteiro... Conceitos de SD, vantagens e desvantagens Infra-estrutura de um SD Considerações de projeto Sistemas Distribuídos Aula 4 Karine de Pinho Peralta Modelos de Comunicação - comunicação entre processos

Leia mais

PROTOCOLOS DE COMUNICAÇÃO

PROTOCOLOS DE COMUNICAÇÃO PROTOCOLOS DE COMUNICAÇÃO 3º ANO / 2º SEMESTRE 2014 INFORMÁTICA [email protected] Ambrósio Patricio Vumo Computer Networks & Distribution System Group Serviços de Transporte na Internet Arquitectura TCP/IP

Leia mais

Camada de Transporte Protocolos TCP e UDP

Camada de Transporte Protocolos TCP e UDP Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.1 Camada de Transporte Protocolos TCP e UDP Curso Técnico Integrado em Informática Turma: INT.INF.3M Arquitetura de Redes

Leia mais

Disciplina de Sistemas Distribuídos. Comunicação em Sistemas Distribuídos

Disciplina de Sistemas Distribuídos. Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos Objetivos Estudar os modelos de comunicação nos Sistemas Operacionais de Rede. Apresentar as características da camada de Transporte e seus protocolos. Estudar as principais

Leia mais

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

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza Programação Paralela e Distribuída Prof. Cidcley T. de Souza Conteúdo Parte I Introdução aos Sockets Tipos de Sockets Classes Java: InetAddress, Datagram Sockets, Stream Sockets, Output e Input Classes

Leia mais

Canais de Comunicação

Canais de Comunicação Canais de Comunicação February 24, 2010 Sumário Comunicação via Mensagens Propriedades dum Canal de Comunicação Protocolos da Internet UDP TCP Aplicação Distribuída O que é? É uma aplicação que consiste

Leia mais

Introdução às camadas de transporte e de rede

Introdução às camadas de transporte e de rede capítulo 1 Introdução às camadas de transporte e de rede É por meio da camada de rede que os computadores identificam qual caminho será utilizado para transmissão de dados entre a origem e o destino de

Leia mais

Prof. Marcelo Cunha Parte 6

Prof. Marcelo Cunha Parte 6 Prof. Marcelo Cunha Parte 6 www.marcelomachado.com ARP (Address Resolution Protocol) Protocolo responsável por fazer a conversão entre os endereços IPs e os endereços MAC da rede; Exemplo: Em uma rede

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro [email protected] Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores

Leia mais

Sockets em Java. Leonardo R. Nunes - [email protected]. 1. Introdução. 2. Sockets TCP/IP

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP Sockets em Java Leonardo R. Nunes - [email protected] 1. Introdução A comunicação entre processos de software tornou-se indispensável nos sistemas atuais. O mecanismo mais utilizado atualmente para

Leia mais

Redes de Computadores Programação com Sockets

Redes de Computadores Programação com Sockets Prof. Othon Batista ( [email protected] ) Página 1 Redes de Computadores Programação com Sockets Prof. Othon Batista ( [email protected] ) Página 2 Roteiro Introdução A Arquitetura TCP/IP O Protocolo IP

Leia mais

Modelo de Camadas. Redes de Computadores

Modelo de Camadas. Redes de Computadores Modelo de Camadas Redes de Computadores Sumário Visão Geral de uma Rede de Computadores Protocolos Modelo de Camadas Porque utilizar Tipos de Modelos de Referência Modelo de Referência ISO/OSI Histórico

Leia mais

Aplicações com Banco de Dados e Cliente-Servidor

Aplicações com Banco de Dados e Cliente-Servidor Aplicações com Banco de Dados e Cliente-Servidor Aula #231 EBS 211 POO e UML Prof Luiz Fernando S Coletta luizfsc@tupaunespbr Campus de Tupã Roteiro Rede de computadores; Aplicação cliente/servidor; Sockets

Leia mais

OSI e TCP/IP. Professor: Leandro Engler Boçon Disciplina: Redes e Serviços

OSI e TCP/IP. Professor: Leandro Engler Boçon   Disciplina: Redes e Serviços OSI e TCP/IP Professor: Leandro Engler Boçon E-mail: [email protected] Disciplina: Redes e Serviços 1 Bibliografia Tanembaum. Andrew S. Redes de Computadores. Editora campus 3ª edição. Rio de Janeiro.

Leia mais

Programação com sockets (em Java)

Programação com sockets (em Java) com sockets (em Java) Prof. Dr. Julio Arakaki Depto. Ciência da 1 Comunicação entre processos // aplicações - é um dos mecanismos mais utilizados - Java oferece modos de utilização:. TCP ( Transmission

Leia mais

Camada de Aplicação da Arquitetura TCP/IP

Camada de Aplicação da Arquitetura TCP/IP Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.1 Camada de Aplicação da Arquitetura TCP/IP Curso Técnico Integrado em Informática Turma: INT.INF.3M Arquitetura de Redes

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Arquitetura da Internet TCP/IP

Arquitetura da Internet TCP/IP Arquitetura da Internet TCP/IP A Internet Internet é a rede mundial de computadores, à qual estão conectados milhões de computadores do mundo todo; A idéia de concepção de uma rede mundial surgiu nos Estados

Leia mais

Implementando comunicação em JAVA via Sockets. Alcides Calsavara - [email protected] Leonardo R. Nunes - leonardo@sumersoft.

Implementando comunicação em JAVA via Sockets. Alcides Calsavara - alcides@ppgia.pucpr.br Leonardo R. Nunes - leonardo@sumersoft. Implementando comunicação em JAVA via Sockets Alcides Calsavara - [email protected] Leonardo R. Nunes - [email protected] Sockets Utilizado para comunicação entre processos; Compreendendo Sockets

Leia mais

Lista de exercícios - 1º bimestre 2016 REDES

Lista de exercícios - 1º bimestre 2016 REDES Lista de exercícios - 1º bimestre 2016 REDES Jean Nicandros Stragalinos Neto. Prontuário: 1616251. Curso: ADS 2º Módulo. 1) Desenhe duas redes com 7 e 8 computadores e defina a configuração IP de cada

Leia mais

Modelo TCP/IP. Douglas Wildgrube Bertol DEE - Engenharia Elétrica CCT

Modelo TCP/IP. Douglas Wildgrube Bertol DEE - Engenharia Elétrica CCT Modelo TCP/IP Douglas Wildgrube Bertol DEE - Engenharia Elétrica CCT AS1RAI1 Redes para Automação Industrial JOINVILLE 12/09/2016 Introdução histórico O padrão histórico e técnico da Internet é o modelo

Leia mais

Programação Orientada por Objectos com Java. Ademar Aguiar. www.fe.up.pt/~aaguiar [email protected]. MRSC, Programação em Comunicações

Programação Orientada por Objectos com Java. Ademar Aguiar. www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt. MRSC, Programação em Comunicações Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar [email protected] 1 Java Networking java.net.* 141 Package java.net Java dispõe de diversas classes para manipular e processar informação

Leia mais

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores Fundamentos de Sistemas Operacionais de Arquitetura Aberta CST em Redes de Computadores Introdução Computadores Computadores são compostos, basicamente, de CPU, memória e dispositivos de entrada e saída

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Prof. Dr. André Carvalho [email protected] Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,

Leia mais

Manual de Programação TED1000 versão TC100 V.Intranet

Manual de Programação TED1000 versão TC100 V.Intranet Manual de Programação TED1000 versão TC100 V.Intranet Indice: Configurações iniciais...2 Configuração de IP...2 Teclas especiais...2 Cabo de rede...2 Programação...3 Testando a comunicação...3 Programando

Leia mais

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar

Leia mais

Aula de Socket. Rafael De Tommaso do Valle

Aula de Socket. Rafael De Tommaso do Valle Aula de Socket Rafael De Tommaso do Valle 20 de agosto de 2009 Socket O que é um socket? É uma interface com qual processos em diferentes hosts se comunicam através da rede; Também chamado de interface

Leia mais

Fundamentos de Rede. Aula 2 - Modelo OSI

Fundamentos de Rede. Aula 2 - Modelo OSI Fundamentos de Rede Aula 2 - Modelo OSI Protocolo e Arquitetura de Protocolos Problema Permitir a comunicação entre entidades de diferentes sistemas Solução Criar convenções de quando e como se comunicar

Leia mais

Mecanismos de Comunicação. Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/)

Mecanismos de Comunicação. Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/) Mecanismos de Comunicação Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/) Sockets o que é? Um socket é um mecanismo de comunicação (dois sentidos) entre dois programas a funcionar

Leia mais

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO http:// www.cefetrn.br/datinf ARQUITETURA TCP/IP Nome: Curso: Turma: LISTA DE EXERCÍCIO

Leia mais

Funções da Camada de

Funções da Camada de Camada de Transporte Funções da Camada de Transporte Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores,

Leia mais

Protocolos de Interligação de Redes Locais e a Distância Modelos de Referência. Thiago Leite

Protocolos de Interligação de Redes Locais e a Distância Modelos de Referência. Thiago Leite Protocolos de Interligação de Redes Locais e a Distância Modelos de Referência Thiago Leite [email protected] As redes são organizadas em camadas Forma de reduzir a complexidade Um conjunto de camadas

Leia mais

Aplicações Multimídia sobre Redes

Aplicações Multimídia sobre Redes Redes Multimídia 2016.2 Aplicações Multimídia sobre Redes Curso Superior de Tecnologia em Sistemas para Internet Turma: TEC.SIS.4T Redes Multimídia Conteúdo Programático :: 1 a Unidade 1. Aplicações multimídia

Leia mais

Exercícios Redes de Comunicação de Dados

Exercícios Redes de Comunicação de Dados Exercícios Redes de Comunicação de Dados MATRÍCULA: 0) A camada da arquitetura Internet TCP/IP, responsável pela transferência de dados fim-a-fim, é a A) Física B) Enlace C) Rede D) Transporte E) Aplicação

Leia mais

EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR. Segundo Bimestre

EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR. Segundo Bimestre EXERCÍCIOS E REVISÃO REES E COMPUTAORES EGAR JAMHOUR Segundo Bimestre Exercício 1. Considere o cenário abaixo supondo que o switch 1 é o root 1 100M 4 4b 6a 6 1a 1b 100M 1G 2a 3a 2 3 2b 2c 3b 4a 1G 1G

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Redes de computadores

Redes de computadores Redes de computadores Capítulo 2 Prof. Eduardo Pagani Julio [email protected] Camada de aplicação 2.1 Princípios de aplicações de rede 2.2 Web e HTTP 2.3 FTP 2.4 Correio electrônico SMTP, POP3, IMAP 2.5

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais

Capítulo 2 Camada de aplicação

Capítulo 2 Camada de aplicação Capítulo 2 Camada de aplicação Nota sobre o uso destes slides ppt: Estamos disponibilizando estes slides gratuitamente a todos (professores, alunos, leitores). Eles estão em formato do PowerPoint para

Leia mais

Informática I. Aula 20. http://www.ic.uff.br/~bianca/informatica1/ Aula 20-27/11/06 1

Informática I. Aula 20. http://www.ic.uff.br/~bianca/informatica1/ Aula 20-27/11/06 1 Informática I Aula 20 http://www.ic.uff.br/~bianca/informatica1/ Aula 20-27/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Java 2 Standard Edition Fundamentos de

Java 2 Standard Edition Fundamentos de Java 2 Standard Edition Fundamentos de Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo pretende apenas cobrir conceitos essenciais sobre programação em rede com Java Como criar um

Leia mais

Computadores e Programação (DCC/UFRJ)

Computadores e Programação (DCC/UFRJ) Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo

Leia mais

Capítulo 2 Camada de aplicação

Capítulo 2 Camada de aplicação Capítulo 2 Camada de aplicação Nota sobre o uso destes slides ppt: Estamos disponibilizando estes slides gratuitamente a todos (professores, alunos, leitores). Eles estão em formato do PowerPoint para

Leia mais

Sistemas de Troca de Mensagens

Sistemas de Troca de Mensagens Universidade Federal do Rio de Janeiro Programa de Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquitetura de Sistemas Paralelos Sistemas de Troca de Mensagens Sistemas de Comunicação O Sistema de Comunicação

Leia mais

O que é um sistema distribuído?

O que é um sistema distribuído? Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores

Leia mais

Firewall. Prof. Marciano dos Santos Dionizio

Firewall. Prof. Marciano dos Santos Dionizio Firewall Prof. Marciano dos Santos Dionizio Firewall (definições) Por que do nome firewall? Antigamente, quando as casas eram feitas de madeira o fogo era um grande problema, pois se alastrava facilmente

Leia mais

Protocolos de Rede. Protocolos em camadas

Protocolos de Rede. Protocolos em camadas Protocolos de Rede Prof. Alexandre Beletti Protocolos em camadas Existem protocolos em diferentes camadas dos modelos de estudo (OSI e TCP/IP) Lembre-se de diferencias tipos de programas de tipos de protocolos

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 02: Organização e Arquitetura de Computadores / Lógica Digital (Parte I) O conteúdo deste documento tem por objetivo

Leia mais

Programação Orientada a Objetos - 3º semestre AULA 02 Prof. André Moraes

Programação Orientada a Objetos - 3º semestre AULA 02 Prof. André Moraes Pág 10 Programação Orientada a Objetos - 3º semestre AULA 02 Prof. André Moraes 2.3 CONTINUANDO A ABORDAGEM A ALGUNS CÓDIGOS ESCRITOS EM JAVA Faremos mais alguns programas apenas para nos certificarmos

Leia mais

Redes de Computadores. A arquitectura protocolar TCP/IP

Redes de Computadores. A arquitectura protocolar TCP/IP A arquitectura protocolar TCP/IP A arquitectura TCP/IP! Possui apenas 4 camadas ou níveis Aplicação FTP Telnet HTTP Transporte TCP UDP Rede IP Acesso à Rede Ethernet Pacotes por rádio ponto a ponto 2 Nível

Leia mais

Transporte Multimídia em Redes. Transporte Multimídia em Redes. Transmissão multimídia em tempo real. Categorias dos protocolos

Transporte Multimídia em Redes. Transporte Multimídia em Redes. Transmissão multimídia em tempo real. Categorias dos protocolos Transporte Multimídia em Redes Transporte Multimídia em Redes A transmissão multimídia requer que garantias diversas de Qualidade de Serviço (QoS) sejam estabelecidas e mantidas para que se atendam aos

Leia mais

Trabalho do Curso de Redes de Computadores COS765/MAB /1

Trabalho do Curso de Redes de Computadores COS765/MAB /1 Trabalho do Curso de Redes de Computadores COS765/MAB731 2015/1 Universidade Federal do Rio de Janeiro Rosa M.M. Leão e Daniel Sadoc Menasché Primeiro Período de 2015 1 Introdução O objetivo deste trabalho

Leia mais

Aula 03 Camadas do modelo OSI. 7 - Aplicação. 6 - Apresentação. Prof. Leandro Pykosz

Aula 03 Camadas do modelo OSI. 7 - Aplicação. 6 - Apresentação. Prof. Leandro Pykosz Aula 03 Camadas do modelo OSI Prof. Leandro Pykosz [email protected] 7 - Aplicação Faz a interface entre o protocolo e o aplicativo que pediu ou receberá a informação através da rede. 6 - Apresentação

Leia mais

VI Semana de Infraestrutura da Internet no Brasil São Paulo, SP 07/12/16

VI Semana de Infraestrutura da Internet no Brasil São Paulo, SP 07/12/16 VI Semana de Infraestrutura da Internet no Brasil São Paulo, SP 07/12/16 Serviços IPv6 Eduardo Barasal Morales Tiago Jun Nakamura Agenda Autoconfiguração de Endereços Stateless DHCPv6 Prefix Delegation

Leia mais

Manual de utilização Módulo TCP/IP MTCP-4E4S

Manual de utilização Módulo TCP/IP MTCP-4E4S INSTALAÇÃO 1 - Conecte a fonte 12Vcc/1A a tomada e em seguida ao módulo MTCP-4E4S. 2 - Conecte o cabo de rede que acompanha o produto ao módulo TCP/IP (conector RJ45) e em seguida ao roteador ou servidor

Leia mais

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Informática I Aula 22 http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Critério de Correção do Trabalho 1 Organização: 2,0 O trabalho está bem organizado e tem uma coerência lógica. Termos

Leia mais

Capítulo 2 Camada de aplicação

Capítulo 2 Camada de aplicação Capítulo 2 Camada de aplicação Nota sobre o uso destes slides ppt: Estamos disponibilizando estes slides gratuitamente a todos (professores, alunos, leitores). Eles estão em formato do PowerPoint para

Leia mais

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

INF01018 Aula Prática 1 Cliente-Servidor e Multicast 1 / 30 INF01018 Aula Prática 1 Cliente-Servidor e Multicast Lucas Mello Schnorr, Alexandre Silva Caríssimi {lmschnorr,asc}@inf.ufrgs.br http://www.inf.ufrgs.br/ lmschnorr/ad/ INF01018 Sistemas Operacionais

Leia mais

Cálculo de Soma de Verificação do User Datagram Protocol

Cálculo de Soma de Verificação do User Datagram Protocol Resumo Cálculo de Soma de Verificação do User Datagram Protocol Othon Marcelo Nunes Batista Mestre em Informática [email protected] Mesmo sendo um protocolo que nada garante, o UDP tem um campo no datagrama

Leia mais

Prof RG Crespo Criptografia e Segurança das Comunicações. Introdução à segurança de protocolos. Pilha de protocolos (1)

Prof RG Crespo Criptografia e Segurança das Comunicações. Introdução à segurança de protocolos. Pilha de protocolos (1) Criptografia e Segurança das Comunicações Introdução à segurança de protocolos Intr. Segurança : 1/10 Pilha de protocolos (1) O modelo de comunicação mais divulgado em redes de computadores é a Internet:

Leia mais

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

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet. Sockets Programando para redes em Java Introdução n O URLs e URLConnections fornecem um mecanismo de alto nível para acessar recursos na Internet. n Em aplicações de servidor de cliente, o servidor fornece

Leia mais

Rede de computadores Switch. Professor Carlos Muniz

Rede de computadores Switch. Professor Carlos Muniz Rede de computadores Professor Carlos Muniz O hub ou switch é simplesmente o coração da rede. Ele serve como um ponto central, permitindo que todos os pontos se comuniquem entre si. Todas as placas de

Leia mais

Redes de Computadores. Protocolos TCP/IP

Redes de Computadores. Protocolos TCP/IP Redes de Computadores Protocolos TCP/IP Sumário 2! Endereços IP (lógicos) Sub-redes! Endereços Ethernet (físicos)! Conversão de endereços IP/Ethernet! Pacotes IP! Números de portos! Segmentos UDP! Segmentos

Leia mais

Sockets. Bruno Guimarães Lucas Rossini

Sockets. Bruno Guimarães Lucas Rossini 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,

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Tecnologia em Análise e Desenvolvimento de Sistemas 5ª. Série Programação Distribuída A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares [email protected] Aula 12 Beans Orientados a

Leia mais

Endereço de Rede. Comumente conhecido como endereço IP Composto de 32 bits comumente divididos em 4 bytes e exibidos em formato decimal

Endereço de Rede. Comumente conhecido como endereço IP Composto de 32 bits comumente divididos em 4 bytes e exibidos em formato decimal IP e DNS O protocolo IP Definir um endereço de rede e um formato de pacote Transferir dados entre a camada de rede e a camada de enlace Identificar a rota entre hosts remotos Não garante entrega confiável

Leia mais

Capítulo 2 Camada de aplicação

Capítulo 2 Camada de aplicação Redes de computadores e a Internet Capítulo 2 Camada de aplicação Camada de aplicação 2.1 Princípios de aplicações de rede 2.2 Web e HTTP 2.3 FTP 2.4 Correio eletrônico SMTP, POP3, IMAP 2.5 DNS 2.6 Compartilhamento

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

DoS, DDoS & Botnets. Alunos: Lucas Gomes, Marcos Seefelder, Vinicius Campos Professor: Otto Carlos Muniz Bandeira Duarte

DoS, DDoS & Botnets. Alunos: Lucas Gomes, Marcos Seefelder, Vinicius Campos Professor: Otto Carlos Muniz Bandeira Duarte DoS, DDoS & Botnets Alunos: Lucas Gomes, Marcos Seefelder, Vinicius Campos Professor: Otto Carlos Muniz Bandeira Duarte Contextualização Década de 90: primeiros ataques 1996: SYN Flood; Janeiro de 1998:

Leia mais

Sistemas Distribuídos Capítulo 3 - Aula 3

Sistemas Distribuídos Capítulo 3 - Aula 3 Sistemas Distribuídos Capítulo 3 - Aula 3 Aula passada Arquitetura de SDs Estilo Arquitetônico Arquitetura de Sistemas Sistemas Autogerenciáveis Aula de hoje Threads Threads em SDs Processos Clientes Processos

Leia mais

Redes de Computadores.

Redes de Computadores. Redes de Computadores www.profjvidal.com REDES PONTO-A-PONTO E CLIENTE-SERVIDOR REDES DE COMPUTADORES Uma rede de computadores é formada por um conjunto de módulos processadores capazes de trocar informações

Leia mais

Experiência 04: Comandos para testes e identificação do computador na rede.

Experiência 04: Comandos para testes e identificação do computador na rede. ( ) Prova ( ) Prova Semestral ( ) Exercícios ( ) Prova Modular ( ) Segunda Chamada ( ) Exame Final ( ) Prática de Laboratório ( ) Aproveitamento Extraordinário de Estudos Nota: Disciplina: Turma: Aluno

Leia mais

Aula 30 - Sockets em Java

Aula 30 - Sockets em Java Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar

Leia mais

Introdução à Informática

Introdução à Informática Introdução à Informática Aula 3 http://www.ic.uff.br/~bianca/introinfo/ Aula 3-12/09/2007 1 Objetivo da disciplina O objetivo dessa disciplina é dar ao aluno noções básicas de computação. Serão apresentados

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto [email protected]

Redes de Computadores. Prof. André Y. Kusumoto andre_unip@kusumoto.com.br Redes de Computadores Prof. André Y. Kusumoto [email protected] Open Systems Interconnection Modelo OSI No início da utilização das redes de computadores, as tecnologias utilizadas para a comunicação

Leia mais

Capítulo 2. Camada de aplicação

Capítulo 2. Camada de aplicação Redes de computadores e a Internet Capítulo 2 Camada de aplicação Camada de aplicação 2.1 Princípios de aplicações de rede 2.2 Web e HTTP 2.3 FTP 2.4 Correio eletrônico SMTP, POP3, IMAP 2.5 DNS 2.6 Compartilhamento

Leia mais

Redes de comunicação. Mod 2 Redes de computadores. Professor: Rafael Henriques

Redes de comunicação. Mod 2 Redes de computadores. Professor: Rafael Henriques Redes de comunicação Mod 2 Redes de computadores 1 Professor: Rafael Henriques Apresentação 2 Professor: Rafael Henriques Introdução às redes de computadores; Tipos de rede; Diagramas de encaminhamento;

Leia mais

Prof. Mizael Cortez Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI

Prof. Mizael Cortez Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI Prof. Mizael Cortez [email protected] Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI A Internet é um sistema extremamente complicado e que possui muitos componentes: inúmeras aplicações e

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. A CAMADA DE ENLACE DE DADOS (Parte 1) Relembrando as aulas do semestre passado quando estudamos os modelos de referência, lembramos que a Camada de Enlace de Dados é a camada responsável pela

Leia mais

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização Protocolos com paralelismo (pipelining) Paralelismo: transmissor envia vários pacotes ao mesmo tempo, todos esperando para serem reconhecidos Faixa de números de seqüência deve ser aumentada Armazenamento

Leia mais