SOCKETS Conceito
Introdução
• É um canal de comunicação entre dispositivos de rede
• Utiliza as funcionalidades de comunicação TCP/IP;
• Todos os seus mecanismos são gerenciados pela camada de transporte (TCP, UDP);
• Existem diversas APIs Sockets (Application Program Interface), entre elas o Unix;
• Desenvolvidos especificamente para aplicações Cliente /
Servidor
Definição
• Um Socket é um ponto final (endpoint) de um canal bidirecional de comunicação entre dois programas rodando em uma rede;
• Cada Socket tem os seguintes endereços de endpoint:
- Endereço local (número da porta) que se refere ao endereço da porta de comunicação para camada de transporte;
- Endereço global (nome host) que se refere ao endereço do computador (host) na rede.
Conexão
• O servidor apenas fica “ouvindo” o Socket aguardando um pedido de conexão do cliente;
• O cliente sabe o nome do host e qual porta está associada à aplicação servidora;
- Assim que o servidor aceitar a conexão, este cria um novo
Socket (e consequentemente o associa a uma nova porta) e pode ficar esperando novas conexões no Socket original, enquanto atende às requisições do cliente pelo novo Socket;
Protocolos TCP e UDP
• Ambos utilizam a camada IP como camada de Rede;
Protocolo TCP
• Transmission Control Protocol (TCP):
• Protocolo orientado a Conexão;
• É um canal confiável;
• Fluxo contínuo (stream);
• Garante a entrega dos segmentos em ordem;
• Não há duplicação;
Protocolo TCP
• Para haver a transmissão dos dados, uma fase de conexão entre as duas entidades que se comunicam precisa ser feita;
- Fase de Conexão → Fase de Transmissão dos Dados → Fase de Desconexão;
• Exemplo: TELNET
Protocolo UDP
• User Datagram Protocol (UDP):
• Protocolo não orientado a conexão
• canal não-confiável
• Não garante entrega dos seguimentos e também não garante que sejam entregues em ordem;
• Pode entregar seguimentos duplicados;
• Perdas durante as transmissões não são tratadas;
• Usado em redes com alta confiabilidade, onde as