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

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

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

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

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

Programação com Sockets

Comunicação entre Processos

Aula de Socket. Rafael De Tommaso do Valle

Sistemas Distribuídos

Comunicação entre processos. Sistema centralizado

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

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

Sistemas Distribuídos

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

Redes de Computadores e Aplicações

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

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

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

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

camada de transporte SOCKET TCP UDP

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

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

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

Introdução à Programação Sockets

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

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

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

PROTOCOLOS DE COMUNICAÇÃO

Módulo 3 Nível Transporte

Sistemas de Operação Sockets

Sistemas Distribuídos Aula 2

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

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

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

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

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

Comunicação entre Processos

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

TRANSPORTE. Prof. Me. Hélio Esperidião

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

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

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

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

sockets interprocess communication Taisy Weber

Sistemas Operacionais II

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

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

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Modelo Cliente/Servidor e Introdução a Sockets

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

Redes de Computadores. Prof. André Y. Kusumoto

Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo

Redes de Computadores

Arquitetura de sistemas distribuídos

Camada de Transporte Protocolos TCP e UDP

Programação com sockets (em Java)

Capítulo 6. A camada de transporte. slide 1 1 reservados.

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

Sockets e Threads em Java

Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP. Prof. M.e Helber Wagner da Silva

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Comunicação entre Processos. 1. Pipes 2. Fifos 3. Sockets

Redes de Computadores

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

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

Redes de Computadores. Camada de Transporte

Protocolos de Rede. Protocolos em camadas

Canais de Comunicação

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

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

Nível de Transporte Portas, Protocolos UDP e TCP

Arquitetura TCP/IP - Internet Protocolo IP Protocolo ICMP

Protocolos de Interligação de Redes Locais e a Distância Camada de Transporte

Redes de Computadores II. Camada de Transporte Visão Geral de Sockets

Sistemas Operacionais Distribuídos e de Redes

Resumo P2. Internet e Arquitetura TCP/IP

Arquitetura e Protocolos de Rede TCP/IP

Redes de Computadores

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

FUNDAMENTOS DE REDES DE COMPUTADORES. Lista de Exercícios AV2-01. Luiz Leão

Por Fernando Koyanagi

User Datagram Protocol

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

Comunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa

Redes de Computadores

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

Redes de Computadores

Problemas relacionados a exclusão mútua

Comunicação entre Processos

Redes de Computadores e Telecomunicações - Camada de Transporte

Protocolos e Arquiteturas de Redes. Thiago Leite

INFO ARQ REDES. Prova 2 Bimestre. Obs: Questões RASURADAS são consideradas como ERRADAS GABARITO

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

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

Programação TCP/IP (sockets)

Prof. Marcelo Cunha Parte 6

Modelo de Referência TCP/IP

Transcrição:

Sockets - Conceitos Básicos COMUNICAÇÃO ENTRE PROCESSOS Sockets! Sockets são uma forma de IPC (InterProcess Communication ) fornecida pela 4.3 BSD que fornecem comunicação entre processos residentes em sistema único ou processos residentes em sistemas remotos. Sistemas Distribuídos 86 Sistemas Distribuídos 87 Conceitos Básicos! Sockets criados por diferentes programas usam nomes para se referenciar! Esses nomes geralmente devem ser traduzidos em endereços para uso! Um endereço é especificado por um domínio Processo Usuário Processo Usuário SO IPC em um mesmo sistema Sistemas Distribuídos 88 Sistemas Distribuídos 89 Tipos de Sockets Processo Usuário Processo usuário "STREAM SOCKET - Provê sequenciamento e fluxo bidirecinal. Este tipo de socket transmite dados sobre um base confiável e com capacidade de transmissão de dados expressos. "No domínio UNIX, o SOCKET_STREAM trabalha igual a um pipe. No domínio INTERNET este tipo de socket é implementado sobre TCP/IP. SO Comunicação de Processos Remotos SO Sistemas Distribuídos 90 Sistemas Distribuídos 91 1

Tipos de Sockets Tipos de Sockets "SOCK_DGRAM - Suporta fluxo de dados bidirecional mas não oferece um serviço confiável como STREAM_SOCKET. "Mensagens duplicadas, perdidas, e em ordem diferente (não sequenciadas) são problemas que podem aparecer neste tipo de socket. " RAW_SOCKET - permite o acesso a interface de protocolos de rede. Disponível para usuários avançados e que possuam autoridade de usuário root " permite que uma aplicação acesse diretamente protocolos de comunicação de baixo nível. " permite a construção de novos protocolos sobre os protocolos de baixo nível já existentes " normalmente orientados a datagrama Sistemas Distribuídos 92 Sistemas Distribuídos 93 Domínios e Protocolos Domínios e Protocolos! O espaço no qual o endereço é especificado é chamado de domínio! Domínios básicos: # INTERNET - AF_INET - os endereços consistem do end. de rede da máquina e da identificação do no. da porta, o que permite a comunicação entre processos de sistemas diferentes # Unix: AF_UNIX - os processos se comunicam referenciando um pathname, dentro do espaço de nomes do sistema de arquivos! Domínio Internet " Implementação Unix do protocolotcp/udp/ip " Consiste de: # end. de rede da máquina # identificação do no. da porta " Permite a comunicação entre máquinas diferentes " Conexões sob a forma de sockets do tipo stream e do tipo datagramas Sistemas Distribuídos 94 Sistemas Distribuídos 95 Tipos de Sockets Protocolos TCP/IP Processo A Processo B! Socket Stream "conexões confiáveis! Datagramas "não fornecem segurança TCP/UDP IP Interface hardware TCP/UDP Sistemas Distribuídos 96 Sistemas Distribuídos 97 2

