Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conceptos bsicos
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
Arquitecturas Cliente/Servidor, Sem 2015-1
M.I.Yasmine Macedo Reza
Introduccin
Pila de protocolos en Internet
aplicacin: compuesto por las aplicaciones
de red
FTP, SMTP, STTP
Aplicacin
Transporte
Red
Enlace
Fsico
QU ES UN PUERTO?
Puerto
Un puerto en la capa de transporte esta representado por
un nmero de 16 bits, que es utilizado para identificar los
puntos finales de la conexin, en las cabeceras UDP o TCP.
Los nmeros de puerto oscilan entre 0 y 65,535.
Clasificacin de puertos
Puertos bien conocidos [0, 1023]
Se utilizan para servicios de red bien conocidos (FTP, HTTP, Telnet,
DNS, )
Puertos registrados
Oscilan entre 1024 a 49151 y pueden ser usados de manera temporal
por los clientes, pero tambin pueden representar servicios
registrados por un tercero.
Socket
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.
Arquitecturas Cliente/Servidor, Sem 2015-1
M.I.Yasmine Macedo Reza
Recordando Un proceso
Es un programa en ejecucin en una computadora.
Socket
Los procesos envan/reciben mensajes a/desde sus socket
Proceso transmisor transmite 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
= proceso
P3
P1
P1
aplicacin
P2
transporte
P4
aplicacin
transporte
red
red
enlace
enlace
fsica
fsica
host 1
host 2
enlace
fsica
host 3
10
Clasificacin de Sockets
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.
Arquitecturas Cliente/Servidor, Sem 2015-1
M.I.Yasmine Macedo Reza
11
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.
Arquitecturas Cliente/Servidor, Sem 2015-1
M.I.Yasmine Macedo Reza
12
13
Proceso Cliente
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
3. Cerrar el canal de comunicacin y terminar la
ejecucin del proceso.
14
Proceso Servidor
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.
3. Cuando recibe una peticin de servicio, atiende al
Cliente.
4. La conexin es cerrada.
Arquitecturas Cliente/Servidor, Sem 2015-1
M.I.Yasmine Macedo Reza
15
16
Sockets en UNIX
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
Arquitecturas Cliente/Servidor, Sem 2015-1
M.I.Yasmine Macedo Reza
17
Secuencia de
llamadas para una
comunicacin
cliente/servidor
Orientada a
Conexin
18
Secuencia de
llamadas para una
comunicacin
cliente/servidor
No orientada a
Conexin
19
Otras APIs
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
Arquitecturas Cliente/Servidor, Sem 2015-1
M.I.Yasmine Macedo Reza
20