Fundamentos de Redes de Datos y Aplicaciones
Fundamentos de Redes de Datos y Aplicaciones
1
15/03/2024
2
15/03/2024
3
15/03/2024
ARQUITECTURA CLIENTE-SERVIDOR
servidor:
Computador siempre on
Dirección IP permanente
Granja de servidores por escalamiento
cliente:
client/server Se comunica con servidor
Puede ser conectado intermitentemente
Puede tener direcciones IP dinámicas
No se comunican directamente entre sí
(dos clientes puros)
4
15/03/2024
5
15/03/2024
SOCKETS O PUERTOS
Un proceso envía/recibe mensajes a/desde su socket
socket es análogo a una puerta
Proceso transmisor saca mensajes por la puerta
Proceso transmisor confía en la infraestructura de transporte al otro lado de
la puerta la cual lleva los mensajes al socket en el proceso receptor
API: (1) debemos elegir el protocolo de transporte; (2) podemos definir algunos
parámetros (volveremos más adelante)
application application
socket controlled by
process process app developer
transport transport
12
6
15/03/2024
DIRECCIONAMIENTO DE PROCESOS
Para que un proceso reciba un mensaje, éste debe tener un
identificador
Un terminal/host tiene una dirección IP única de 32 bits.
Q: ¿Es suficiente la dirección IP para identificar un proceso en un host?
Respuesta: No, muchos procesos pueden estar corriendo en el mismo
host.
El identificador incluye la dirección IP y un número de puerto (port)
asociado con el proceso en el host.
Ejemplo de números de puerto (port number):
Servidor HTTP: 80
Servidor de Mail: 25
13
7
15/03/2024
16
8
15/03/2024
17
18
9
15/03/2024
RESUMEN
Modelo Cliente servidor
Modelo P2P
Modelos Híbridos
Procesos que se comunican (sockets o puertos)
Protocolos de la capa de aplicación
Servicios de transporte a la capa de aplicación
19
20
10
15/03/2024
21
Ejemplo URL:
[Link]/ingreso
11
15/03/2024
HTTP GENERALIDADES
HTTP: hypertext transfer protocol
Protocolo de la capa aplicación de la
Web
Modelo cliente/servidor
cliente: browser que requiere,
recibe, “despliega” objetos Web server
running
servidor: Servidor Web envía Apache Web
server
objetos en respuesta a
requerimientos iPhone running
HTTP 1.0: RFC 1945 Safari browser
23
24
12
15/03/2024
CONEXIONES HTTP
HTTP No-persistente HTTP Persistente
A lo más un objeto es Múltiples objetos pueden
enviado por una ser enviados por una
conexión TCP. única conexión TCP entre
HTTP/1.0 usa HTTP no- el cliente y servidor.
persistente HTTP/1.1 usa conexiones
persistentes en su modo
por defecto
25
HTTP NO-PERSISTENTE
(contiene texto,
Supongamos que el usuario ingresa la URL: referencias a 10
[Link]/someDepartment/[Link]
imágenes jpeg)
1a. Cliente HTTP inicia una conexión
TCP al servidor HTTP (proceso) en 1b. Servidor HTTP en host
[Link] en puerto 80 [Link] esperando por
conexiones TCP en puerto 80
“acepta” conexión, notifica la cliente
2. Cliente HTTP envía mensaje de
requerimiento (conteniendo el
URL) por el socket de la conexión
TCP. EL mensaje indica que el 3. El servidor HTTP recibe el
cliente quiere el objeto mensaje de requerimiento,
someDepartment/home/index forma el mensaje de
tiempo respuesta que contiene el
objeto requerido y envía el
mensaje por su socket.
26
13
15/03/2024
HTTP NO-PERSISTENTE
4. El servidor HTTP Cierra la
conexión.
5. Cliente HTTP recibe el mensaje
respuesta que contiene el archivo html
y despliega el html. Analizando el
archivo html file, encuentra 10
referencias a objetos jpeg
time
6. Pasos 1-5 son repetidos para cada
uno de los 10 objetos jpeg.
27
28
14
15/03/2024
HTTP PERSISTENTE
Problemas de HTTP no-persistente: Persistencia sin pipelining:
requiere 2 RTTs por objeto cliente envía nuevo
OS debe trabajar y dedicar requerimiento sólo cuando el
recursos para cada conexión TCP previo ha sido recibido
el navegador abre conexiones un RTT por cada objeto
paralelas generalmente para referenciado
traer objetos referenciados. Persistencia con pipelining:
HTTP Persistente default en HTTP/1.1
servidor deja las conexiones cliente envia requerimientos
abiertas despues de enviar la tan pronto éste encuentra un
respuesta objeto referenciado r tan
mensajes HTTP subsecuentes entre poco como un RTT para
los mimos cliente/servidor son todas las referencias
enviados por la conexión
29
30
15
15/03/2024
~
~ entity body ~
~ body
31
[Link]/animalsearch?monkeys&banana
32
16
15/03/2024
TIPOS DE MÉTODOS
HTTP/1.0 HTTP/1.1
GET GET, POST, HEAD
POST PUT
HEAD Sube archivos en cuerpo del
Pide al servidor que deje el requerimiento en localización indicada
objeto requerido afuera de la por el campo URL
respuesta. DELETE
Borra archivo especificado en el campo
URL
33
34
17
15/03/2024
200 OK
request exitoso, objeto requerido es incluido luego en mensaje
301 Moved Permanently
Se movió el objeto requerido, nueva hubicación es especificada luego en el mensaje
(Location:)
400 Bad Request
Requerimiento no entendido por el servidor
404 Not Found
Documento no encontrado en servidor
505 HTTP Version Not Supported
35
36
18
15/03/2024
37
38
19
15/03/2024
Al margen
COOKIES
Cookies y privacidad:
Cookies permiten que el sitio
Qué pueden transportar las
aprenda mucho sobre uno.
cookies:
Podríamos proveer nombre y
autorización
correo al sitio.
shopping carts
Motores de búsqueda usan
sugerencias
redirecciones y cookies para
Estado de la sesión del
aprender aún más
usuario (Web e-mail)
Compañías de avisos obtienen
información de los sitios WEB
39
40
20
15/03/2024
41
42
21
15/03/2024
EJEMPLO DE CACHE
Posible solución: origin
Aumentar ancho de banda del servers
enlace a, por ejemplo, 10 Mbps public
Internet
Consecuencias:
Utilización de la LAN = 15%
Utilización del enlace de 10 Mbps
acceso = 15% access link
Retardo Total = Retardo institutional
Internet + retardo de acceso + network
10 Mbps LAN
retardo LAN = 2 sec + msecs
+ msecs
A menudo un upgrade caro.
43
EJEMPLO DE CACHE
Instalar un web Cache origin
servers
Supongamos tasa de éxito1 (acierto) de 0.4 public
Consecuencias Internet
44
22
15/03/2024
servidor
GET CONDICIONAL cliente
45
RESUMEN
WWW y Protocolo HTTP
Formato de los mensajes HTTP
Los distintos tipos métodos post get ...
Como son los mensajes http
Hablamos de las Cookies
Web Cache
46
23
15/03/2024
47
48
24
15/03/2024
49
SEGURIDAD WEB
HTTP no es un protocolo seguro
Es simple y no se establece un estado cliente/servidor. Ejecuta
sobre TCP/IP
Es necesario instrumentar medidas de seguridad
Revisaremos SSL (Secure Socket Layer) y su sucesor TLS
(Transport Layer Security)
HTTPS
• Protocolo seguro HTTP
El uso de SSL se aplica también a otras capas TCP/IP, por
ejemplo,
• POP3, SMTP, FTP, SSH, etc.
50
25
15/03/2024
PROCESO DE HTTPS
51
¿QUÉ ES SSL/TSL
SSL (Secure Sockets Layer) traducido al español significa
Capa de Conexiones Seguras. Es un protocolo que hace
uso de certificados digitales para establecer
comunicaciones seguras a través de Internet. Recientemente
ha sido sustituido por TLS (Transport Layer Security) el cual
está basado en SSL y son totalmente compatibles.
Te permite confiar información personal a sitios web, ya
que tus datos se ocultan a través de métodos criptográficos
mientras navegas en sitios seguros.
Es utilizado ampliamente en bancos, tiendas en línea y
cualquier tipo de servicio que requiera el envío de datos
personales o contraseñas. No todos los sitios web usan SSL,
por eso debes ser cuidadoso.
52
26
15/03/2024
53
54
27
15/03/2024
RESUMEN
Protocolos SSL y TSL
Proceso de https
55
56
28
15/03/2024
57
outgoing
message queue
CORREO ELECTRÓNICO user
user mailbox
agent
Tres mayores componentes:
Agente usuario mail user
server
Servidor de correo agent
58
29
15/03/2024
salida SMTP
59
60
30
15/03/2024
61
62
31
15/03/2024
Cuerpo: el “mensaje”
Solo caracteres ASCII
63
32
15/03/2024
PROTOCOLO POP3 S:
C:
+OK POP3 server ready
user bob
Fase de autorización S: +OK
Comandos del cliente: C: pass hungry
user: declara username S: +OK user successfully logged on
pass: password C: list Tamaño del mensaje
Respuesta del servidor S: 1 498
+OK S: 2 912
-ERR S: .
C: retr 1
Fase Transaccional, client: S: <message 1 contents>
list: lista números de mensaje S: .
C: dele 1
retr: extrae mensajes por su
número C: retr 2
S: <message 1 contents>
dele: borra S: .
quit C: dele 2
C: quit
S: +OK POP3 server signing off
65
RESUMEN
El mail y sus protocolos
Servidores de correo
66
33
15/03/2024
67
68
34
15/03/2024
35
15/03/2024
… …
71
72
36
15/03/2024
73
74
37
15/03/2024
EJEMPLO 1
2
3
Consulta iterativa: TLD DNS server
4
Host en [Link] quiere la dirección IP de
[Link] 5
Servidor contactado responde con el nombre local DNS server
del servidor a contactar [Link]
7 6
“Yo no conozco este nombre, pero pregunta a 1 8
este servidor”
authoritative DNS server
[Link]
requesting host
[Link]
[Link]
75
CONSULTAS RECURSIVAS
2 3
7
6
Consulta recursiva : TLD DNS
server
Pone la carga de la resolución de nombre al
local DNS server
servidor contactado. [Link] 5 4
[Link]
76
38
15/03/2024
77
REGISTROS DNS
DNS: es una base de datos distribuida que almacena registros de recursos (RR)
type=A type=CNAME
name es un hostname name is alias para algun nombre
value es una dirección IP “canonico” (el real)
type=NS [Link] es realmente
name es un dominio (e.g., [Link]
[Link]) value es el nombre canonico
value es la direccion IP
(nombre) del servidor type=MX
autoritario que sabe cómo value es el nombre del
obtener las direcciones IP de
este dominio. servidor de correo asociado con
name
78
39
15/03/2024
79
identification flags
80
40
15/03/2024
81
RESUMEN
Sistema de nombres de dominio
Jerarquía de servidores
Servidores raíz
Servidores autoritarios y locales
Cache y actualización de registros
Mensajes del protocolo DNS
Registros
82
41
15/03/2024
83
84
42