Está en la página 1de 46

Conceptos bsicos

1.
2. 3.

4.
5.

6.
7.

Definicin de puerto Sockets Conceptos cliente/servidor Definicin de Stream Concurrencia, multiprogramacin y multitarea Servidores iterativos y concurrentes Estndares

aplicacin: compuesto por las aplicaciones de red transporte: transferencia de datos host-host
FTP, SMTP, STTP TCP, UDP

Aplicacin
Transporte

red: ruteo de datagramas desde fuente a destino


enlace: transferencia de datos entre elementos vecinos en la red fsico: transporte de bits en el cable
PPP, Ethernet IP, protocolos de ruteo

Red
Enlace Fsico

Un puerto en la capa de transporte esta representado por un nmero de 16 bits, que es utilizado ara identificar los puntos finales de la conexin, en las cabeceras UDP o TCP. Los nmeros de puerto oscilan entre 0 y 65,535. La pila de protocolos de red aade los puertos como una abstraccin para la red. Son canales que utiliza el subsistema de red para redireccionar la informacin al programa apropiado.

Puertos bien conocidos [0, 1023]

Se utilizan para servicios de red bien conocidos (FTP, HTTP, Telnet, DNS, ) Oscilan entre 1024 a 49151 y pueden ser usados de manera temporal por los clientes, pero tambin pueden representar servicios registrados por un tercero. Oscilan entre 49152 y 65535, pueden tambin ser usados por el cliente, pero se utilizan menos frecuentemente.

Puertos registrados

Puertos dinmicos o privados

Controlados por la IANA (Internet Assigned Numbers Authority) http://www.iana.org/assignments/port-numbers

Un nmero de puerto y una direccin de red. Un par de sockets, uno en cada host, forma una conexin nica.

Es un punto final de un enlace de comunicacin de dos vas entre dos programas que se ejecutan a travs de la red.
El cliente y el servidor deben ponerse de acuerdo sobre el protocolo que utilizarn.

Es un programa en ejecucin en una computadora.

Dentro de la mquina dos procesos se comunican usando comunicacin entre procesos (definida por OS). Procesos en diferentes hosts se comunican va intercambio de mensajes.

Los procesos envan/reciben mensajes a/desde sus socket


Proceso transmisor saca mensajes por el puerto Proceso transmisor confa en la infraestructura de transporte al otro lado del puerto la cual lleva los mensajes al socket en el proceso receptor

= socket aplicacin transporte red enlace P3

= proceso P1 P1 aplicacin transporte red enlace P2 P4 aplicacin

transporte
red enlace fsica

fsica

fsica

host 1

host 2

host 3

Orientado a Conexin
Establece un camino virtual entre servidor y cliente, fiable, sin prdidas de informacin ni duplicados, la informacin llega en el mismo orden que se enva. El cliente abre una sesin en el servidor y este guarda un estado del cliente.

No orientado a conexin
Envo de datagramas de tamao fijo. No es fiable, puede haber prdidas de informacin y duplicados, y la informacin puede llegar en distinto orden del que se enva. No se guarda ningn estado del cliente en el servidor, por ello, es ms tolerante a fallos del sistema.

API para sockets

Fue introducida en BSD4.1 UNIX, 1981


El socket es explcitamente creado, usado, y liberado por las aplicaciones Sigue el modelo cliente/servidor Tambin conocida como API de Berkeley, definida en lenguaje C

Sockets en DOS

Una de ellas es TCP/IP for DOS Toolkit :

http://www.drdos.com/dosdoc/Tcpip/dos_api/

Sockets en MAC

Este mdulo proporciona una interfaz con el gestor TCP/IP de Macintosh, MacTCP. Hay un mdulo de acompaamiento, que proporciona una interfaz con el servidor de nombres (permitiendo la traduccin nombres de nodo a direcciones IP)
http://pyspanishdoc.sourceforge.net/mac/module-mactcp.html

