O Socket de Berkeley
Por: Kayo Melo • 10/5/2021 • Projeto de pesquisa • 527 Palavras (3 Páginas) • 307 Visualizações
Sockets de Berkeley
Basicamente os Sockets de Berkeley são uma API, ou seja, um conjunto de bibliotecas de funções para a programação sobre protocolos de comunicação.
Os soquetes são uma interface standard entre a rede e a aplicação. Existem 2 tipos de soquetes, são eles, Stream e Datagrama cada um destes modos tem a sua utilidade, vantagens e desvantagens na sua utilização. Ambos os modos funcionam sobre o protocolo IP (Internet Protocol).
[pic 1]
Stream:
É um serviço de circuito virtual utilizado em TCP. O soquete stream permite a leitura de um número arbitrário de bytes, mas ainda preservando sua sequência. Basicamente, um remetente pode gravar 4K de dados no soquete e o receptor pode consumir esses dados byte a byte. O caminho inverso também é verdadeiro. O soquete stream não preserva os limites da mensagem.
- Modo Orientado à Conexão (TPC/IP)
- Vantagens:
• Sem perda de dados na rede e ordem dos pacotes;
• Possibilidade de usar DataStreams;
• Serviços confiáveis.
- Desvantagens:
• É mais lento que o modo orientado ao datagram.
Datagrama:
O datagrama transporta pacotes individuais. O soquete do datagrama, preserva os limites das mensagens, uma gravação pelo remetente sempre corresponde a uma lida pelo receptor:
- Modo Orientado ao Datagrama (UDP/IP)
- Vantagens:
• É mais rápido que o modo orientado à conexão.
- Desvantagens:
• Serviços não confiáveis, mensagens perdidas na rede e perda da ordem
das mensagens;
• Cada mensagem é um datagrama: [Remetente, Destinatário, Conteúdo].
- Funções da API de soquete Berkeley:
O comando “socket ()” cria um novo socket que tem a identificação definida por um número inteiro, e reserva recursos de sistema para o próprio.
O comando “bind ()” é utilizado junto ao servidor e associa um socket a um endereço de socket, sendo assim, um endereço IP local especificado e um número de porta.
O comando “listen ()” é utilizado junto ao servidor e torna um soquete TCP vinculado ao estado de escuta.
O comando “connect ()” é utilizado junto ao cliente e atribui a um soquete um determinado número de porta local que esteja livre. Na situação de um TCP, é provocado uma conexão TCP nova.
O comando “aceitar ()” utilizado junto ao servidor permite uma tentativa de criação de uma nova conexão TCP do cliente remoto e criando também um novo soquete ligado aos endereços da conexão.
Os comandos “sendto (), recv (), send (), e recvfrom ()” são utilizados para o envio e o recebimento de dados.
O comando “close ()” libera recursos do sistema que estão alocados para um socket. Na situação do TCP a conexão é finalizada.
Os comandos “gethostbyaddr()” e “gethostbyname()” tem a utilização de solucionar endereços e nomes de host IPv4.
...