Universidad Tecnológica Nacional Facultad Regional Buenos Aires

10
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Sockets Arquitectura cliente-servidor Sistemas Operativos

description

Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información. Sistemas Operativos. Sockets Arquitectura cliente-servidor. Sockets – Introducción. Socket (enchufe) Canal de comunicación entre procesos no emparentados. Socket. - PowerPoint PPT Presentation

Transcript of Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Page 1: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Universidad Tecnológica Nacional

Facultad Regional Buenos AiresIngeniería en Sistemas de

Información

SocketsArquitectura cliente-servidor

Sistemas Operativos

Page 2: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Sockets – Introducción

Socket (enchufe) Canal de comunicación entre procesos no emparentados

El proceso padre y el hijo comparten las variables y los descriptores. Estos

eventualmente pueden ser usados para comunicarse

Dos procesos sin relación de parentesco no pueden compartir

información, mucho menos si estos están en computadoras diferentes.

Socket

Page 3: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Sockets – Ejemplo

Send(“Hola Mundo”…);

Sistema Operativo

Componente de Red

Recv(variable…);

Sistema Operativo

Componente de Red

Ejemplo de comunicación de dos procesos

Page 4: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Sockets – Estados

1) Crear socket

2) Asociar a una IP y puerto

3) Configurar el estado de escucha y esperar conexiones

Servidor

Cliente

4) Crear socket

5) Conectar a IP y puerto

6) Aceptar conexión y asignar un descriptor único para esa conexión

……

……

……

……

Page 5: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Sockets – Comandos

1) Int iSock = socket(…);

2) bind(iSock, {ip/puerto});

3) listen(iSock);Servidor

Cliente

4) Int cliSock = socket(…);

5) connect(cliSock, {ip/puerto});

6) Int newSock = accept(iSock);

Conexión Establecida!

Page 6: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Inicio / Ejecutar... / cmd

# telnet www.google.com.ar 80

GET / HTTP/1.1

Host: www.google.com.ar

Sockets – Ejemplo

Page 7: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Sockets – Send/Recv

Servidor Cliente

send(newSock, buffer); recv(cliSock, buffer);

Conexión Establecida!

recv(newSock, buffer); send(cliSock, buffer);

Page 8: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 0.0.0.0:60393 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:111 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTENtcp 0 0 127.0.0.1:25 0.0.0.0:* LISTENtcp 0 0 192.168.2.105:22 192.168.2.101:57804 ESTABLISHEDtcp 0 132 192.168.2.105:22 192.168.2.88:3774 ESTABLISHEDtcp 0 0 192.168.2.105:22 192.168.2.101:47939 ESTABLISHEDtcp6 0 0 :::22 :::* LISTENudp 0 0 0.0.0.0:38659 0.0.0.0:*udp 0 0 0.0.0.0:701 0.0.0.0:*udp 0 0 0.0.0.0:68 0.0.0.0:*udp 0 0 0.0.0.0:111 0.0.0.0:*

Sockets – netstat# netstat -na

Linux :: netstat –nap (incluye el proceso)

Page 9: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Sockets – Problema

connect();

connect();send();

sock1= accept(iSock);recv(sock1);sock2= accept(iSock);recv(sock2);

connect();

Servidor

??

Un solo proceso, funciones bloqueantes, varios sockets simultáneos

Page 10: Universidad Tecnológica Nacional Facultad Regional Buenos Aires

Sockets – ProblemaUn solo proceso, funciones bloqueantes,

varios sockets simultáneos

Varios threads?

Varios procesos?

Sockets con select?

Polling?

No se puede?