Introdução à Programação Sockets

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

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

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

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

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

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

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

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

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

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

Aula de Socket. Rafael De Tommaso do Valle

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

Tecnologia de Redes. Protocolo TCP

Agenda. Rede de Computadores (Técnico em Informática) Protocolo TCP Transmission Control Protocol. Introdução ao Protocolo TCP

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

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

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

Tecnologia de Redes. Arquitetura de Rede de Computadores

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

Protocolo TCP. Redes TCP-IP. Agenda. Protocolo TCP Transmission Control Protocol. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP

! Introdução! Pacote TCP! Número de Seqüência TCP! Estados TCP. " Estabelecimento de conexão " Troca de dados " Encerramento de conexão. !

Sistemas Operacionais II

Módulo 08 - Protocolo IP Página 1. Tecnologia de Redes. Volnys B. Bernal Versão de 15/06/2000. Agenda. Tecnologia de Redes

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

Agenda. Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao protocolo TCP: Exemplo

Arquitetura de Redes. Redes TCP-IP. Agenda. Introdução à Arquitetura TCP/IP. Tipos de Serviços. Modelo de Referênca ISO/OSI

Comunicação entre processos. Sistema centralizado

Sistemas de Operação Sockets

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

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

Resolução de Nomes Volnys Borges Bernal Deparatamento de Sistemas Eletrônicos Escola Politécnica da USP

Programação com Sockets

Comunicação entre Processos

Protocolos de Rede. Protocolos em camadas

Volnys Borges Bernal. Agenda. Resolução de Nomes. Introdução à resolução de nomes. Introdução à resolução de nomes

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

Redes de Computadores e Aplicações

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

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

Redes TCP-IP. Protocolo ICMP. Pilha TCP/IP. Protocolo ICMP Internet Control Message Protocol. Introdução ao Protocolo ICMP

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

Agenda. Rede de Computadores (Técnico em Informática) Modelo em Camadas. Modelo em Camadas. Modelo em Camadas 11/3/2010

Comunicação entre Processos

Redes de Computadores

Protocolo ICMP Internet Control Message Protocol. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP

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

Tecnologia de Redes. Protocolo ICMP

sockets interprocess communication Taisy Weber

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

Sistemas Distribuídos

Modelo de Referência TCP/IP

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

Modelo de Referência TCP/IP

Programação TCP/IP (sockets)

Um Tutorial sobre Sockets Parte I

Projeto e Desenvolvimento de Aplicações Cliente / Servidoras Para a INTERNET

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

camada de transporte SOCKET TCP UDP

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

Redes de Computadores

Programação com sockets (em Java)

Sockets IPv6 para C/C++ - Criando e Portando Aplicações

Camada de Transporte Protocolos TCP e UDP

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

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

Redes de Computadores

Redes de Computadores. Modelo TCP/IP. Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior

Tecnologia de Redes. NAT e Masquerade

Curso de Pós-Graduação Lato-Sensu em Redes de Computadores. Arquitetura TCP/IP. Hermes Senger DC/UFSCar 2012

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

Modelo OSI x Modelo TCP/IP

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

MC823 Atividade 1: Cliente/Servidor TCP Iterativo. 3 Modificando o servidor para retornar data e hora

Protocolos de Aplicação

TCP/IP Protocolos e Arquiteturas

Protocolos de Aplicação

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

Nome do Curso: Técnico em Informática. Nome da Disciplina: Redes de Computadores. Número da Semana: 2. Nome do Professor: Dailson Fernandes

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

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

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

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

Problemas relacionados a exclusão mútua

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

Capítulo 6. A camada de transporte

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

Programação TCP/IP. Protocolos TCP e UDP

Módulo 3 Nível Transporte

Sistemas Operacionais:

Programação Orientada a Objetos para Redes de Computadores. Modelo Cliente-Servidor. Comunicação entre Processos. O que é um Socket?

Programação Orientada a Objetos para Redes de Computadores

Padrões (arquiteturas) de rede

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Data and Computer Network Endereçamento IP

Arquiteturas de Protocolos. Aplicação. Redes. Aplicações cliente-servidor. Aplicações peer-to-peer

Redes de Computadores

Introdução Modelo TCP/IP Protocolo TCP/IP Material Extra Finalizando. Arquitetura TCP/IP

IPv6 (Parte 2: Mecanismos de Transição)

