Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Agenda
2
¿Qué se ha dicho hasta el momento…?
3
Por ahora… revisemos detalles de los sockets
Proceso Proceso
(nodo A) (nodo B)
socket socket
Red
4
Modelo cliente-servidor
• Ejemplos:
• Servicios web
• Servicios de correo
• Servicios de almacenamiento
5
Comunicación intra-procesos vs inter-procesos
• Comunicación intra-procesos
• “Dentro del computador”
• Usa procesos hijos, semáforos, memoria compartida.
• Ejemplo: ejercicio buzón, piporseries.
• Comunicación inter-procesos
• “Fuera del computador”
• Imagínense que en cada computador hay un proceso (socket)
comunicándose con un proceso en otro computador (otro socket).
• En el caso del servidor se tendrán varios procesos (uno por cliente).
• Ejemplo: servicios de correo → un servidor de correo atiende a
muchos clientes
6
Requerimientos para la programación de sockets
Proceso Proceso
socket socket
Red
7
Requerimientos para la programación de sockets (2)
Proceso Proceso
socket socket
Pila de Pila de
red del red del
SO SO
Red
8
Requerimientos para la programación de sockets (3)
Red
9
Requerimientos para la programación de sockets (4)
Proceso Capa de
Proceso
Capa de
aplicación aplicación
Red
10
Requerimientos para la programación de sockets (5)
• Direccionamiento IP
• Tanto en el cliente como en el servidor
• En el servidor para localizar y alcanzar el socket
• En el cliente para que el servidor envíe la respuesta
• Puertos
• En el servidor se debe especificar el puerto de “escucha”
• Cuando se crea la conexión, se “otorga” un puerto específico al
subproceso que atenderá la comunicación en el servidor.
• Puertos válidos
• Existe ya toda una lista de puertos asignados a servicios específicos
• https://es.wikipedia.org/wiki/Anexo:N%C3%BAmeros_de_puertos_de_red
11
Requerimientos para la programación de sockets (6)
• Direccionamiento IP + Puertos
Proceso*
Proceso* Proceso+ Proceso+
Proceso*
socket Proceso+ socket
Pila de Proceso* Pila de
IP: 1.2.3.4 red del red del IP: 1.2.3.5
Puerto: SO SO Puerto:
10000 15423
Red
*/+ Pueden compartir misma dirección IP, pero puerto debe ser distinto
12
Requerimientos para la programación de sockets (7)
• Tipo de direccionamiento
• IPv4 → direcciones de 32 bits de la forma x.x.x.x, dónde x~[0,255]
• AF_INET
• IPv6 → direcciones de 128 bits de la forma a:b:c:d:e:f:g:h, donde
a,b,c,d,e,f,g,h ~ [0000,FFFF]
• AF_INET6
• Tipo de socket
• Define las propiedades de la comunicación: confiabilidad, secuencia
de mensajes, velocidad de conexión, etc.
• Socket stream (ej. uso en transacciones bancarias)
• SOCK_STREAM → TCP (orientado a la conexión – capa de transporte)
• Socket datagram (ej. uso en videojuegos, videoconferencias)
• SOCK_DGRAM → UDP (sin conexión – capa de transporte)
13
Primitivas/funciones/métodos de los sockets
14
Primitivas/funciones/métodos de los sockets (2)
• Cliente
• Socket
• Send
• Receive
• Close
15
Primitivas/funciones/métodos de los sockets (3)
16
¿Cómo programar sockets en otros lenguajes?
17
Gracias por su atención!
18
19