Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTERFACE DE SOCKETS DEFINIÇÃO • Um socket é um ponto final de um fluxo de comunicação entre processos através de uma rede de computadores. DEFINIÇÃO • Uma interface de sockets (API Sockets) é uma interface de programação de aplicativos (API), fornecida pelo SO, que permite que os programas de aplicação controlem os processos. DEFINIÇÃO • Um endereço de socket é a combinação de um endereço IP e um número de porta. Cliente Servidor Requisita Responde Relembrando o Modelo Cliente-Servidor Processo 1 Processo 2 Processo X Requisita Responde Processo Y Conceitos Básicos • Sockets são uma forma de IPC (Interprocess Communication) que fornece comunicação entre processos residentes em sistema único ou processos residentes em sistemas remotos. Conceitos Básicos 8 Comunicação entre processos Processos em hosts distintos comunicam-se por meio de envio de mensagens... enviadas e recebidas através de seu socket Socket é a interface entre a camada de aplicação e a de transporte Analogia: Casa e porta (processo e socket) Interação dos programas cliente e servidor (TCP) [1/2] 1.Cliente tem a tarefa de iniciar contato com o servidor. 2. Servidor deve está pronto: ativo, rodando antes do cliente tentar iniciar contato possuir alguma porta (socket) para acolher algum contato inicial de um processo cliente. 3. O processo cliente pode iniciar uma conexão TCP, o que é feito a partir da criação de um socket parâmetros do socket : Endereço IP do hospedeiro servidor e o número de porta do processo servidor Analogia: ‘bater à porta’ (contato inicial) Interação dos programas cliente e servidor (TCP) [2/2] 4. TCP cliente inicia uma apresentação de 3 vias e estabelece uma conexão TCP com Servidor cliente “bate” no socket de entrada do servidor servidor ‘ouve’ a batida e cria um novo socket dedicado àquele cliente Ao final da apresentação, existe uma conexão TCP entre o socket cliente e o novo socket do servidor Domínios e Protocolos • Sockets são criados por diferentes programas e são referenciados por nomes. • Esses nomes devem ser traduzidos em endereços. • O espaço no qual o endereço é especificado é chamado de domínio. Domínios e Protocolos • Domínio INTERNET: • Implementação Unix dos protocolos TCP ou UDP • Consiste de um endereço IP + número da porta • Permite a comunicação entre máquinas diferentes Domínios e Protocolos • Portas: • “Endereço” para um processo comunicante • Inteiro de 16 bits (definido pelo usuário) • Portas de 1 a 1023 são do sistema • Portas do protocolo TCP são independentes das portas do protocolo UDP Domínios e Protocolos • Protocolo TCP: • Utilizado para comunicação longa (conexão) • Confiável • Baixo desempenho em comunicações curtas • Uso típico em login remoto e transferência de arquivo Domínios e Protocolos • Protocolo UDP: • User Datagram Protocolo • Utilizado para comunicação curta (sem conexão) • Não confiável • Pouco prático para comunicações longas • Uso típico em RPC e Broadcast Tipos de Sockets • Stream Socket: • Fornece sequenciamento e fluxo bidirecional • Transmite dados sobre uma base confiável • No domínio INTERNET, é implementado sobre o TCP/IP Tipos de Sockets • Datagram Socket: • Suporta fluxo de dados bidirecional • Não oferece um serviço confiável • Mensagens duplicadas, perdidas ou em ordem diferente (não sequenciadas) são problemas que podem acontecer Tipos de Sockets • Raw Socket: • Permite o acesso à interface de protocolos de rede • Disponível para usuários avançados • Permite acesso direto a protocolos de comunicação de baixo nível • Permite a construção de novos protocolos sobre os protocolos de baixo nível já existentes Implementação • A implementação de Sockets é definida por: • Um protocolo (TCP ou UDP) • Endereço IP da máquina local • Porta local • Endereço IP da máquina remota • Porta remota Implementação do lado do servidor Implementação do lado do servidor • Comunicação via TCP: Implementação do lado do servidor • Comunicação via TCP: Implementação do lado do servidor • Comunicação via TCP: Implementação do lado do servidor • Comunicação via TCP: Implementação do lado do cliente Implementação do lado do cliente • Comunicação via TCP: Implementação do lado do cliente • Comunicação via TCP: Implementação do lado do cliente • Comunicação via TCP: Implementação do lado do cliente • Comunicação via TCP: Implementação do lado do cliente • Comunicação via TCP: Implementação do lado do cliente • Comunicação via TCP:
Compartilhar