Cliente/Servidor. Programação com Sockets. Graça Bressan. Graça Bressan/LARC

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

Download "Cliente/Servidor. Programação com Sockets. Graça Bressan. Graça Bressan/LARC 2000 1"

Transcrição

1 Cliente/Servidor Programação com Sockets Graça Bressan Graça Bressan/LARC

2 Interface através de Sockets Socket é uma API ( Aplication Program Interface ) para acesso aos serviços do protocolo de transporte do TCP/IP. As duas principais APIs de comunicação do Unix, para uso em C, são: Sockets da versão de Berkeley TLI ( Trasport Layer Interface ) da versão ATT. Camadas de protocolos TCP/IP Interface através de Sockets A maioria dos fabricantes, em especial os fabricantes de workstations, como Sun e DEC, adotaram o BSD Unix. Portanto, a interface Sockets tornou-se disponível em muitas máquinas e acabou sendo amplamente aceita. A interface de socket utiliza conceitos comuns às operaçòes com arquivos. Graça Bressan/LARC

3 Interface de Programação para Arquivos Operação open close read write Significado Prepara um dispositivo ou um arquivo para operações de E/S. Termina o uso do dispositivo ou arquivo previamente aberto. Obtém dados de um dispositivo ou arquivo e coloca na memória. Transmite dados da memória para dispositivo ou arquivo. Interface de Programação para Arquivos Quando um programa executa a função open para iniciar uma operação de E/S, o sistema retorna um inteiro denominado descritor de arquivos que a aplicação usa nas próximas operações de E/S. O open recebe três argumentos: Nome do arquivo ou do dispositivo a ser aberto. modo de acesso Um conjunto de bits para caso especiais Ao terminar de usar o arquivo, a aplicação chama close para liberar o descritor e os recursos a ele associados (como buffers). Exemplos: (a)abrir um arquivo de nome "nome de arquivo", com um modo que permite leitura e escrita e devolve um descritor de arquivo na variável desc: int desc; desc = open ("nome de arquivo", O_RDWR,0); (b)a aplicação pode usar a variável desc nas operações de E/S, tais como, ler 128 bytes de dados do arquivo para a área denominada buffer: Graça Bressan/LARC

4 read ( desc, buffer, 128 ); (c) Fechar o arquivo ao término das operações: close ( desc ); Interface de Programação de Sockets A API de socket foi incluída como uma extensão das operações sobre arquivos: Descritores análogos aos de arquivo serão usados para comunicação de dados por sockets. As chamadas de sistema, read e write, com descritores de sockets serão usadas para envio e recebimento de dados, de forma análoga às operações convencionais de arquivos. A aplicação deve especificar: As portas dos protocolos local e remoto. Os endereços IP local e remoto Se elas usarão TCP ou UDP Se iniciará a conexão ou irá esperar por uma conexão, isto é, se ela vai se comportar como cliente ou como servidor. Interface de Sockets Um socket armazena uma associação entre uma porta TCP e um endereço IP. Um socket pode ser Passivo ou Ativo: Socket Passivo: um socket criado para esperar conexões de outras estações. Este tipo de socket é utilizado por aplicações servidoras; Socket Ativo: um socket utilizado para iniciar uma conexão. Este tipo de socket é utilizado por aplicações clientes. Abstração de um Socket Descritores de sockets e descritores de arquivos No Unix, um aplicativo que precisa efetuar uma E/S chama a função open para criar um descritor de arquivo que será usado para acessar o dispositivo correto. Graça Bressan/LARC

5 O sistema operacional implementa descritores de arquivos em uma tabela de ponteiros para as estruturas de dados internos de cada dispositivo. Tabela de Descritores Interface de Sockets Cada processo tem uma tabela de descritores de arquivos. Quando um processo abre um arquivo, o Sistema Operacional coloca na tabela de descritores um ponteiro apontando para a estrutura de dados deste arquivo. O descritor retornado pelo open, é o índice da entrada nesta tabela. Como um arquivo, cada socket ativo é identificado por um número inteiro denominado descritor de socket. O Unix aloca o descritor de socket na mesma tabela de descritores de arquivos. O BSD Unix contém uma chamada de sistema denominado "socket" que a aplicação usa para criar um socket. A chamada da função de sistema socket retorna um descritor de socket. O descritor de socket é usado para as próximas operações relacionadas com socket, como read, write, etc. Graça Bressan/LARC

6 Estrutura de dados do sockets Quando uma aplicação chama socket, o sistema operacional aloca uma estrutura de dados que contém as informações necessárias para a comunicação e coloca um ponteiro para essa estrutura na tabela de descritores. Estrutura de dados do sockets Quando um socket é criado o sistema deixa muito dos campos da estrutura vazios e que devem ser preenchidos por outras chamadas de sistema. Após a criação do socket e preenchimento de seus campos, ele pode ser usado para: Esperar por uma conexão (servidor) ou Iniciar uma conexão (cliente). Conexão Uma conexão é uma associação entre dois sockets. Cada um dos sockets de uma conexão são chamados de "end-points". Um socket usado para esperar por uma conexão é denominado socket passivo. Um socket usado para iniciar uma conexão é denominado socket ativo. Graça Bressan/LARC

