Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes 2.2 Web y HTTP2.3 FTP 2.4 Correo electrónico
SMTP, POP3, IMAP2.5 DNS2.6 Aplicaciones de P2P 2.7 Programación para sockets con UDP y TCP
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
FTP: protocolo de transferencia de archivos
file transferFTP
server
FTPuser
interface
FTPclient
local filesystem
remote filesystem
user at host
transferir archivo desde/hasta el equipo remotomodelo cliente/servidor
cliente: lado que inicia la transferencia (ya sea desde/hacia remoto) servidor: equipo remoto
ftp: utiliza el estándar descrito en el RFC 959 Servidor ftp: utiliza el puerto 21
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
FTP: control separado, conexiones de datos El cliente FTP se conecta al
servidor FTP en el puerto 21, utilizando TCP
El cliente autorizado sobre la conexión de control
El cliente navega por el directorio remoto, envía comandos a través de la conexión de control
Cuando el servidor recibe el comando de transferencia de archivos, el servidor abre la 2da conexión de datos TCP (para el archivo) al cliente
Después de transferir un archivo, el servidor cierra la conexión de datos
FTPclient
FTPserver
TCP control connection,server port 21
TCP data connection,server port 20
El servidor abre otra conexión de datos TCP para transferir otro archivo
Conexión de control: "fuera de banda"
El servidor FTP mantiene "estado": directorio actual, autenticación anterior
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
FTP comandos, respuestas
Algunos comandos: sent as ASCII text over
control channel USER username PASS password LIST return list of file in
current directory RETR filename
retrieves (gets) file STOR filename stores
(puts) file onto remote host
Algunos códigos de respuesta
status code and phrase (as in HTTP)
331 Username OK, password required
125 data connection already open; transfer starting
425 Can’t open data connection
452 Error writing file
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
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes 2.2 Web y HTTP2.3 FTP 2.4 Correo electrónico
SMTP, POP3, IMAP2.5 DNS2.6 Aplicaciones de P2P 2.7 Programación para sockets con UDP y TCP
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
Correo electrónico:Los 3 principales
componentes: Agente de usuario Servidor de correo Protocolo de correo SMTP
(simple mail transfer protocol)
Agente usuario a.k.a. “lector de correo” redactar, editar y leer mensajes
de correo Ejemplos: Outlook,
Thunderbird, webmail Mensajes entrantes, y salientes
son guardados en el servidor
user mailbox
outgoing message queue
mailserver
mailserver
mailserver
SMTP
SMTP
SMTP
useragent
useragent
useragent
useragent
useragent
useragent
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
Correo electrónico: servidor
Servidor de correo: mailbox contiene los
mensajes entrantes del usuario
Cola de mensajes de los correo a ser enviados
Protocolo SMTP entre los servidores de correo para enviar/recibir mensajes cliente: enviando
mensajes “servidor”: recibiendo
mensajes
mailserver
mailserver
mailserver
SMTP
SMTP
SMTP
useragent
useragent
useragent
useragent
useragent
useragent
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
Correo electrónico: SMTP [RFC 2821] Usa TCP para transferir de forma confiable un
correo entre el cliente y el servidor a través del puerto 25
Usa transferencia directa: del servidor que envía al servidor que recibe
Establece 3 fases de transferencia handshaking (saludo) transferencia del mensaje cierre
Interacción de comandos/respuestas (parecido a HTTP, FTP) comandos: texto ASCII respuesta: código de estatus y frases
Los mensajes deben estar en ASCII de 7 bits
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
useragent
Escenario: Alicia envía un correo a a Bob
1) Alice usa UA para redactar un correo “para” [email protected]
2) Alice’s UA envía mensaje a su servidor de correo; este mensaje entra en la cola de correos salientes
3) Del lado cliente de SMTP se abre una conexión TCP con el servidor de correo de Bob
4) El cliente SMTP envía el mensaje de Alice sobre una conexión TCP
5) El servidor de correo de Bob pone el mensaje en el buzón de correo de Bob
6) Bob abre su cliente de correo y este invoca a agente para que lea los mensajes que están en el servidor
mailserver
mailserver
1
2 3 45
6
Alice’s mail server Bob’s mail server
useragent
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012Application Layer 2-10
Ejemplo de interacción SMTP
S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 [email protected]... Sender ok C: RCPT TO: S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection
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
SMTP: palabras finales Las conexiones SMTP son
persistentes SMTP requiere que el
mensaje (cabecera y cuerpo) esté en ASCII de 7-bits
El servidor de correo SMTP usa CRLF.CRLF para determinar un fin de mensaje
Comparación con HTTP: HTTP: hala SMTP: empuja
Ambos tienen comandos ASCII para la interacción y códigos de estatus
HTTP: cada objeto es encapsulado es un propio mensaje de respuesta
SMTP: múltiples objetos son enviados en un sólo mensaje con diversas partes
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012Application Layer 2-12
Prueba una interacción de SMTP:
telnet servername 25 see 220 reply from server enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
commands
con estos comandos puedes enviar correo sin usar un cliente de correo cómo tal
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
Formato de un mensaje
SMTP: protocolo para el intercambio de mensajes
RFC 822: estándar para el formato del texto en el mensaje:
Ejemplo: en la cabecera, Para: Desde: Asunto:diferente para SMTP MAIL
FROM, RCPT TO: comandos!
Cuerpo: el “mensaje” Sólo carácteres ASCII
header
body
líneaen blanco
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
Protocolos que intervienen en el correo
SMTP: envío/almacenamiento en el servidor de quien recibe
Protocolo de acceso a correo: retiro de correo del servidor POP: Protocolo de la Oficina Postal [RFC 1939]:
autorización, descarga IMAP: Internet Protocolo de acceso al correo [RFC
1730]: más funcionalidad, incluye la manipulación mensajes almacenados en el servidor
HTTP: gmail, Hotmail, Yahoo! Mail, etc.
sender’s mail server
SMTP SMTP mail accessprotocol
receiver’s mail server
(e.g., POP, IMAP)
useragent
useragent
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012Application Layer 2-15
Protocolo POP3
Fase de autorización Comandos cliente:
user: username pass: password
Respuestas del servidor +OK -ERR
Fase de transacción, cliente: list: lista nro. mensajes retr: recuperar mensaje por
número dele: borrar quit: salir
C: list S: 1 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2 C: quit S: +OK POP3 server signing off
S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on
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
POP3 (más) e IMAPmás sobre POP3 el ejemplo anterior utiliza
el modo "descargar y eliminar" POP3 Bob no puede volver a
leer el correo electrónico si cambia de cliente
POP3 "descargar y mantener": copias de mensajes en diferentes clientes
POP3 está “sin estado” en todas las sesiones
IMAP mantiene todos los
mensajes en un solo lugar: en el servidor
permite al usuario organizar mensajes en carpetas
mantiene el estado del usuario en todas las sesiones: nombres de carpetas y
mapeos entre ID de mensaje y nombre de carpeta
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
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes 2.2 Web y HTTP2.3 FTP 2.4 Correo electrónico
SMTP, POP3, IMAP2.5 DNS2.6 Aplicaciones de P2P 2.7 Programación para sockets con UDP y TCP
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
DNS: sistema de nombres de dominio
personas: muchos identificadores: cédula, nombre,
pasaporte #equipos de Internet, enrutador:
Dirección IP (32 bit) - utilizado para direccionar datagramas
“nombre”, ejemplo, www.yahoo.com - usado por humanos
P: ¿Cómo mapear entre la dirección IP y el nombre, y viceversa?
Sistema de nombres de dominio:
Base de datos distribuida implementado en jerarquía de muchos servidores de nombres
Protocolo de aplicación: equipos, servidores DNS se comunican para resolver (traducir dirección/nombre)
OJO: función central de Internet, implementada como protocolo de capa de aplicación
En los bordes la complejidad de la redes
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
DNS: servicios, estructura
¿Porque no centralizar el DNS?
Punto único de falla Volumen de tráfico Una base de datos distante y
centralizada Mantenimiento y tiempos de
respuesta
DNS servicios Traducción: nombre del
equipo a dirección IP Alias para los equipos
canonicos, alias de nombre Juntas varios equipos con
un alias Distribución de la carga
Páginas Web distribuidas en diversos servidores: muchas direcciones IP corresponden a un mismo servicio
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
Servidores DNS Raíz
Servidores DNS com Servidores DNS org Servidores DNS edu
Servidores DNSpoly.edu
Servidores DNSumass.eduServidores DNS
yahoo.comServidores DNSamazon.com
Servidores DNSPublicos .org
DNS: Una base de datos distribuida y jerárquica
Un cliente necesita una IP para www.amazon.com; su 1era aproximación es:
Una búsqueda en servidores raíz para buscar el servidores DNS de los com
Una búsqueda en los servidores .com lo lleva al servidor DNS del dominio amazon.com
Una búsqueda en los servidores de amazon.com le dara la dirección específica para el sitio www.amazon.com
… …
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
DNS: servidores raíz
Son contactados por un servidor DNS local no puede resolver un nombre
Un servidor de nombre raíz: contacts authoritative name server if name mapping not known Obtiene el mapeo Devuelve al servidor local el mapeo obtenido
13 servidores de nombre raíz mundiales
a. Verisign, Los Angeles CA (5 other sites)b. USC-ISI Marina del Rey, CAl. ICANN Los Angeles, CA (41 other sites)
e. NASA Mt View, CAf. Internet Software C.Palo Alto, CA (and 48 other sites)
i. Netnod, Stockholm (37 other sites)
k. RIPE London (17 other sites)
m. WIDE Tokyo(5 other sites)
c. Cogent, Herndon, VA (5 other sites)d. U Maryland College Park, MDh. ARL Aberdeen, MDj. Verisign, Dulles VA (69 other sites )
g. US DoD Columbus, OH (5 other sites)
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
TLD, servidores de autoridad
Servidores de dominio primer nivel (TLD): Responsables de los dominios de primer nivel para com,
org, net, edu, aero, jobs, museums, y todos los dominios a nivel de país, ejemplo: uk, fr, ca, jp
Network Solutions mantiene los servidores para los TLD de .com
Educause para los .edu TLD
Servidores DNS de autoridad: Servidores de DNS propios que proveen nombres a los
equipos y entregan sus direcciones IP Pueden ser administrados por la rganización por un
proveedor de servicios
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
Servidores Locales de DNS No pertenece de forma estricta a la jerarquía de
servicios de nombres Cada ISP (residencial, comercial, universidad)
tiene uno También son conocidos como “servidor de nombres
por omisión” “default name server” Cuando un equipo hace una búsqueda de nombre,
la misma se realiza enviando la búsqueda uan DNS local Tiene un caché local de las traducciones equipo-
dirección ip (pero OJO puede no estar actualizado!) Actúa de forma similar a un proxy, sino lo tiene en el
cache re-envía la búsqueda al siguiente en la jerarquía
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
Equipo que solicitacis.poly.edu
gaia.cs.umass.edu
Servidor DNS raíz
Servidor DNS localdns.poly.edu
1
23
4
5
6
Servidor DNS de autoridaddns.cs.umass.edu
78
Servidor DNS TLD
Un ejemplo Un equipo en el
dominio cis.poly.edu quiere saber la dirección IP de gaia.cs.umass.edu
Búsqueda por iteraciones:
Cada servidor contactado contesta con los datos que a quien se debe contactar para resolver el nombre
“Yo no sé ese nombre, pero preguntale a este servidor”
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
45
6
3
Búsqueda recursiva:
Pone la carga en el de la resolución en el DNS que se contactó
Esto pondrá la carga muy pesada en niveles más altos de jerarquía?
gaia.cs.umass.edu
1
27
8
Un ejemplo (2) Servidor DNS raíz
Servidor DNS localdns.poly.edu
Servidor DNS de autoridaddns.cs.umass.edu
Servidor DNS TLD
Equipo que solicitacis.poly.edu
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
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
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
Registros DNS
DNS: base de datos distribuida para guardar registros de recuersos (RR)
tipo=NS name es un dominio
(e.g., foo.com) value es el nombre de
host del servidor de nombres autorizado para este dominio
RR format: (name, value, type, ttl)
tipo=A name es un equipo value es una dirección IP
tipo=CNAME name es un nombre de alias para
algunos nombres “canónicos” (el nombre real de cada equipo)
www.ibm.com es realmente servereast.backup2.ibm.com value es un nombre canónico
tipo=MX value es nombre del servidor
de correo asociado a ese nombre
http://www.ibm.com/
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
DNS protocol, messages
Mensajes de búsqueda y respuesta, ambos con el mismo formato
cabecera del mensaje identificación: 16 bit # para
búsqueda, la respuesta a la búsqueda usa el mismo #
banderas: búsqueda o respuesta Es deseable la recursión La recursión está
disponible La respuesta es de una
autoridad
identification flags
# questions
questions (variable # of questions)
# additional RRs# authority RRs
# answer RRs
answers (variable # of RRs)
authority (variable # of RRs)
additional info (variable # of RRs)
2 bytes 2 bytes
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
DNS protocol, messages
identification flags
# questions
questions (variable # of questions)
# additional RRs# authority RRs
# answer RRs
answers (variable # of RRs)
authority (variable # of RRs)
additional info (variable # of RRs)
2 bytes 2 bytes
nombre, tipo de campos para búsquedas
RRs en respuesta a una búsqueda
Registros para servidores autoridazados
información adicional
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012Application Layer 2-30
Agregando registros al DNS
Ejemplo: una nueva empresa “Network Utopia” Registra su nombre networkuptopia.com en
registrador de dominos de DNS (e.g., Network Solutions) Indica el nombre, la dirección IP addresses de su servidor
autorizado (primaria y secundaria) El registrador inserta 2 RRs en el servidor TLD para .com:(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A) crea un servidor autorizado con un registro tipo A
para www.networkuptopia.com y otro registro tipo MX para networkutopia.com
http://www.networkuptopia.com/
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
Atacando un DNSAtaques de DDoS Bombardear a los
servidores raíz con tráfico No ha sido exitoso hasta la
fecha Filtrado de tráfico Los servidores DNS locales
almacenan en caché las direcciones IP de los servidores TLD, lo que permite omitir el servidor raíz
Bombardear a los servidores TLD Es potencialmente más
peligroso
Ataques de redireccionamiento
Hombre en el medio Se interceptan las búsquedas
Envenenamiento de DNS Enviar falsos respuestas que se
cachean en servidores DNS reales
Atacar al servidor DNS para generar DDoS
Enviar consultas con direcciones de origen falsas: apuntas a una IP
Requiere amplificación para que sea efectivo
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
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes 2.2 Web y HTTP2.3 FTP 2.4 Correo electrónico
SMTP, POP3, IMAP2.5 DNS2.6 Aplicaciones de P2P 2.7 Programación para sockets con UDP y TCP
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
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)
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
Distribución de archivos: cliente-servidor vs P2P
Pregunta: Cuanto tiempo tardas en distribuir un archivo (tamaño F) de un servidor a N equipos? La capacidad de descarga/subida de cada par (equipo) es
diferente
us
uN
dN
server
red (con mucho ancho de banda)
aechivo, tamaño F
us: server upload capacity
ui: peer i upload capacity
di: peer i download capacityu2 d2
u1 d1
di
ui
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
Tiempo de distribución: cliente-servidor
transmisión del servidor: debe enviar secuencialmente (subir) N copias del archivo: Tiempo de enviar una copia: F/us Tiempo de enviar N copias: NF/us
Aumenta linealmente en N
Tiempo para distribuir F a N clientes usando
el modelo cliente-servidor Dc-s > max{NF/us,,F/dmin}
cliente: cada cliente debe descargar un copia del archivo dmin = tasa de descarga min del
cliente Tiempo mínimo de descarga: F/dmin
us
networkdi
ui
F
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
Tiempo de distribución: P2P
transmisión del servidor: debe subir al menos una copia de F Tiempo para enviar una copia: F/us
Tiempo para distribuir F a N clientes usando
el modelo P2P
us
networkdi
ui
F
DP2P > max{F/us,,F/dmin,,NF/(us + ui)}
cliente: cada cliente debe descargar su copia de F Tiempo mínimo de descarga: F/dmin
clientes: cómo agregados deben descargar NF bits max tasa de subida (limitada la taza max de descarga) es
us + ui
… pero al hacer esto, al unirse cada par aumenta la capacidad del servicioAumenta linealmente en N …
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
Cliente-Servidor vs. P2P: ejemplo
Tasa de subida del cliente = u, F/u = 1 hour, us = 10u, dmin ≥ us
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
P2P distribución de archivos: BitTorrent
tracker: hace seguimiento de los pares que están participando en el torrent
torrent: grupo de pares intercambiando pedazos de
un archivo
Alice llega …
Un archivo es dividido en pedazos de 256Kb Pares en el torrent envían/reciben los pedazos
del archivo
… obtiene la lista del tracker… y comienza a intercambiar pedazos del archivo con sus pares en el torrent
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
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)
P2P distribución de archivos: BitTorrent
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
BitTorrent: enviando, solicitando fragmentos de archivos
Solicitando fragmentos: en un momento dado,
diferentes pares tienen diferentes subconjuntos de fragmentos de archivos
periódicamente, Alice le pide a cada compañero una lista de los trozos que tienen
Alice solicita trozos faltantes de sus compañeros, los más raros primero
Enviando fragmentos: “tal para cual” Alice envía trozos a esos cuatro
pares que actualmente le envían sus trozos a la tasa más alta otros pares son asfixiados por
Alice (no recibe trozos de ella) reevaluar los 4 primeros cada 10
segundos cada 30 segundos: selecciona
aleatoriamente otro par, comienza a enviar fragmentos De forma optimista saca de la azfix
ia a ese para y comienza a enviarle Este nuevo para puede entrar en
el top 4 y permanecer recibiendo el fragmento
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
BitTorrent: “tal para cual”(1) Alice “de forma optimista saca de la asfixia” a Bob(2) Alice se convierte en uno de los top-4 proveedores de Bob; Bob contesta con reciprocidad(3) Bob se convierte en uno de los top-4 proveedores de Alice
mayor tasa de subida: encuentras mejores socios comerciales, ¡obtienes el archivo más rápido!
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
Tabla hash distribuida (DHT)
Tabla Hash
Paradigma DHT paradigm
DHT Circular y redes de superposición
Abandono de pares
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
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
Una base de datos simple tiene (clave, valor) pares: • Clave: nombre; valor: número de cédula #
Base de datos simple
• Clave: titulo de la peli; Valor: dirección IP
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
Clave original clave valor
Alejandra Stolk 8962458 11.736.454
Junior Valera 7800356 24.566.190
Gustavo Meza 1567109 18.244.429
María Monsegui 2360012 19.996.373
Robi Rondón 5430938 20.200.820
……. ………
Alex Romero 9290124 20.433.375
• Más conveniente para almacenar y buscar es la representación numérica de la clave• Clave = hash(clave original)
Tabla Hash
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
distribuye parejas (clave, valor) sobre millones de pares– las parejas se distribuyen uniformemente sobre los
pares cualquier par puede consultar la base de datos con una
clave– la base de datos devuelve valor para la clave– para resolver la consulta, se intercambia un pequeño
número de mensajes entre pares Cada par solo conoce a un pequeño número de otros
pares Robusto para los pares que van y vienen (abandono)
Tabla hash distribuida (DHT)
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
Asignar parejas clave-valor a los pares
regla: asigna una pareja clave-valor al par que tiene el ID más cercano
convención: el más cercano es el sucesor inmediato de la clave.
Ejemplo, ID espacio {0,1,2,3,…,63} supongamos 8 pares: 1,12,13,25,32,40,48,60
Si la clave es = 51, se asigna al par 60 Si la clave es = 60, se asigna al par 60 Si la clave es = 31, se asigna al par 32
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
1
12
13
25
3240
48
60
DHT Circular
cada par solo conoce susucesor inmediato ypredecesor.
“overlay network”
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
1
12
13
25
3240
48
60
Cuál es el valorasociado con la clave 53?
valor
O(N) mensajesen promedio para resolverconsultas, cuando hayson N pares
Resolviendo una búsqueda
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
DHT Circular con atajos
• 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
1
12
13
25
3240
48
60
Cuál es el valorasociado con la clave 53
valor
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
Abandono de pares
ejemplo: par 5 se va!
1
3
4
5
810
12
15
Manejando el abandono:los pares pueden ir y venir (abandono)cada par conoce la dirección de sus dos sucesorescada par periódicamente hace ping a sus dos sucesores para comprobar que están allísi el sucesor inmediato se va, elija el siguiente sucesor como nuevo sucesor inmediato
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
ejemplo: par 5 se va!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.
3
4
810
12
15
Abandono de paresManejando el abandono:los pares pueden ir y venir (abandono)cada par conoce la dirección de sus dos sucesorescada par periódicamente hace ping a sus dos sucesores para comprobar que están allísi el sucesor inmediato se va, elija el siguiente sucesor como nuevo sucesor inmediato
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
Capítulo 2: la ruta
2.1 principios de aplicaciones de redes 2.2 Web y HTTP2.3 FTP 2.4 Correo electrónico
SMTP, POP3, IMAP2.5 DNS2.6 Aplicaciones de P2P 2.7 Programación para sockets con UDP y TCP
Redes de computadoras
Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6th edition, Addison-Wesley, 2012Application Layer 2-53
Socket programming
objetivo: aprender a construir aplicaciones cliente/servidor que se comuniquen usando sockets
socket: puerta entre el proceso de solicitud y el protocolo de transporte de extremo a extremo
Internet
controlledby OS
controlled byapp developer
transport
application
physicallink
network
process
transport
application
physicallink
network
processsocket
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
Programación de socket
Dos tipos de socket para dos servicios de transporte: UDP: datagrama no confiable TCP: onfiable, orientado a flujo de bytes
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.
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
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
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
Interacción Cliente/servidor en un socket: UDP
closeclientSocket
read datagram fromclientSocket
create socket:clientSocket =socket(AF_INET,SOCK_DGRAM)
Create datagram with server IP andport=x; send datagram viaclientSocket
create socket, port= x:serverSocket =socket(AF_INET,SOCK_DGRAM)
read datagram fromserverSocket
write reply toserverSocketspecifying client address,port number
server (running on serverIP) client
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
App ejemplo: cliente UDP
from socket import *serverName = ‘hostname’serverPort = 12000clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM)message = raw_input(’Input lowercase sentence:’)clientSocket.sendto(message,(serverName, serverPort))modifiedMessage, serverAddress = clientSocket.recvfrom(2048)print modifiedMessageclientSocket.close()
Python UDPClientinclude Python’s socket library
create UDP socket for server
get user keyboardinput
Attach server name, port to message; send into socket
print out received string and close socket
read reply characters fromsocket into string
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
App ejemplo: servidor UDP
from socket import *serverPort = 12000serverSocket = socket(AF_INET, SOCK_DGRAM)serverSocket.bind(('', serverPort))print “The server is ready to receive”while 1: message, clientAddress = serverSocket.recvfrom(2048) modifiedMessage = message.upper() serverSocket.sendto(modifiedMessage, clientAddress)
Python UDPServer
create UDP socket
bind socket to local port number 12000
loop forever
Read from UDP socket into message, getting client’s address (client IP and port)
send upper case string back to this client
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
Programación de socket con TCP
el cliente debe contactar al servidor
el proceso del servidor primero debe estar ejecutándose
el servidor debe haber creado un socket (puerta) que dé la bienvenida al contacto del cliente
cliente contactados por el servidor:
Creación de socket TCP, especificando la dirección IP, número de puerto del proceso del servidor
cuando el cliente crea el socket: el cliente TCP establece la conexión al servidor TCP
cuando el cliente se pone en contacto con el servidor TCP crea un nuevo socket para que el proceso del servidor se comunique con ese cliente en particular: permite que el servidor hable
con múltiples clientes números de puerto fuente son
utilizados para distinguir clientes (más en el capítulo 3)
TCP proporciona una conexión confiable, en ordende transferencia de flujo de bytes ("pipes")entre el cliente y el servidor
Punto de vista de la aplicación:
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
wait for incomingconnection requestconnectionSocket =serverSocket.accept()
create socket,port=x, for incoming request:serverSocket = socket()
create socket,connect to hostid, port=xclientSocket = socket()
server (running on hostid) client
send request usingclientSocketread request from
connectionSocket
write reply toconnectionSocket
TCP connection setup
closeconnectionSocket
read reply fromclientSocket
closeclientSocket
Interacción Cliente/servidor en un socket: TCP
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
from socket import *serverName = ’servername’serverPort = 12000clientSocket = socket(AF_INET, SOCK_STREAM)clientSocket.connect((serverName,serverPort))sentence = raw_input(‘Input lowercase sentence:’)clientSocket.send(sentence)modifiedSentence = clientSocket.recv(1024)print ‘From Server:’, modifiedSentenceclientSocket.close()
Python TCPClient
create TCP socket for server, remote port 12000
No need to attach server name, port
App ejemplo: cliente TCP
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
from socket import *serverPort = 12000serverSocket = socket(AF_INET,SOCK_STREAM)serverSocket.bind((‘’,serverPort))serverSocket.listen(1)print ‘The server is ready to receive’while 1: connectionSocket, addr = serverSocket.accept() sentence = connectionSocket.recv(1024) capitalizedSentence = sentence.upper() connectionSocket.send(capitalizedSentence) connectionSocket.close()
Python TCPServer
create TCP welcomingsocket
server begins listening for incoming TCP requests
loop forever
server waits on accept()for incoming requests, new socket created on return
read bytes from socket (but not address as in UDP)
close connection to this client (but not welcoming socket)
App ejemplo: servidor TCP
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
Chapter 2: resumen
Arquitecturas de aplicación cliente-servidor P2P
Requerimientos de servicios para las aplicación: reliability, bandwidth, delay
Modelo del servicio de transporte de Internet Orientado a la conexión,
confiable: TCP Poco confiable,
datagramas: UDP
Ya terminamos con la capa de aplicación! Protocolos específicos:
HTTP FTP SMTP, POP, IMAP DNS P2P: BitTorrent, DHT
Programando por sockets: TCP, UDP
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
intercambio típico de mensaje de solicitud/respuesta: el cliente solicita
información o servicio el servidor responde con
datos, código de estado formatos de los mensajes:
encabezados: campos que dan información sobre datos
datos: información que se comunica
Puntos importantes: control vs. mensajes de
datos centralizado vs.
descentralizado sin estado vs. con estado transferencia de msg fiable
vs. no confiable "Complejidad en el borde de
la red"
Chapter 2: resumenLos más importante: aprendimos sobre protocolos!
Diapositiva 1Diapositiva 2Diapositiva 3Diapositiva 4Diapositiva 5Diapositiva 6Diapositiva 7Diapositiva 8Diapositiva 9Diapositiva 10Diapositiva 11Diapositiva 12Diapositiva 13Diapositiva 14Diapositiva 15Diapositiva 16Diapositiva 17Diapositiva 18Diapositiva 19Diapositiva 20Diapositiva 21Diapositiva 22Diapositiva 23Diapositiva 24Diapositiva 25Diapositiva 26Diapositiva 27Diapositiva 28Diapositiva 29Diapositiva 30Diapositiva 31Diapositiva 32Diapositiva 33Diapositiva 34Diapositiva 35Diapositiva 36Diapositiva 37Diapositiva 38Diapositiva 39Diapositiva 40Diapositiva 41Diapositiva 42Diapositiva 43Diapositiva 44Diapositiva 45Diapositiva 46Diapositiva 47Diapositiva 48Diapositiva 49Diapositiva 50Diapositiva 51Diapositiva 52Diapositiva 53Diapositiva 54Diapositiva 55Diapositiva 56Diapositiva 57Diapositiva 58Diapositiva 59Diapositiva 60Diapositiva 61Diapositiva 62Diapositiva 63Diapositiva 64