Capitulo 2 2
Capitulo 2 2
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes
2.2 Web y HTTP
2.3 FTP
2.4 Correo electrónico
SMTP, POP3, IMAP
2.5 DNS
2.6 Aplicaciones de P2P
2.7 Programación para sockets con UDP y TCP
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
FTP: protocolo de transferencia de archivos
file transfer
FTP FTP FTP
user client server
interface
user
at host remote file
local file system
system
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes
2.2 Web y HTTP
2.3 FTP
2.4 Correo electrónico
SMTP, POP3, IMAP
2.5 DNS
2.6 Aplicaciones de P2P
2.7 Programación para sockets con UDP y TCP
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Correo electrónico: outgoing
message queue
Los 3 principales
componentes: user
user mailbox
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
1
user mail user
mail agent
agent server server
2 3 6
4
5
Alice’s mail server Bob’s mail server
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Formato de un mensaje
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Protocolo POP3
S: +OK POP3 server ready
C: user bob
S: +OK
Fase de autorización C: pass hungry
Comandos cliente: S: +OK user successfully logged on
user: username
C: list
pass: password
S: 1 498
Respuestas del servidor S: 2 912
+OK S: .
-ERR C: retr 1
S: <message 1 contents>
Fase de transacción, cliente: S: .
list: lista nro. mensajes C: dele 1
retr: recuperar mensaje por C: retr 2
número S: <message 1 contents>
dele: borrar S: .
quit: salir C: dele 2
C: quit
S: +OK POP3 server signing off
Application Layer 2-15
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes
2.2 Web y HTTP
2.3 FTP
2.4 Correo electrónico
SMTP, POP3, IMAP
2.5 DNS
2.6 Aplicaciones de P2P
2.7 Programación para sockets con UDP y TCP
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
… …
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Un equipo en el
dominio cis.poly.edu 2
quiere saber la dirección 3
Servidor DNS TLD
IP de gaia.cs.umass.edu 4
Búsqueda por 5
2 3
Búsqueda 7
6
Servidor
recursiva: DNS TLD
Pone la carga en el
de la resolución en el Servidor DNS local
5 4
DNS que se dns.poly.edu
contactó 1 8
Esto pondrá la carga
Servidor DNS de autoridad
muy pesada en dns.cs.umass.edu
niveles más altos de Equipo que solicita
cis.poly.edu
jerarquía?
gaia.cs.umass.edu
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
DNS: caché, actualizando los registros
Una vez que cualquier servidor de nombres se
aprende un mapeo lo pone en su caché
Las entradas en el caché tiene un timeout y desaparecen
después de algún tiempo (TTL)
Los servidores de TLD normalmente están presentes en
el caché de los DNS locales
• por lo tanto, los servidores de nombre raíz no suelen visitarse
Las entradas en los caché pueden estar vencidas
Si el nombre de una IP cambia, pueden no haberse
propagado por todo el Internet hasta que todos los
TTLs hayan expirado
Los mecanismos de actualización y notificación
propuestos para DNS por el IETF
– RFC 2136
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Registros DNS
DNS: base de datos distribuida para guardar registros de recuersos (RR)
RR format: (name, value, type, ttl)
tipo=A tipo=CNAME
name es un nombre de alias para
name es un equipo
algunos nombres “canónicos” (el
value es una dirección IP
nombre real de cada equipo)
tipo=NS www.ibm.com es realmente
name es un dominio servereast.backup2.ibm.com
(e.g., foo.com) value es un nombre canónico
value es el nombre de
host del servidor de tipo=MX
nombres autorizado value es nombre del servidor
para este dominio de correo asociado a ese nombre
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
identification flags
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Atacando un DNS
Ataques de DDoS Ataques de
Bombardear a los redireccionamiento
servidores raíz con tráfico Hombre en el medio
No ha sido exitoso hasta la Se interceptan las búsquedas
fecha Envenenamiento de DNS
Filtrado de tráfico Enviar falsos respuestas que se
Los servidores DNS locales cachean en servidores DNS
almacenan en caché las reales
direcciones IP de los Atacar al servidor DNS para
servidores TLD, lo que generar DDoS
permite omitir el servidor
Enviar consultas con
raíz
direcciones de origen falsas:
Bombardear a los apuntas a una IP
servidores TLD Requiere amplificación para
Es potencialmente más
peligroso que sea efectivo
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes
2.2 Web y HTTP
2.3 FTP
2.4 Correo electrónico
SMTP, POP3, IMAP
2.5 DNS
2.6 Aplicaciones de P2P
2.7 Programación para sockets con UDP y TCP
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Arquitectura P2P pura
No siempre está encendida
Los equipos finales de
comunican arbitraria y
directamente
Los pares (peers) están
conectados de forma
intermiente y pueden
cambiar de IP
ejemplos:
Distribución de archivos
(BitTorrent)
Streaming (KanKan)
VoIP (Skype)
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Distribución de archivos: cliente-servidor vs P2P
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Aumenta linealmente en N
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Aumenta linealmente en N …
… pero al hacer esto, al unirse cada par aumenta la capacidad del servicio
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
P2P distribución de archivos: BitTorrent
Alice llega …
… obtiene la lista del tracker
… y comienza a intercambiar pedazos
del archivo con sus pares en el torrent
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
P2P distribución de archivos: BitTorrent
Un par que llega al torrent:
No tiene pedazos del archivo,
pero los va a acumular en el
tiempo del resto de sus pares
Se registra con el tracker para
obtener la lista de pares, se
conecta con un subconjunto de
pares (“vecinos”)
Mientras descarga, el par va subiendo pedazos a otros pares
El par puede cambiar de pares con quien hacer los intercambios de
pedazos de archivo durante la descarga de la archivo
Si hay abandono: los pares pueden llegar e irse
Una vez que el par obtiene todo el archivo, puede retirarse (si es
egoísta) o permanecer en el torrente (si es altruista)
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
BitTorrent: enviando, solicitando fragmentos de archivos
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Abandono de pares
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Base de datos simple
Una base de datos simple tiene (clave, valor) pares:
• Clave: nombre; valor: número de cédula #
Clave Valor
Alejandra Stolk 11.736.454
Junior Valera 24.566.190
Gustavo Meza 18.244.429
María Monsegui 19.996.373
Robi Rondón 20.200.820
……. ………
Alex Romero 20.433.375
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
DHT Circular
cada par solo conoce su
sucesor inmediato y
predecesor.
1
12
60
13
48
25
40
32 “overlay network”
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
1 Cuál es el valor
asociado con la clave 53?
valor 12
60
13
48
O(N) mensajes 25
en promedio para resolver
consultas, cuando hay 40
32
son N pares
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
DHT Circular con atajos
1 Cuál es el valor
valor asociado con la clave 53
12
60
13
48
25
40
32
• cada par realiza un seguimiento de las direcciones IP del
predecesor, sucesor, atajos.
• reducido de 6 a 3 mensajes.
• posible diseñar accesos directos con vecinos O (log N),
mensajes O (log N) en consulta
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Abandono de pares
1
Manejando el abandono:
los pares pueden ir y venir
3
15 (abandono)
cada par conoce la dirección de
4 sus dos sucesores
12 cada par periódicamente hace
5 ping a sus dos sucesores para
comprobar que están allí
10
8 si el sucesor inmediato se va,
ejemplo: par 5 se va! elija el siguiente sucesor como
nuevo sucesor inmediato
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Abandono de pares
Manejando el abandono:
los pares pueden ir y venir
(abandono)
3
15 cada par conoce la dirección de
sus dos sucesores
4 cada par periódicamente hace
12 ping a sus dos sucesores para
comprobar que están allí
si el sucesor inmediato se va,
10
8 elija el siguiente sucesor como
ejemplo: par 5 se va! nuevo sucesor inmediato
par 4 detecta que par 5 se fue; convierte de inmediato al par 8
en su sucesor inmediato
par 4 pregunta a par 8 quien es su sucesor inmediato;
convierte al sucesor inmediato del par 8 en su segundo sucesor.
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes
2.2 Web y HTTP
2.3 FTP
2.4 Correo electrónico
SMTP, POP3, IMAP
2.5 DNS
2.6 Aplicaciones de P2P
2.7 Programación para sockets con UDP y TCP
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Socket programming
transport transport
network network controlled
link link by OS
Internet
physical physical
Ejemplo:
1. El cliente lee una línea de caracteres (datos) desde
su teclado y envía los datos al servidor.
2. El servidor recibe los datos y convierte los
caracteres a mayúsculas.
3. El servidor envía los datos modificados al cliente.
4. El cliente recibe los datos modificados y muestra
la línea en su pantalla.
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Programación de sockets con UDP
UDP: no “connection” between client & server
sin apretón de manos antes de enviar datos
el remitente adjunta explícitamente la dirección de
destino IP y el número de puerto a cada paquete
rcvr extrae la dirección IP del remitente y el número
de puerto del paquete recibido
UDP: los datos transmitidos pueden perderse o
recibirse fuera de orden
Punto de vista de la aplicación:
UDP proporciona transferencia no confiable de
grupos de bytes ("datagramas") entre el cliente y el
servidor
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
write reply to
serverSocket read datagram from
specifying clientSocket
client address,
port number close
clientSocket
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
App ejemplo: cliente UDP
Python UDPClient
include Python’s socket
library from socket import *
serverName = ‘hostname’
serverPort = 12000
create UDP socket for
server
clientSocket = socket(socket.AF_INET,
get user keyboard socket.SOCK_DGRAM)
input
message = raw_input(’Input lowercase sentence:’)
Attach server name, port to
message; send into socket clientSocket.sendto(message,(serverName, serverPort))
read reply characters from modifiedMessage, serverAddress =
socket into string
clientSocket.recvfrom(2048)
print out received string print modifiedMessage
and close socket
clientSocket.close()
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
App ejemplo: servidor UDP
Python UDPServer
from socket import *
serverPort = 12000
create UDP socket serverSocket = socket(AF_INET, SOCK_DGRAM)
bind socket to local port
number 12000 serverSocket.bind(('', serverPort))
print “The server is ready to receive”
loop forever while 1:
Read from UDP socket message, clientAddress = serverSocket.recvfrom(2048)
into message, getting
client’s address (client IP modifiedMessage = message.upper()
and port)
send upper case string serverSocket.sendto(modifiedMessage, clientAddress)
back to this client
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Interacción Cliente/servidor en un socket: TCP
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
App ejemplo: cliente TCP
Python TCPClient
from socket import *
serverName = ’servername’
create TCP socket for serverPort = 12000
server, remote port 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = raw_input(‘Input lowercase sentence:’)
No need to attach server
name, port
clientSocket.send(sentence)
modifiedSentence = clientSocket.recv(1024)
print ‘From Server:’, modifiedSentence
clientSocket.close()
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
App ejemplo: servidor TCP
Python TCPServer
from socket import *
create TCP welcoming serverPort = 12000
socket serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((‘’,serverPort))
server begins listening for
incoming TCP requests serverSocket.listen(1)
print ‘The server is ready to receive’
loop forever
while 1:
server waits on accept()
for incoming requests, new
connectionSocket, addr = serverSocket.accept()
socket created on return
Chapter 2: resumen
Ya terminamos con la capa de aplicación!
Arquitecturas de aplicación Protocolos específicos:
cliente-servidor HTTP
P2P FTP
Requerimientos de servicios SMTP, POP, IMAP
para las aplicación:
DNS
reliability, bandwidth, delay
Modelo del servicio de P2P: BitTorrent, DHT
transporte de Internet Programando por sockets:
Orientado a la conexión, TCP, UDP
confiable: TCP
Poco confiable,
datagramas: UDP
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012
Redes de computadoras
Chapter 2: resumen
Los más importante: aprendimos sobre protocolos!
intercambio típico de Puntos importantes:
mensaje de
solicitud/respuesta: control vs. mensajes de
el cliente solicita datos
información o servicio centralizado vs.
el servidor responde con descentralizado
datos, código de estado
formatos de los mensajes: sin estado vs. con estado
encabezados: campos transferencia de msg fiable
que dan información vs. no confiable
sobre datos
datos: información que
"Complejidad en el borde de
se comunica la red"
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012