7 Endereço Final Os pontos extremos da comunicação são os processos de cliente e servidor, cada um rodando em um sistema. Estes processos são identificados pelos seus endereços finais. Em uma rede Internet, os 2 processos podem estar em rede diferentes, conectados por um ou mais roteadores. Consiste de 3 níveis de endereços: Endereço de rede Endereço do host conectado na rede Endereço do processo no host. O TCP/IP usa um inteiro de 32 bits para especificar a rede e o host, e tanto TCP como UDP usam números de porta de 16 bits para especificar o processo do usuário. A maioria das famílias de protocolos definem um conjunto de endereços " bem conhecidos " que são usados para identificar os serviços fornecidos pelo host. Exemplo: A implementação do TCP/IP fornece um servidor de transferência de arquivos denominado FTP que um cliente pode contactar para transferir um arquivo. A porta para FTP é definida como sendo 21. Conexão e Endereços Finais Quando um socket é criado, ele não contém os endereços finais que serão utilizados na conexão. Portanto, antes de usar um socket, o endereço final ou os endereços finais devem ser especificados. Graça Bressan/LARC

8 Conexões entre Sockets Interface de Sockets Encapsulamento de dados TCP no Ethernet Graça Bressan/LARC

9 Exemplo de Cliente/servidor usando TCP Interface através de Sockets com UDP O cliente não estabelece conexão com o servidor. Em vez disso, manda datagramas através de sendto(), que requer endereço do destino (servidor) como argumento. O servidor, por sua vez, não espera por uma conexão. Ele apenas chama recvfrom(), que espera indefinidamente até um dado chegar de algum cliente. A chamada recvfrom() retorna ao chamador, o endereço IP e de porta do processo cliente junto com o datagrama, de forma que o servidor possa enviar uma resposta ao cliente correto. Graça Bressan/LARC

10 Exemplo Cliente/servidor com usando UDP Graça Bressan/LARC

11 Interface de Sockets socket (pf, type, protocol) Cria um novo socket que pode ser usado para comunicação. Retorna um descritor de socket. Os argumentos para a chamada especificam: A família de protocolos que a aplicação vai usar ( por exemplo, PF_INET para TCP/IP). Tipo de serviço (por ex. stream ou datagram ). Protocolo ( ex. TCP ou UDP ). connect (socket, destaddr, addrlen) Depois de criar um socket, um cliente chama connect para estabelecer uma conexão com um servidor remoto. Os argumentos para a chamada são: O descritor de socket obtido com socket. Ponteiro para uma estrutura do tipo sockaddr contendo o endereço final remoto. O connect deixa o socket ligado permanentemente ao endereço destino, isto é, no estado conectado, desde que use serviço com conexão (TCP). Nos serviços sem conexão ele guarda apenas o endereço remoto. Para serviços sem conexão não é necessário usar connect, mas se usar, não será necessário especificar o endereço remoto toda vez que for fazer transferência. write (socket, buffer, length) Tanto cliente como servidor usam write para enviar dados através da conexão TCP, os clientes para enviar solicitações e servidores para enviar respostas Os argumentos para a chamada são: Graça Bressan/LARC

12 Descritor de socket. Endereço onde está o dado. Tamanho do dado em bytes. O write copia os dados a serem enviados em buffers do sistema operacional e permite que a aplicação continue a sua execução enquanto o dado é transmitido pela rede. Se o buffer estiver cheio, o write bloqueia o processo temporariamente até que TCP esvazie o buffer. A alternativa ao write para o modo não conectado é: sendto (socket, buffer, length, flags, destaddr, addrlen) read (socket, buffer, length) Tanto cliente como servidor usam read para receber dados da conexão TCP, servidores usam read para receber solicitações e os clientes para receber resposta. Os argumentos para a chamada são: Descritor de socket. Endereço de um buffer. Tamanho do buffer. O read extrai os bytes que chegam no socket e copia-os no buffer. Se não chegou nenhum dado, a chamada de read bloqueia a execução do processo. Se tiver mais dados que o tamanho do buffer, o read extrai apenas o suficiente para encher o buffer. Se vier menos, extrai todos os bytes e retorna o número de bytes. Read também pode ser usado para receber mensagens em sockets que usam UDP. Nesse caso, cada read extrai um datagrama UDP. Outra alternativa para socket não conectado é: recvfrom (socket, buffer, length, flags, destaddr, addrlen) Graça Bressan/LARC

13 close (socket) Essa chamada termina a conexão, desalocando um socket. Se vários processos estiverem compartilhando um mesmo socket, close decrementa um contador e desaloca o socket quando o contador atingir zero. O argumento para essa chamada é o descritor de socket. bind (socket, localaddr, addrlen) Uma aplicação chama bind para associar um endereço final local a um socket. É usado por servidores para especificar uma porta conhecida através da qual vai esperar por uma conexão. Os argumentos de um bind são: Descritor de socket. Ponteiro para um endereço final. Para os protocolos TCP/IP, o endereço final usa a estrutura sockaddr_in, que inclui um endereço IP e um número de porta. listen (socket, qlength) Quando um socket é criado, ele não é ativo nem passivo. Os servidores orientados a conexão, chamam listen para colocar o socket no modo passivo e deixa-lo preparado para receber conexões. O segundo parâmetro diz ao sistema operacional quantas solicitações de conexão devem ser enfileiradas para o socket. accept (socket, addr, addrlen) Após o servidor chama as funções socket para criar um socket, bind para especificar um endereço final e listen para colocar no modo passivo ele chama o accept para extrair a próxima solicitação de conexão. Um argumento do accept especifica o socket onde a conexão deve ser aceita. A chamada accept cria um novo socket para cada nova solicitação Graça Bressan/LARC