Transcrição:

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 de programação sockets Socket Address Socket Socket address Par Socket Estrutura sockaddr_in Utilização de sockets com a Pilha TCP/IP Estrutura de dados mantida pelo sistema operacional

2002-2015 Volnys Bernal 3 Interface de Programação Sockets

2002-2015 Volnys Bernal 4 Interface de Programação Sockets Interface de programação mais usual para comunicação sobre a pilha TCP/IP Permite à uma aplicação (processo) estabelecer: Sessão de comunicação UDP Conexão TCP Sessão de comunicação IP

2002-2015 Volnys Bernal 5 Interface de Programação Sockets Aplicação NFS NIS SMB Camada de Aplicação DNS HTTP FTP Telnet SMTP POP RPC NetBios Camada de transporte UDP TCP Camada de redes IP ICMP IGMP Camada intra-rede Ethernet ARP Fast Ethernet RARP Gigabit Ethernet meio físico PPP SLIP Frame Relay

2002-2015 Volnys Bernal 6 Interface de Programação Sockets Processos Aplicação Interface Sockets Núcleo do Sistema Operacional Device Driver Placa de Rede Meio Físico UDP ICMP IP ARP Ethernet TCP IGMP PPP

2002-2015 Volnys Bernal 7 Interface de Programação Sockets Principais funções da interface de programação sockets UDP TCP socket X x bind x x listen x connect x x accept x read x x write x x recv x x send x x recvfrom x x sendto x x close x x shutdown x X

2002-2015 Volnys Bernal 8 Interface de Programação Sockets socket ( ) connect ( ) send ( ) recv ( ) send ( ) recv ( ) Cliente UDP Datagrama UDP Datagrama UDP Datagrama UDP Datagrama UDP OPEN Servidor socket ( ) bind ( ) recvfrom ( ) sendto ( ) recvfrom ( ) sendto ( ) Close( )

2002-2015 Volnys Bernal 9 Interface de Programação Sockets socket ( ) connect ( ) send ( ) Cliente TCP CLOSED CLOSED LISTEN SYN SYN_SENT SYN,ACK SYN_RCVD ACK ESTABLISHED ESTABLISHED Dado ACK Servidor socket ( ) bind ( ) listen ( ) accept ( ) recv ( )

Socket Address 2002-2015 Volnys Bernal 10

2002-2015 Volnys Bernal 11 Socket address Socket Socket = Soquete = Plug de comunicação Identifica um extremo da comunicação entre duas aplicações Servidor Server Protocolo de aplicação

2002-2015 Volnys Bernal 12 Socket address Socket address Endereço que permite identificar um soquete Socket address para IPv4 é Endereço IP Porta Protocolo de transporte Servidor Server Protocolo de aplicação Socket Address = End. IP + Porta/Proto

2002-2015 Volnys Bernal 13 Socket address Par Socket Identifica uma sessão de comunicação Identificado por dois Socket Adddress Cliente Servidor Protocolo de aplicação Server Protocolo de aplicação End. IP Porta/Proto End. IP Porta/Proto

2002-2015 Volnys Bernal 14 Socket address Estrutura sockaddr Estrutura genérica para representar o endereço de um socket Cada protocolo possui uma forma específica de representar o endereço de um socket struct sockaddr { u_short sa_family; char sa_data[14]; } struct sockaddr sa_family sa_data

2002-2015 Volnys Bernal 15 Socket address Address Family Identifica o tipo de endereço utilizado Exemplo de identificadores para address family: AF_INET - para endereços IPv4 AF_INET6 - para endereços IPv6 struct sockaddr { u_short sa_family; char sa_data[14]; } struct sockaddr sa_family sa_data

2002-2015 Volnys Bernal 16 Socket address Estrutura sockaddr_in Quando for um endereço IPv4 (address family=af_inet) o endereço do socket pode ser representado utilizando a estrutura socket address Internet. Formato geral struct sockaddr { u_short sa_family; char sa_data[14]; } Formato específico para IPv4 struct sockaddr_in { u_short u_short u_long sin_family; sin_port; sin_addr char sin_zero[8]; }

