26
1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6. Servidores iterativos y concurrentes 7. Estándares

1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

1. Definición de puerto

2. Sockets

3. Conceptos cliente/servidor

4. Definición de Stream

5. Concurrencia, multiprogramación y multitarea

6. Servidores iterativos y concurrentes

7. Estándares

Page 2: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Es una secuencia de datos habilitados en un momento dado.

• Una abstracción utilizada cuando se leen o

escriben archivos, o cuando se realiza una comunicación mediante sockets.

• Son canales preconectados de entradas y salidas

entre una computadora, generalmente una secuencia de bytes.

Stream

Page 3: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Las conexiones I/O son conocidas como entrada estándar, salida estándar y salida de error estándar.

• Un stream (flujo) es una secuencia de caracteres que fluyen hacia o desde

un proceso.

• Un input stream (flujo de entrada) esta ligado a alguna fuente de entrada para el proceso, p.e. teclado o socket.

• Un output stream (flujo de salida) está ligado a una salida del proceso, p.e. monitor o socket.

Tipos de stream

Page 4: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

1) El cliente lee líneas desde la

entrada estándar (flujo inFromUser), las envía al servidor vía un socket (flujo outToServer)

2) El servidor lee líneas desde el socket

3) El servidor las convierte a mayúsculas, y las envía de vuelta al cliente

4) El cliente lee y muestra la línea modificada desde el socket (flujo inFromServer)

Ejemplo aplicación cliente-servidor

Page 5: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Es el número máximo de flujos de ejecución secuenciales (hilos) que podría estar ejecutado simultáneamente

• Las ejecuciones pueden ser en una máquina multitarea, en una con múltiples procesadores o por medio de una red de datos en varias computadoras.

• Un programa concurrente puede contener dos o más procesos que cooperan para llevar a cabo una tarea en común.

Concurrencia

Page 6: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Este concepto se refiere a diversas fracciones de memoria las cuales contienen diferentes programas.

• División de tiempo compartido en donde diferentes usuarios puedes ejecutar programas propios de forma concurrente usando el mismo sistema desde la misma o diferentes computadoras.

Multiprogramación

Page 7: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• La multitarea de computadoras se divide en dos campos: procesos y threads (o procesos de poco peso)

• La multitarea son varias entidades (tareas) ejecutables activas al mismo tiempo – Ejemplo:

• Un navegador

• Cada ventana es un nuevo proceso y cada petición un thread.

Multitarea

Page 8: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

¿Qué pasa cuando varios clientes tratan de conectarse en el mismo tiempo a un servidor?

Page 9: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Una forma de ir atendiéndolos es uno por ciclo, como el programa que atiende pedidos de archivos:

– Se acepta una conexión

– Se lee la petición

– Se lee desde el archivo y se escribe en el socket hasta encontrar el fin de archivo.

Servidores Iterativos

Page 10: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Servidor secuencial (iterativo) atendiendo a más de un cliente

Page 11: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Durante la conversación, el puerto 4444 no puede escuchar otras peticiones

Page 12: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Solo después de efectuar la transmisión el puerto 4444 puede volver a escuchar

Page 13: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Si hay interacción del servicio con el usuario, p. e. transferir un archivo y digitar el nombre; el servidor

queda en espera de que el usuario conteste. –Ineficiente -

Page 14: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Timeout de petición, y puede escuchar al siguiente cliente

¿Qué sucede si el servidor tiene que esperar mucho al usuario?

Page 15: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• El problema es que todo cliente debe esperar su turno para ser atendido.

• Si uno de ellos pide un archivo muy grande los demás tienen que esperar.

• La mayor parte de espera es debido a las operaciones I/O, hay capacidad de CPU desperdiciada.

Desventajas servidores iterativos

Page 16: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Un servidor concurrente atiende a varios clientes al mismo tiempo.

• Más aún, mientras está atendiendo sigue escuchando.

• Se trata de crear un nuevo proceso o línea de ejecución cada vez que un cliente “llega” a pedir un servicio.

Servidor concurrente

Page 17: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Servidores Concurrentes: hay procesos separados para atender el puerto y para transferir la respuesta o el resultado de la petición

Page 18: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Después que el cliente contacta al servidor, éste crea otro proceso para atender al cliente y queda escuchando el puerto 4444

Page 19: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Mientras el nuevo proceso está atendiendo al primer cliente, el segundo cliente puede

contactar al servidor en el puerto 4444

Page 20: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Y el servidor crea otro proceso…

Page 21: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

POSIX (Portable Operating System Interface for UNIX) • La norma POSIX fue elaborada por IEEE para conseguir

la portabilidad en distintos entornos UNIX.

• La familia de estándares POSIX es designada formalmente como IEEE 1003.

• En donde se definen varios puntos de la funcionalidad como scheduling y el uso de hilos, entre otros

Estándares

Page 22: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Son un conjunto de informes, propuestas de documentos y estándares de protocolos que describen el funcionamiento interno de la Internet.

• Cada uno de estos documentos contiene una propuesta oficial para generar un nuevo protocolo de Internet.

http://www.rfc-editor.org/

RFC (Request For Comments)

Page 23: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está
Page 24: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

Ejemplo SMTP (RFC 5321)

Page 25: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

No. RFC Protocolo

768 UDP

783 TFTP

791 IP

793 TCP

894 IP sobre ethernet

2131 DHCP

Ejemplos: Número de RFC

Page 26: 1. Definición de puerto 2. Sockets 3. Conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara el proceso, p.e. teclado o socket. • Un output stream (flujo de salida) está

• Sockets en TCP

• Sockets en UDP

• Definición de DAEMON • Concepto de Hilos

2. Creación de sockets cliente/servidor