Buscar

Interface sockets

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:

Continue navegando