2002-2015 Volnys Bernal 17 Socket address Nos sistemas linux atuais, a definição de sockaddr é: struct sockaddr_in { sa_family_t sin_family; // address family: AF_INET (IPv4) in_port_t sin_port; // porta em network byte order struct in_addr sin_addr; // endereço IP }; struct in_addr { uint32_t s_addr; // endereço IP em network byte order };

2002-2015 Volnys Bernal 18 Socket address Estrutura customizada para socket address internet Estrutura geral socket address struct sockaddr_in sin_family sin_port sin_addr sin_zero struct sockaddr Mapeada em sa_family sa_data

2002-2015 Volnys Bernal 19 Utilização de sockets com a Pilha TCP/IP

2002-2015 Volnys Bernal 20 Sockets com a Pilha TCP/IP Quando a chamada socket() é ativada para uma comunicação sobre a pilha TCP/IP, o sistema operacional aloca uma estrutura socket, contendo inicialmente somente informações a respeito de: Família de protocolo Tipo de serviço Protocolo de interação (IP, UDP, TCP,...) Existem diversas pilhas de protocolos de rede (além da pílha TCP/IP), cada uma com diferentes protocolos e formatos de endereço. Para cada uma destas, existem diferentes valores que podem ser utilizados para identificar a Família de protocolos, o tipo de fluxo e o protocolo de interação

2002-2015 Volnys Bernal 21 Sockets com a Pilha TCP/IP No caso da utilização da pilha TCP/IP com IPv4 os valores possíveis são: Protocol Family (PF) Possibilita identificar o tipo de protocolo utilizado Deve ser utilizado PF_INET Address Family (AF) Possibilita identificar o tipo de endereço utilizado Deve ser utilizado AF_INET Protocol Protocolo de interação Valores possíveis: TCP, UDP ou IP Type Tipo de serviço oferecido Valores possíveis: SOCK_STREAM, SOCK_DGRAM ou SOCK_RAW

2002-2015 Volnys Bernal 22 Estruturas de dados internas ao sistema operacional

2002-2015 Volnys Bernal 23 Estruturas de dados internas ao sistema operacional Tabela de descritores de arquivos abertos No momento de abertura de um arquivo ou de um socket é alocada uma entrada da tabela de descritores de arquivos abertos Cada entrada da tabela de descritores contém um índice para outra tabela que contém informações a respeito do arquivo ou socket O índice da tabela (chamado de descritor) é utilizado pela aplicação para identificar o arquivo ou socket em operações futuras Tabela de descritores de arquivos abertos 0 1 2 3 4 5 Arquivo Arquivo Arquivo Socket

2002-2015 Volnys Bernal 24 Estruturas de dados internas ao sistema operacional Estrutura socket: Para cada sessão de comunicação UDP, TCP ou IP é necessário alocar uma estrutura socket Esta e outras estruturas internas ao sistema operacional mantém informações a respeito da sessão de comunicação (TCP ou UDP) completa ou embrionária protocol family service local socket address remote socket address Estrutura interna do SO (socket) PF_INET SOCK_STREAM Observação: Visão simplificada da estrutura. O programador nunca manipula a estrutura socket diretamente.

2002-2015 Volnys Bernal 25 Estruturas de dados internas ao sistema operacional Estruturas internas ao sistema operacional Observação: Visão simplificada O programador não manipula estas estruturas diretamente. Tabela de descritores 0 1 2 3 4 5 Socket Descriptor protocol family service local socket address remote socket address Estrutura interna do SO (socket) PF_INET SOCK_STREAM

2002-2015 Volnys Bernal 26 Estruturas de dados internas ao sistema operacional Lado servidor com protocolo IPv4 (Internet) family service local socket address remote socket address Estrutura interna do SO (socket) PF_INET SOCK_STREAM sockaddr_in sin_family sin_port sin_addr sin_zero bind() Utilizado no lado servidor. Define o endereço e a porta local para o socket

2002-2015 Volnys Bernal 27 Estruturas de dados internas ao sistema operacional Lado cliente com protocolo IPv4 (Internet) family service PF_INET SOCK_STREAM local socket address remote socket address Estrutura interna do SO (socket) sockaddr_in sin_family sin_port sin_addr sin_zero Connect() Utilizado no lado cliente. Define o parceiro remoto de comunicação

2002-2015 Volnys Bernal 28 Referências Bibliográficas

2002-2015 Volnys Bernal 29 Referências Bibliográficas COMMER, DOUGLAS; STEVENS, DAVID Internetworking with TCP/IP: volume 3: client-server programming and applications Prentice Hall 1993