IP TCP Internetwork Protocol Roteamento de mensagens na rede Unidade: datagramas Fragmentação de pacotes (se > MTU) Entrega não confiável de pacotes Transmission Control Protocol Para comunicação longa (conexão) Confiável Transmissão de fluxo de dados: Não respeita limites de mensagens Baixo desempenho em comunicações curtas (?) Usos típicos: Loginremoto Transferência de arquivo Sistemas Distribuídos 98 Sistemas Distribuídos 99 UDP Porta User Datagram Protocol Para comunicação curta (sem conexão) Não confiável Transmissão de pacotes: respeita limites de mensagens Pouco prático para comunicações longas (confiabilidade precisa ser programada) Usos típicos: RPC Broadcast Endereço para um processo comunicante Inteiro de 16 bits (definido pelo usuário) Portas 1 a 1023 são do sistema Portas de TCP independentes das de UDP Sistemas Distribuídos 100 Sistemas Distribuídos 101 Associação Comunicação por sockets Definida por 1 Um protocolo: TCP ou UDP Endereço IP local Porta local Endereço IP distante Porta distante kernel socket conexão socket kernel rede Sistemas Distribuídos 102 Sistemas Distribuídos 103 3

Cria um socket com - Família (ou domínio): UNIX, Internet, XNS - Tipo: stream, datagrama, puro - Protocolo (por conseq.): TCP, UDP Atribui ao socket - Endereço Internet (pode ser any ) - Porta de comunicação sockfd = (int) socket (int family, int type, int protocol) ret = (int) bind (int sockfd, struct sockaddr *myaddr, intaddrlen) Sistemas Distribuídos 104 Sistemas Distribuídos 105 Declara - Que está pronto para receber conexões - Até quantas devem ser enfileiradas Bloqueia até que haja pedido Quando houver algum, aceita ret = (int) listen (int sockfd, intbacklog) newsock = (int) accept (int sockfd, struct sockaddr *peer, int*addrlen) Sistemas Distribuídos 106 Sistemas Distribuídos 107 Cria um socket idêntico ao do servidor (mesma família e tipo) sockfd = (int) socket (int family, int type, int protocol) Pede uma conexão ao servidor Fica bloqueado ou retorna erro Se aceito, fecha a conexão ret = (int) connect (int sockfd, struct sockaddr *servaddr, int addrlen) Sistemas Distribuídos 108 Sistemas Distribuídos 109 4

Envia uma seqüência de bytes pela conexão Recebe msg enviada por nbytes = (int) send (int sockfd, char *buf, int nbytes, int flags) nbytes = (int) recv (int sockfd, char *buf, int nbytes, int flags) Sistemas Distribuídos 110 Sistemas Distribuídos 111 ret = (int) close (int sockfd) Transmite ou confirma msgs faltantes Encerra a conexão Fecha o socket Diagrama completo processamento resposta close ( ) close ( ) processamento resposta close ( ) close ( ) Sistemas Distribuídos 112 Sistemas Distribuídos 113 e servidor criam seus sockets Família = Internet, tipo = datagrama e servidor definem endereços Sistemas Distribuídos 114 Sistemas Distribuídos 115 5

Recebe pacote enviado do endereço informado Se não houver nada, bloqueia Envia pacote para o endereço informado nbytes = (int) recvfrom (int sockfd, char*buf, int nbytes, int flags, struct sockaddr *from, int*addrlen) sendto ( ) nbytes = (int) recvfrom (int sockfd, char*buf, int nbytes, int flags, struct sockaddr *from, int*addrlen) Sistemas Distribuídos 116 Sistemas Distribuídos 117 Comunicação entre processos Diagrama completo! Exercícios: "classifique cada uma das primitivas de pipes e sockets com relação # a modelo implícito e explicito de endereçamento # a comunicação bloqueante e não bloqueante # e a bufferização de mensagens processamento sendto ( ) sendto ( ) resposta close ( ) close ( ) # Obs.: analise o maior número possível de opções oferecidas por estas interfaces "usando PIPES, teste, com programas: # uso bidirecional de um pipe (existe?); # uso concorrente de um pipe; Sistemas Distribuídos 118 Sistemas Distribuídos 119 Comunicação entre processos! Exercícios: "usando sockets em plataforma linux ou solaris, e comunicação no modo datagrama, # implemente em linguagem C um mecanismo de comunicação com suporte a falhas, do tipo two-message # analise bem a interface de sockets para utilizar o máximo de sua funcionalidade "implemente um servidor concorrente (trata vários clientes simultaneamente) de operações matemáticas utilizando pipes e depois sockets (tipo stream) # os clientes mandam os operandos e a operação, ficam a espera do resultado, e voltam a sortear operandos para o próximo pedido # o servidor calcula e manda o resultado devolta para os vários clientes # modifique a implementação para trabalhar com sockets no modo datagrama, adicionando o mecanismo de confirmação da questão anterior Sistemas Distribuídos 120 6