14 de conexão e retorna o descritor deste socket. Este novo socket utiliza a mesma porta do socket inicial. O servidor usa o novo socket apenas para a nova conexão e usa o socket original para aceitar novas solicitações. Uma vez aceita a nova conexão, o servidor pode transferir dados através do novo socket. Resumo de Comandos da Interface de Sockets Nome da Função socket connect write read close bind listen accept recv recvmsg recvfrom send sendmsg sendto Significado Cria um descritor para usar na comunicação Conecta a um par remoto Envia dados através da conexão Recebe dados vindos da conexão Termina comunicação e desaloca o socket Associa um endereço IP local e uma porta do protocolo a um socket Coloca o socket no modo passivo e estabelece o número de conexõestcp que devem ser enfileiradas. Aceita a próxima conexão. Recebe o próximo datagrama. Variação de recv Recebe o próximo datagrama e registra o endereço final do remetente Envia um datagrama Variação do send Envia um datagrama, normalmente a um endereço final Graça Bressan/LARC

15 pré-registrado shutdown getpeername getsockopt setsockopt Termina uma conexão TCP em uma ou ambas as direções Depois que uma conexão chega, obtem o endereço final remoto Obtem as opções atuais de um socket Muda a opção de um socket Utilitários para conversão de inteiros. O TCP/IP utiliza a representação chamada "ordem de bytes da rede" (network byte order), para inteiros usados nos cabeçalhos dos protocolos. Esta representação representa números inteiros com o byte mais significativo primeiro, isto é, no endereço menor (representação big endian). Embora o software de protocolos esconda a maioria dos detalhes, os programadores devem estar cientes deste padrão porque algumas rotinas de sockets exigem que argumentos sejam armazenados na ordem de bytes da rede. Ex.: A estrutura sockaddr_in usa a ordem de bytes da rede. A interface socket possui várias funções que fazem a conversão entre ordem de bytes da rede e a do host. Estas funções são usadas mesmo sabendo que a máquina tem a mesma ordem de bytes da rede. Assim, o programa fica portável para diversas arquiteturas. As rotinas de conversão são as seguintes: htons converte 16 bits da ordem do host para rede ntohs converte 16 bits da ordem da rede para host htonl converte 32 bits da ordem do host para rede ntohl converte 32 bits da ordem da rede para host Graça Bressan/LARC

16 Exemplo de Cliente/Servidor O Exemplo a ser examinado é de um programa servidor que cada vez que é acessado retorna o valor de um contador contendo o número de acessos ao servidor. O retorno é na forma da seguinte cadeia ASCII : "Este servidor foi contatado 10 vezes." O cliente é um programa simples que contata o servidor e obtém o texto acima. A porta escolhida para o servidor é a Funções Utilizadas pelo Programa gethostbyname (domínio) Parâmetro: nome do computador no domínio ao qual pertence Retorna o endereço IP deste computador. Ex.: endip = gethostbyname("merlin.usp.br"); getprotobyname (protocolo) Parâmetro: nome do protocolo Retorna número que identifica o protocolo no sistema. Ex.: numprot = getprotobyname("tcp"); Graça Bressan/LARC

17 Estrutura do Cliente e Servidor Código do Cliente /* client.c - código do programa cliente utilizando TCP */ #ifndef unix #define WIN32 #include <windows.h> #include <winsock.h> #else #define closesocket close #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #endif #include <stdio.h> #include <string.h> #define PROTOPORT 5193 /* número da port default */ Graça Bressan/LARC