La comunicacin de dos hosts se realiza generalmente mediante la filosofa Cliente/Servidor. El usuario cliente obtiene servicios de la mquina remota proveedora de un servicio (servidor).

El servidor proporciona un puerto de comunicacin por el cul se deben de conectar todos los clientes que deseen obtener dicho servicio.
Se establece un socket en la mquina local (cliente) y otro en la mquina remota (servidor) , y se comunican entre s por el puerto proporcionado, as se establece la va de comunicacin entre dos hosts interconectados por una red.

1.

Abre el canal de comunicaciones para conectarse a la direccin de red atendida por el servidor

2.

Enviar al servidor un mensaje de peticin de servicio y esperar hasta recibir respuesta Cerrar el canal de comunicacin y terminar la ejecucin del proceso.

3.

1.

Abre el canal de comunicacin e informa a la red de la direccin a la que responder como de la disposicin para aceptar peticiones de servicio.

2.

Espera a que el Cliente realice una peticin de servicio en la direccin que el tiene declarada.
Cuando recibe una peticin de servicio, atiende al Cliente. La conexin es cerrada.

3.

4.

Proceso Cliente: proceso que inicia la comunicacin

Proceso servidor: proceso que espera por ser contactado

Es una secuencia de datos habilitados en un momento dado. Una abstraccin utilizada cuando se leen o escriben archivos, o cuando se realiza una comunicacin mediante sockets.

Son canales preconectados de entradas y salidas entre una computadora, generalmente una secuencia de bytes.

Las conexiones I/O son conocidas como entrada estndar, salida estndar y salida de error estndar.

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.

1)

El cliente lee lneas desde la entrada estndar (flujo inFromUser), las enva al servidor va un socket (flujo outToServer) El servidor lee lneas desde el socket
El servidor las convierte a maysculas, y las enva de vuelta al cliente El cliente lee y muestra la lnea modificada desde el socket (flujo inFromServer)

2)

3)

4)

Es el nmero mximo de flujos de ejecucin secuenciales (hilos) que podra estar ejecutado simultneamente Las ejecuciones pueden ser en una mquina multitarea, en una con mltiples procesadores o por medio de una red de datos en varias computadoras.

Un programa concurrente puede especificar dos o ms procesos que cooperan para llevar a cabo una tarea en comn.

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

Divisin de tiempo compartido en donde diferentes usuarios puedes ejecutar programas propios de forma concurrente usando el mismo sistema desde diferentes computadoras.

Las tareas son unidades sueltas de ejecucin en sus sistema. Cada elemento activo con el que se trabaje es una tarea. Tenemos multitarea en el caso de que tengamos diferentes programas que realizan tareas complementarias es decir alguno procesa el resultado de otro.

Cada tarea puede ser procesada en su propia computadora y todas en conjunto producen el resultado deseado.

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 peticin un thread.

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

Una forma de ir atendindolos es uno por ciclo, como el programa que atiende pedidos de archivos:
Se acepta una conexin Se lee la peticin Se lee desde el archivo y se escribe en el socket hasta encontrar el fin de archivo.

El problema es que todo cliente debe esperar su turno para ser atendido. Si uno de ellos pide un archivo muy grande los dems tienen que esperar. La mayor parte de espera es debido a las operaciones I/O, hay capacidad de CPU desperdiciada.

Timeout de peticin, y puede escuchar al siguiente cliente

Un servidor concurrente atiende a varios clientes al mismo tiempo. Ms an, mientras est atendiendo sigue escuchando. Se trata de crear un nuevo proceso o lnea de ejecucin cada vez que un cliente llega a pedir un servicio.

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 estndares 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

Son un conjunto de informes, propuestas de documentos y estndares 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/

No. RFC

Protocolo

768 783
791 793 894 2131

UDP TFTP
IP TCP IP sobre ethernet DHCP

Sockets en TCP Sockets en UDP Definicin de DAEMON Concepto de Hilos

También podría gustarte