Programação para Redes de Computadores: Sockets

9
1 Redes de Computadores Programação para Redes de Computadores Introdução aos Sockets Líus Fontenelle Carneiro http://hypercast.info/

Transcript of Programação para Redes de Computadores: Sockets

Page 1: Programação para Redes de Computadores: Sockets

1

Redes de Computadores

Programação para Redes de Computadores

Introdução aos Sockets

Líus Fontenelle Carneirohttp://hypercast.info/

Page 2: Programação para Redes de Computadores: Sockets

2

Redes IP e ambiente web

Page 3: Programação para Redes de Computadores: Sockets

3

Uso dos Sockets

■ Criação de novos protocolos;■ Implementar protocolos já existentes;■ Extender padrões conhecidos;■ Interoperabilidade;■ Muitas possibilidades: tudo é socket!

Page 4: Programação para Redes de Computadores: Sockets

4

Comunicação em rede no Linux

■ Utiliza modelo baseado em Sockets;■ Implementação BSD baseada em sockets INETD;■ Integração com a System Call Interface;■ Interoperabilidade com o Virtual File System;■ Elevada portabilidade.

Page 5: Programação para Redes de Computadores: Sockets

5

Sockets e o TCP/IP

■ Conexão baseada em Streams de dados;■ Abstração e divisão do stream em pacotes IP;■ Procedimentos para envio:

Dividir o stream em pacotes IP; Rotear os pacotes para o endereço de destino; Gerar cabeçalho para ser usado pelos device drivers; Enviar pela interface apropriada.

■ Procedimentos para recepção: Checar validade dos cabeçalhos; Verificar se o endereço de destino está correto; Enviar os pacotes para camada TCP processar.

Page 6: Programação para Redes de Computadores: Sockets

6

Relações com outros subsistemas

Page 7: Programação para Redes de Computadores: Sockets

7

Network Stack

Page 8: Programação para Redes de Computadores: Sockets

8

Sockets no mundo real

■ Tome sempre muito cuidado: Interoperabilidade; Implementações divergentes; Interpretações diferentes da mesma RFC.

Page 9: Programação para Redes de Computadores: Sockets

9

Kernel GNU/Linux

Fim

ContatoPágina pessoal: http://hypercast.info/

E-mail: [email protected]