18 extern int errno; char localhost[] = "localhost"; /* nome default do host */ /* * Programa: cliente * * Objetivo: alocar um socket, conectar ao servidor e imprimir * todas saídas. * Sintaxe: cliente [ host [porta] ] * host - nome do computador no qual o servidor * está executando. * porta - número da porta que o servidor está * utilizando. * Nota: Os argumentos são opcionais. Se o host não for * informado o cliente utiliza "localhost"; se nenhuma * porta de for especificada, o cliente utiliza a porta * default dada por PROTOPORT. * */ main(argc, argv) int argc; char *argv[]; { struct hostent *ptrh; /* ponteiro entrada tabela de host */ struct protoent *ptrp; /* ponteiro entrada tab. protocolo */ struct sockaddr_in sad;/* estrutura para end. do servidor */ int sd; /* descritor de socket */ int port; /* número da porta */ char *host; /* ponteiro para o nome do host */ int n; /* número de caracteres para leitura */ char buf[1000]; /* buffer para os dados do servidor */ #ifdef WIN32 WSADATA wsadata; Graça Bressan/LARC

19 WSAStartup(0x0101, &wsadata); #endif memset((char *)&sad,0,sizeof(sad)); /* limpa sockaddr */ sad.sin_family = AF_INET; /* seta familia Internet*/ /* analisa a linha de comando e obtem o nome do host e o número da porta caso tenham sido especificados. */ if (argc > 2) /* Verifica se a porta é especificada */ port = atoi(argv[2]); /* obtem a porta e conv. binário*/ else port = PROTOPORT; /* usa o número da porta default*/ if (port > 0) /* testa se o valor é válido */ sad.sin_port = htons ((u_short) port); else { fprintf(stderr,"numero de porta incorreta:%s\n",argv[2]); exit(1); if (argc > 1) /* Verifica o parâmetro que define o host */ host = argv[1]; /* se o host foi especificado */ else host = localhost; /* Converte nome de host no endereço IP equivalente */ ptrh = gethostbyname(host); if (((char *) ptrh) == NULL ) { fprintf(stderr,"host invalido: %s\n", host); exit (1); memcpy(&sad.sin_addr, ptrh->h_addr, ptrh->h_length); /* Obtem o número do protocolo de transporte TCP */ if (((int) (ptrp = getprotobyname("tcp"))) == 0){ fprintf(stderr,"nao pode mapear \"tcp\" \n"); exit (1); /* Cria o Socket */ Graça Bressan/LARC

20 sd = socket(pf_inet, SOCK_STREAM, ptrp->p_proto); if (sd < 0) { fprintf(stderr,"falha na criacao do socket\n"); exit(1); /* Conecta o socket ao servidor especificado */ if (connect(sd,(struct sockaddr*)&sad,sizeof(sad)) < 0) { fprintf(stderr,"falha na conexao\n"); exit(1); /* Le repetidamente dados do socket e escreve na tela */ n = recv(sd, buf, sizeof(buf), 0); while (n > 0) { write(1, buf, n); n = recv(sd, buf, sizeof(buf), 0); /* fecha o socket */ closesocket(sd); /* Termina o programa cliente */ exit(0); Código do Servidor /* servidor.c - código do programa servidor utilizando TCP */ #ifndef unix #define WIN32 #include <windows.h> #include <winsock.h> #else #define closesocket close #include <sys/types.h> #include <sys/socket.h> Graça Bressan/LARC

21 #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #endif #include <stdio.h> #include <string.h> #define PROTOPORT 5193 /* número da port default */ #define QLEN 6 /* tamanho da fila de requisicoes*/ int visitas = 0; /* cont. de conexões de clientes */ /* * Programa: servidor * * Objetivo: aloca um socket, e repetidamente executa: * (1) espera a proxima conexão de cliente (2) envia uma mensagem curta ao cliente (3) fecha a conexão (d) volta ao passo (1) * Sintaxe: servidor [porta] * * porta - número da porta que o servidor deverá utilizar * Nota: O número da porta é opcional. Se nenhuma porta for * especificada, o servidor utiliza a porta default dada * por PROTOPORT. * */ main(argc, argv) int argc; char *argv[]; { struct hostent *ptrh; /* ponteiro entrada tabela de host */ struct protoent *ptrp; /* ponteiro entrada tab. protocolo */ struct sockaddr_in sad;/* estrutura para end. do servidor */ Graça Bressan/LARC

22 struct sockaddr_in cad;/* estrutura para end. do cliente */ int sd, sd2; /* descritores de socket */ int port; /* número da porta */ char *host; /* ponteiro para o nome do host */ int alen; /* comprimento do endereço */ char buf[1000]; /* buffer para os dados do servidor */ #ifdef WIN32 WSADATA wsadata; WSAStartup(0x0101, &wsadata); #endif menset((char *)&sad,0,sizeof(sad)); /* limpa sockaddr */ sad.sin_family = AF_INET; /* seta familia Internet*/ sad.sin_addr.s_addr = INADDR_ANY; /* seta IP local */ /* analisa a linha de comando e obtem o nome o número da porta caso tenha sido especificado. */ if (argc > 1) /* se a porta é especificada */ port = atoi(argv[2]); /* obtem a porta e conv. binário*/ else port = PROTOPORT; /* usa o número da porta default*/ if (port > 0) /* testa se o valor é válido */ sad.sin_port = htons ((u_short) port); else { fprintf(stderr,"numero de porta incorreta:%s\n",argv[2]); exit(1); /* Obtem o número do protocolo de transporte TCP */ if (((int) (ptrp = getprotobyname("tcp"))) == 0){ fprintf(stderr,"nao pode mapear \"tcp\" \n"); exit (1); /* Cria o Socket */ sd = socket(pf_inet, SOCK_STREAM, ptrp->p_proto); Graça Bressan/LARC

23 if (sd < 0) { fprintf(stderr,"falha na criacao do socket\n"); exit(1); /* Faz o Bind do endereço local com o socket */ if (bind(sd,(struct sockaddr*)&sad,sizeof(sad)) < 0) { fprintf(stderr,"falha no bind\n"); exit(1); /* Coloca o soket no estado passivo, define fila de espera */ if (listen(sd,qlen) < 0) { fprintf(stderr,"falha no listen\n"); exit(1); /* Loop principal do servidor:aceita requisições de conexão*/ while (1) { alen = sizeof(cad); if ((sd2=accept(sd,(struct sockaddr*)&cad, &alen)) < 0) { fprintf(stderr,"falha no accept\n"); exit(1); visitas++; sprintf(buf,"este servidor foi contatado %d vez%e\n", visitas, visitas==1?".":"es."); send(sd2, buf, strlen(buf), 0); closesocket(sd2); Graça Bressan/LARC

24 Utilizando o Cliente com outro Servidor O cliente do exemplo é um programa genérico que realiza uma conexão TCP para obter uma seqüência de caracteres ASCII. Além de ser utilizado com o servidor do exemplo, também pode ser utilizado com outros servidores com operem de forma similar. Este é o caso do servidor DAYTIME disponível nos sistemas e que utiliza a porta 13. As chamadas a seguir retornam a data e hora de diferentes computadores. $cliente localhost 13 Mon May 12 10:20: $cliente xx.lcs.mit.edu 13 Mon May 12 09:23: Utilizando outro Cliente com o Servidor Outro cliente pode ser utilizado para testar o servidor do exemplo, como no caso do telnet que utiliza os mesmos parâmetros: nome do computador e número da porta do servidor. Exemplo de chamada: $telnet xx.yy.provedor.com 5193 Trying Connected to xx.yy.provedor.com 5193 Escape character is ^]. Este servidor foi contatado 4 vezes. Connection closed by foreign host. Serviço Stream No exemplo, o servidor executa apenas um send e o cliente realiza vários recv para obter o mesmo dado do send. A iteração termina quando o cliente obtém a condição de fim de arquivo, isto é, contador de bytes recebidos igual a zero. O TCP não garante que os dados sejam enviados em um único segmento por esta razão o cliente deve executar vários recv. Graça Bressan/LARC

25 Bloqueio nos Procedimentos de Sockets Muitos dos procedimentos de sockets causam o bloqueio do processo que executou o procedimento. No accept, por exemplo, o programa fica bloqueado até receber um pedido de conexão. No recv e read, de forma análoga, o programa ficará bloqueado até a chegada de dados. Existe tratamento assíncrono no TCP, que não bloqueia o programa quando este está a espera de algum dado ou conexão através de um socket. O tratamento assíncrono utiliza o comando select. Muita chamadas de sockets causam o bloqueio do processo que a executou. No accept, por exemplo, o programa fica bloqueado até receber um pedido de conexão. No recv e read, de forma análoga, o programa ficará bloqueado até a chegada de dados. Fim do módulo Programação com Socket Graça Bressan/LARC

TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão

TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão TROCA DE MENSAGENS SOCKETS Comunicando processos através de SOCKETS SOCKETS com conexão SOCKETS sem conexão SOCKETS Princípios dos sockets: 2. Fornecer uma interface geral permitindo a construção de aplicações

Leia mais

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

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas Apoio à Programação Distribuída bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas flexibilidade de programação disponibilidade da ferramenta facilidade de desenvolvimento e reuso

Leia mais

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

Programação com Sockets TCP e UDP - Cliente. Gustavo Leitão Programação com Sockets TCP e UDP - Cliente Gustavo Leitão 5/24/2010 INTRODUÇÃO Objetivo da Aula OBJETIVO DA AULA Apresentar ao aluno conceitos e prática em sockets INTRODUÇÃO O que é um socket? INTRODUÇÃO

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Comunicação memória compartilhada troca de mensagens base de comunicação em sistemas distribuídos Mensagens básicas send (destino, msg) receive (origem, mensagem) questões semântica

Leia mais

1 Projeto de software de clientes. 1

1 Projeto de software de clientes. 1 1 Projeto de software de clientes. 1 1.1 Introdução Aplicações clientes são conceitualmente mais simples que aplicações servidoras pois, normalmente, não manipulam concorrência explicita com múltiplos

Leia mais

Redes de Computadores (PPGI/UFRJ)

Redes de Computadores (PPGI/UFRJ) Redes de Computadores (PPGI/UFRJ) Aula 1: Apresentação do curso e revisão de interface de sockets 03 de março de 2010 1 2 O que é a Internet 3 4 Objetivos e página do curso Objetivos Apresentar a motivação,

Leia mais

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

Programação de Sockets em C/C++ Programação de Sockets em C/C++ Redes de Comunicação 2011/2012 1 Programação de Sockets em C/C++ 2 TCP 3 UDP Introdução Os sockets são um método de criar conexão entre processos, independente do protocolo.

Leia mais

Modelo Cliente/Servidor e Introdução a Sockets

Modelo Cliente/Servidor e Introdução a Sockets Modelo Cliente/Servidor e Introdução a Sockets MC 833 Programação em s de Computadores Instituto de Computação UNICAMP Juliana Freitag Borin O modelo OSI de 7 camadas Nó origem Nó destino Apresentação

Leia mais

sockets interprocess communication Taisy Weber

sockets interprocess communication Taisy Weber sockets interprocess communication Taisy Weber Comunicação entre processos Mecanismos Pipes, FIFO (named pipes), semáforos, message queues. Memória compartilhada. Sockets Definição, chamadas de sistemas,

Leia mais

Sistemas de Operação Sockets

Sistemas de Operação Sockets Sistemas de Operação Sockets O que é um socket? Uma interface de comunicação entre processos que podem ou não residir na mesma máquina, mas que não precisam estar relacionados. É usado normalmente para

Leia mais

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

06/10/2015. Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES. UDP User Datagram Protocol. UDP User Datagram Protocol Tecnologia em Jogos Digitais Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES O transporte dos dados na INTERNET é realizado por dois protocolos. PROTOCOLOS TCP E UDP

Leia mais

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

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151 Aula Prática Comunicação em SOCKTS Disciplina: INF01151 Prof. Dr. Cláudio Fernando Resin Geyer Monitor: Julio Anjos Agenda 1 - Objetivo Apresentar na prática a comunicação entre processos usando sockets

Leia mais

3. Projeto e implementação de Servidores

3. Projeto e implementação de Servidores 3. Projeto e implementação de Servidores 3.1 Introdução Este capítulo discute questões fundamentais relacionadas ao projeto de software servidor, incluindo acesso com conexão vs. sem conexão a servidores

Leia mais

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

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do

Leia mais

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

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 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 Engenharia Elétrica Eletrônica Tutorial: Programação

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

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 30 de novembro de 2010. Exercício 1: Considere:

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 30 de novembro de 2010. Exercício 1: Considere: TE090 - Prof. Pedroso 30 de novembro de 2010 1 Questões de múltipla escolha Exercício 1: Considere: I. O serviço de DNS constitui-se, em última instância, de um conjunto de banco de dados em arquitetura

Leia mais

Sistemas Operacionais:

Sistemas Operacionais: Sistemas Operacionais: Sistemas Distribuídos e Programação em Redes de Computadores Dierone Cesar Foltran Junior dcfoltran at yahoo.com Sistemas Distribuídos Sistemas Computacionais Distribuídos Lamport:

Leia mais

Relatório do Laboratório 3

Relatório do Laboratório 3 Relatório do Laboratório 3 Diogo Costa e Lucas Magrini Rigo 180188 e 161064 23 de setembro de 2011 Universidade Federal do Rio Grande do Sul INF01154 Redes de Computadores N For: Valter Roesler 1 Introdução

Leia mais

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP Alan Jelles Lopes Ibrahim, alan.jelles@hotmail.com Eduardo Machado Real, eduardomreal@uems.br

Leia mais

Introdução à Programação Sockets

Introdução à Programação Sockets 2002-2015 Volnys Bernal 1 Introdução à Programação Sockets Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2002-2015 Volnys Bernal 2 Agenda Interface

Leia mais

Cliente-servidor com Sockets TCP

Cliente-servidor com Sockets TCP Cliente-servidor com Sockets TCP Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2006/2007 c 2000 2006 Paulo Sérgio Almeida Cliente-servidor com Sockets

Leia mais

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

Aula 2 Arquitetura de Redes. Prof. Dr. S. Motoyama Aula 2 Arquitetura de Redes Prof. Dr. S. Motoyama 1 Arquitetura em camadas Arquitetura de RC Estruturar em camadas é decompor o problema de construção de uma rede em componentes gerenciáveis. A estruturação

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

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

29-Aug-07. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface Interfaces e Periféricos Redes como interfaces Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) Histórico Surgimento e popularização das redes criou a necessidade e oportunidade de usá-las como mecanismo

Leia mais

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

Introdução à Programação com Sockets. Fernando Jorge Silveira Filho Daniel Sadoc Menasché Introdução à Programação com Sockets Fernando Jorge Silveira Filho fernando@land.ufrj.br Daniel Sadoc Menasché sadoc@land.ufrj.br Visão Geral Objetivos: Realizar comunicação entre processos. Entender como

Leia mais

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

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006 Eng.ª Informática Redes de Computadores 4 de Julho de 2006 Leia atentamente as perguntas seguintes e responda de forma breve e precisa. Pode acompanhar a suas respostas com figuras de forma a torná-las

Leia mais

MC823 Laboratório de Teleprocessamento e Redes

MC823 Laboratório de Teleprocessamento e Redes MC823 Laboratório de Teleprocessamento e Redes Primeiro Semestre 2008 Carlos R. Senna Prof. Edmundo R. M. Madeira Tecnologias de Comunicação 2 MC823 Funções para cliente-servidor UDP 3 well-known port

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre

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

Protocolo de resolução de endereços: ARP

Protocolo de resolução de endereços: ARP Protocolo de resolução de endereços: ARP Introdução, cache ARP, formato do pacote ARP, exemplos de ARP em acção, proxy ARP, ARP "Gratuito, comando arp. Endereço físico Os endereços IP fazem apenas sentido

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

Um Tutorial sobre Sockets Parte I

Um Tutorial sobre Sockets Parte I Um Tutorial sobre Sockets Parte I Por Antonio Marcelo Iniciando As grandes ferramentas utilizadas por especialistas de segurança, hackers e crakers tem como base a linguagem C ANSI ou C ++. Muitos dos

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

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013 MC714 Sistemas Distribuídos 2 semestre, 2013 Tipos de comunicação Middleware: serviço intermediário na comunicação de nível de aplicação. Fig. 67 Ex.: correio eletrônico Comunicação é persistente. Middleware

Leia mais

Passagem de Mensagens

Passagem de Mensagens Passagem de Mensagens Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 22 de novembro de 2011 Francisco Silva (UFMA/LSD)

Leia mais

Redes de Computadores. Camada de Transporte

Redes de Computadores. Camada de Transporte Redes de Computadores Camada de Transporte Objetivo! Apresentar as características da camada de transporte da arquitetura TCP/IP! Apresentar os serviços fornecidos pela camada de transporte! Estudar os

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

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

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP 2004-2015 Volnys Bernal 1 2004-2015 Volnys Bernal 2 Resumo das Chamadas UDP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2015 Volnys Bernal

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE SERVIÇO SEM CONEXÃO E SERVIÇO ORIENTADO À CONEXÃO Serviço sem conexão Os pacotes são enviados de uma parte para outra sem necessidade de estabelecimento de conexão Os pacotes

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

Programação em C/C++

Programação em C/C++ OO Engenharia Eletrônica - Programação em C/C++ Slides 20: TCP/IP em Winsocks 2. API do Windows para programar aplicativos que utilizam o protocolo TCP/IP. Prof. Jean Marcelo SIMÃO TCP/IP em Winsocks 2

Leia mais

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

Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída www.dca.ufrn. Programação em Rede Baseada em Java Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída www.dca.ufrn.br/~affonso/cursos Definiçõs Básicas Uma rede é um conjunto de computadores

Leia mais

Tipos de Servidores. Servidores com estado

Tipos de Servidores. Servidores com estado Tipos de Servidores Com Estado X Sem Estado Sequenciais X Concorrentes Com Conexão X Sem Conexão Servidores com estado Servidores com estado armazenam informação sobre cada cliente. Operações podem ser

Leia mais

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação 1 Introdução à Camada de Transporte Camada de Transporte: transporta e regula o fluxo de informações da origem até o destino, de forma confiável.

Leia mais

A Camada de Transporte

A Camada de Transporte A Camada de Transporte Romildo Martins Bezerra CEFET/BA s de Computadores II Funções da Camada de Transporte... 2 Controle de conexão... 2 Fragmentação... 2 Endereçamento... 2 Confiabilidade... 2 TCP (Transmission

Leia mais

Sistemas Distribuídos

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

Leia mais

Aula 6 Modelo de Divisão em Camadas TCP/IP

Aula 6 Modelo de Divisão em Camadas TCP/IP Aula 6 Modelo de Divisão em Camadas TCP/IP Camada Conceitual APLICATIVO TRANSPORTE INTER-REDE INTERFACE DE REDE FÍSICA Unidade de Dados do Protocolo - PDU Mensagem Segmento Datagrama /Pacote Quadro 01010101010100000011110

Leia mais

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

Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP) II - UFRGS Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP) Valter Roesler Universidade Federal do Rio Grande do Sul (UFRGS) Instituto de Informática

Leia mais

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla - 1 - - 2 - COMUNICAÇÃO INTER PROCESSOS DISTRIBUÍDOS. - 3 - - 4 - Os sockets UDP e TCP são a interface provida pelos respectivos protocolos. Pode-se dizer que estamos no middleware de sistemas distribuídos

Leia mais

Cliente-servidor com Sockets TCP

Cliente-servidor com Sockets TCP Cliente-servidor com Sockets TCP Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2007/2008 c 2000 2007 Paulo Sérgio Almeida Cliente-servidor com Sockets

Leia mais

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

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Sistemas Distribuídos (Parte 4 - Aplicação Distribuída)

Sistemas Distribuídos (Parte 4 - Aplicação Distribuída) Unidade de Gestão da Educação Presencial - GEDUP Pós-graduação em Redes de Computadores Sistemas Distribuídos (Parte 4 - Aplicação Distribuída) Prof. Ms. Tomás Dias Sant Ana Varginha, 2006 Sumário 1. INTRODUÇÃO...1

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - MODELO DE REFERÊNCIA TCP (RM TCP) 1. INTRODUÇÃO O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande

Leia mais

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

Programação com Sockets. Redes de Computadores I 2007/2008 Programação com Sockets Redes de Computadores I 2007/2008 Arquitectura das Aplicações Cliente-Servidor Peer-to-Peer (P2P) Híbrido Peer-to-Peer e Cliente-Servidor 09-11-2007 Universidade do Minho 1 Comunicação

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

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo

Leia mais

INTERNET = ARQUITETURA TCP/IP

INTERNET = ARQUITETURA TCP/IP Arquitetura TCP/IP Arquitetura TCP/IP INTERNET = ARQUITETURA TCP/IP gatewa y internet internet REDE REDE REDE REDE Arquitetura TCP/IP (Resumo) É útil conhecer os dois modelos de rede TCP/IP e OSI. Cada

Leia mais

Permite o acesso remoto a um computador;

Permite o acesso remoto a um computador; Telnet Permite o acesso remoto a um computador; Modelo: Cliente/Servidor; O cliente faz um login em um servidor que esteja conectado à rede (ou à Internet); O usuário manipula o servidor como se ele estivesse

Leia mais

Obter conhecimentos básicos sobre programação socket para desenvolver softwares clientes.

Obter conhecimentos básicos sobre programação socket para desenvolver softwares clientes. Objetivo: Obter conhecimentos básicos sobre programação socket para desenvolver softwares clientes. Atividade 1 Estude, compile, corrija (se necessário) e teste o programa hostbyaddr.c. Modifique o programa

Leia mais

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

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

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

Redes de Computadores. Arquitetura de Protocolos Profa. Priscila Solís Barreto Redes de Computadores Arquitetura de Protocolos Profa. Priscila Solís Barreto REDE... Um sistema de comunicações para conectar sistemas finais Sistemas finais? =hosts PCs, estações de trabalho componentes

Leia mais

Resolução de Nomes e Endereços

Resolução de Nomes e Endereços Resolução de Nomes e Endereços MC833 Programação em Redes de Computadores Instituto de Computação UNICAMP Carlos A. Astudillo Trujillo Roteiro 1.Noção sobre nomes e funcionamento do DNS 2.Funções para

Leia mais

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores. FTP FTP - Protocolo O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores. A partir do FTP usuários podem receber ou enviar arquivos de ou para outros computadores

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Máscaras de sub-rede. Fórmula

Máscaras de sub-rede. Fórmula Máscaras de sub-rede As identificações de rede e de host em um endereço IP são diferenciadas pelo uso de uma máscara de sub-rede. Cada máscara de sub-rede é um número de 32 bits que usa grupos de bits

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos Sockets Aplicações Protocolo de Aplicação FTP, SMTP, HTTP, Telnet, SNMP, etc. sockets TCP, UDP IP Data Link Ethernet, Token Ring, FDDI, etc Física Conjunto de APIs

Leia mais

Sistemas Distribuídos Java Sockets

Sistemas Distribuídos Java Sockets Sistemas Distribuídos Java Sockets Departamento de Informática, UFMA Graduação em Ciência da Computação Francisco José da Silva e Silva 1 Introdução a Java Sockets Socket é o ponto final de um enlace de

Leia mais

Redes de Computadores I Conceitos Básicos (6 a. Semana de Aula)

Redes de Computadores I Conceitos Básicos (6 a. Semana de Aula) Redes de Computadores I Conceitos Básicos (6 a. Semana de Aula) Prof. Luís Rodrigo lrodrigo@lncc.br http://lrodrigo.lncc.br 2013.09 v2 2013.09.10 (baseado no material de Jim Kurose e outros) Arquiteturas

Leia mais

Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação

Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação Sistemas Operativos 2015-2016 O que construímos até agora... A abstração de processo 2 A possibilidade

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

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

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes Sockets em Ruby Curso de Tecnologia em Redes de Computadores Programação para Redes Sockets em Ruby A biblioteca padrão de Ruby oferece um conjunto de classes para a manipulação de sockets. require socket

Leia mais

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores (RCOMP 2014/2015) Redes de Computadores (RCOMP 2014/2015) Desenvolvimento de aplicações de rede UDP e TCP 1 Protocolo UDP ( User Datagram Protocol ) Tal como o nome indica, trata-se de um serviço de datagramas, ou seja

Leia mais

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,

Leia mais

Modelos de Camadas. Professor Leonardo Larback

Modelos de Camadas. Professor Leonardo Larback Modelos de Camadas Professor Leonardo Larback Modelo OSI Quando surgiram, as redes de computadores eram, em sua totalidade, proprietárias, isto é, uma determinada tecnologia era suportada apenas por seu

Leia mais

Protocolos, DNS, DHCP, Ethereal e comandos em Linux

Protocolos, DNS, DHCP, Ethereal e comandos em Linux Redes de Computadores Protocolos, DNS, DHCP, Ethereal e comandos em Linux Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006 Endereços e nomes Quaisquer duas estações

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos Manipulação de Arquivos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Tipo

Leia mais

Projeto: Camada Independente de Dispositivo

Projeto: Camada Independente de Dispositivo Projeto: Camada Independente de Dispositivo Introdução Esse documento tem como finalidade demonstrar como será implementada a Camada Independente de Software. Estrutura A camada independente de software

Leia mais

Redes. Pablo Rodriguez de Almeida Gross

Redes. Pablo Rodriguez de Almeida Gross Redes Pablo Rodriguez de Almeida Gross Conceitos A seguir serão vistos conceitos básicos relacionados a redes de computadores. O que é uma rede? Uma rede é um conjunto de computadores interligados permitindo

Leia mais

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1 14. Arquivos W. Celes e J. L. Rangel Neste capítulo, apresentaremos alguns conceitos básicos sobre arquivos, e alguns detalhes da forma de tratamento de arquivos em disco na linguagem C. A finalidade desta

Leia mais

Unix: Sistema de Arquivos. Geraldo Braz Junior

Unix: Sistema de Arquivos. Geraldo Braz Junior Unix: Sistema de Arquivos Geraldo Braz Junior 2 Arquivos Um arquivo é visto pelo SO apenas como uma seqüência de bytes: nenhuma distinção é feita entre arquivos ASCII, binários, etc.; Muitos programas

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Agenda Motivação Objetivos Histórico Família de protocolos TCP/IP Modelo de Interconexão Arquitetura em camadas Arquitetura TCP/IP Encapsulamento

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Aplicação Slide 1 Aplicação e Protocolo de Aplicação Aplicação: processos distribuídos em comunicação rodam nos computadores usuários da rede como programas de usuário trocam

Leia mais

Camada de Transporte. Protocolos TCP e UDP

Camada de Transporte. Protocolos TCP e UDP Camada de Transporte Protocolos TCP e UDP Protocolo UDP Protocolo de transporte da Internet sem gorduras Serviço best effort, segmentos UDP podem ser: perdidos entregues fora de ordem para a aplicação

Leia mais

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

Sockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27 Sockets André Restivo Faculdade de Engenharia da Universidade do Porto April 29, 2013 André Restivo (FEUP) Sockets April 29, 2013 1 / 27 Sumário 1 Introdução 2 Cliente/Servidor 3 API C++ 4 André Restivo

Leia mais

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet.

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet. Origem: Surgiu na década de 60 através da DARPA (para fins militares) - ARPANET. Em 1977 - Unix é projetado para ser o protocolo de comunicação da ARPANET. Em 1980 a ARPANET foi dividida em ARPANET e MILINET.

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Motivação Realidade Atual Ampla adoção das diversas tecnologias de redes de computadores Evolução das tecnologias de comunicação Redução dos

Leia mais

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

Introdução à Redes de Computadores

Introdução à Redes de Computadores Introdução à Redes de Computadores 1 Agenda Camada 4 do modelo OSI 2 1 Camada 4 do modelo OSI 3 Camada 4 - Transporte O termo "qualidade de serviço" é freqüentemente usado para descrever a finalidade da

Leia mais

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES O QUE É PROTOCOLO? Na comunicação de dados e na interligação em rede, protocolo é um padrão que especifica o formato de dados e as regras a serem seguidas. Sem protocolos, uma rede

Leia mais