1. definición de puerto 2. sockets 3. conceptos …profesores.fi-b.unam.mx/yasmine/tema1_2.pdfpara...

Post on 19-Jun-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

• 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

• 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

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

• 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

• 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

• 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

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

• 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

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

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

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

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 -

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

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

• 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

• 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

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

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

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

contactar al servidor en el puerto 4444

Y el servidor crea otro proceso…

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

• 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)

Ejemplo SMTP (RFC 5321)

No. RFC Protocolo

768 UDP

783 TFTP

791 IP

793 TCP

894 IP sobre ethernet

2131 DHCP

Ejemplos: Número de RFC

• Sockets en TCP

• Sockets en UDP

• Definición de DAEMON • Concepto de Hilos

2. Creación de sockets cliente/servidor

top related