0% encontró este documento útil (0 votos)
76 vistas64 páginas

Capitulo 2 2

El documento resume varios protocolos de red comúnmente usados. Explica brevemente el protocolo FTP que se usa para transferir archivos entre un cliente y servidor, incluyendo la conexión de control separada y conexiones de datos. También describe el protocolo SMTP que se usa para enviar correo electrónico entre servidores de correo, así como los componentes principales de un sistema de correo como agentes de usuario, servidores de correo y buzones de correo de usuario.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
76 vistas64 páginas

Capitulo 2 2

El documento resume varios protocolos de red comúnmente usados. Explica brevemente el protocolo FTP que se usa para transferir archivos entre un cliente y servidor, incluyendo la conexión de control separada y conexiones de datos. También describe el protocolo SMTP que se usa para enviar correo electrónico entre servidores de correo, así como los componentes principales de un sistema de correo como agentes de usuario, servidores de correo y buzones de correo de usuario.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 64

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
FTP: protocolo de transferencia de archivos

file transfer
FTP FTP FTP
user client server
interface
user
at host remote file
local file system
system

 transferir archivo desde/hasta el equipo remoto


 modelo 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

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: control separado, conexiones de datos


 El cliente FTP se conecta al
servidor FTP en el puerto 21, TCP control connection,
utilizando TCP server port 21
 El cliente autorizado sobre la
conexión de control TCP data connection,
FTP server port 20 FTP
 El cliente navega por el client server
directorio remoto, envía
comandos a través de la
conexión de control  El servidor abre otra
 Cuando el servidor recibe el conexión de datos TCP para
comando de transferencia de transferir otro archivo
archivos, el servidor abre la 2da  Conexión de control: "fuera
conexión de datos TCP (para el de banda"
archivo) al cliente
 El servidor FTP mantiene
 Después de transferir un archivo,
el servidor cierra la conexión de
"estado": directorio actual,
datos autenticación anterior

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 comandos, respuestas


Algunos comandos: Algunos códigos de
 sent as ASCII text over respuesta
control channel  status code and phrase (as
 USER username in HTTP)
 PASS password  331 Username OK,
password required
 LIST return list of file in
current directory
 125 data
connection already
 RETR filename open; transfer
retrieves (gets) file starting
 STOR filename stores  425 Can’t open
(puts) file onto remote data connection
host  452 Error writing
file

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

 Agente de usuario agent

 Servidor de correo mail user


server
 Protocolo de correo SMTP agent
(simple mail transfer SMTP mail user
protocol) server agent
SMTP
Agente usuario user
 a.k.a. “lector de correo” SMTP agent
mail
 redactar, editar y leer mensajes server
de correo user
 Ejemplos: Outlook, agent
Thunderbird, webmail user
 Mensajes entrantes, y salientes agent
son guardados en 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

Correo electrónico: servidor


Servidor de correo: user
agent
 mailbox contiene los
mail
mensajes entrantes del server
user
agent
usuario
 Cola de mensajes de los SMTP mail user
correo a ser enviados server agent
 Protocolo SMTP entre los SMTP
servidores de correo para user
enviar/recibir mensajes SMTP agent
mail
 cliente: enviando server
user
mensajes agent
 “servidor”: recibiendo user
mensajes agent

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: 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
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
Escenario: Alicia envía un correo a a Bob
1) Alice usa UA para redactar 4) El cliente SMTP envía el
un correo “para” mensaje de Alice sobre una
[email protected] conexión TCP
2) Alice’s UA envía mensaje a 5) El servidor de correo de
su servidor de correo; este Bob pone el mensaje en el
mensaje entra en la cola de buzón de correo de Bob
correos salientes 6) Bob abre su cliente de
3) Del lado cliente de SMTP se correo y este invoca a
abre una conexión TCP con agente para que lea los
el servidor de correo de mensajes que están en el
Bob servidor

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

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: <[email protected]>
S: 250 [email protected]... Sender ok
C: RCPT TO: <[email protected]>
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

Application Layer 2-10


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

SMTP: palabras finales


 Las conexiones SMTP son Comparación con HTTP:
persistentes  HTTP: hala
 SMTP requiere que el
mensaje (cabecera y
 SMTP: empuja
cuerpo) esté en ASCII de
7-bits
 Ambos tienen comandos
ASCII para la interacción y
 El servidor de correo códigos de estatus
SMTP usa CRLF.CRLF
para determinar un fin de  HTTP: cada objeto es
mensaje encapsulado es un propio
mensaje de respuesta
 SMTP: múltiples objetos
son enviados en un sólo
mensaje con diversas
partes
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

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

Application Layer 2-12


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

SMTP: protocolo para el


intercambio de mensajes header
línea
RFC 822: estándar para el en blanco
formato del texto en el
mensaje:
 Ejemplo: en la cabecera, body
 Para:
 Desde:
 Asunto:
diferente para SMTP MAIL
FROM, RCPT TO:
comandos!
 Cuerpo: el “mensaje”
 Sólo carácteres ASCII
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

Protocolos que intervienen en el correo


user mail user
SMTP SMTP access
agent agent
protocol
(e.g., POP,
IMAP)
sender’s mail receiver’s mail
server server
 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.

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

POP3 (más) e IMAP


más sobre POP3 IMAP
 el ejemplo anterior utiliza  mantiene todos los
el modo "descargar y mensajes en un solo lugar:
eliminar" POP3 en el servidor
 Bob no puede volver a  permite al usuario
leer el correo organizar mensajes en
electrónico si cambia carpetas
de cliente  mantiene el estado del
 POP3 "descargar y usuario en todas las
mantener": copias de sesiones:
mensajes en diferentes  nombres de carpetas y
clientes mapeos entre ID de
 POP3 está “sin estado” en mensaje y nombre de
todas las sesiones carpeta

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

DNS: sistema de nombres de dominio


personas: muchos Sistema de nombres de
identificadores: dominio:
 cédula, nombre,  Base de datos distribuida
pasaporte # implementado en jerarquía de
equipos de Internet, enrutador: muchos servidores de
 Dirección IP (32 bit) - nombres
utilizado para Protocolo de aplicación: equipos,
direccionar datagramas servidores DNS se comunican
 “nombre”, ejemplo, para resolver (traducir
www.yahoo.com - dirección/nombre)
usado por humanos  OJO: función central de
Internet, implementada como
P: ¿Cómo mapear entre la protocolo de capa de
dirección IP y el nombre, aplicación
y viceversa?
 En los bordes la complejidad
de la redes
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: servicios, estructura


DNS servicios ¿Porque no centralizar el
 Traducción: nombre del DNS?
equipo a dirección IP  Punto único de falla
 Alias para los equipos  Volumen de tráfico
 canonicos, alias de nombre  Una base de datos distante y
 Juntas varios equipos con centralizada
un alias  Mantenimiento y tiempos de
 Distribución de la carga respuesta
 Páginas Web
distribuidas en
diversos servidores:
muchas direcciones IP
corresponden a un
mismo 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

DNS: Una base de datos distribuida y jerárquica


Servidores DNS Raíz

… …

Servidores DNS com Servidores DNS org Servidores DNS edu

Servidores DNS Servidores DNS


Servidores DNS Servidores DNS Servidores DNS umass.edu
amazon.com Publicos .org poly.edu
yahoo.com

Un cliente necesita una IP para www.amazon.com; su 1 era


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
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: 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
c. Cogent, Herndon, VA (5 other sites)
d. U Maryland College Park, MD k. RIPE London (17 other sites)
h. ARL Aberdeen, MD
j. Verisign, Dulles VA (69 other sites ) i. Netnod, Stockholm (37 other sites)

e. NASA Mt View, CA m. WIDE Tokyo


f. Internet Software C. (5 other sites)
Palo Alto, CA (and 48 other
sites)

a. Verisign, Los Angeles CA 13 servidores de


(5 other sites)
b. USC-ISI Marina del Rey, CA nombre raíz
l. ICANN Los Angeles, CA
(41 other sites)
mundiales
g. US DoD Columbus,
OH (5 other sites)

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

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

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

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

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 ejemplo Servidor DNS raíz

 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

iteraciones: Servidor DNS local


 Cada servidor dns.poly.edu
7 6
contactado contesta 1 8
con los datos que a
quien se debe Servidor DNS de autoridad
contactar para dns.cs.umass.edu
resolver el nombre Equipo que solicita
cis.poly.edu
 “Yo no sé ese nombre,
pero preguntale a este gaia.cs.umass.edu
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

Un ejemplo (2) Servidor DNS raíz

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

DNS protocol, messages


 Mensajes de búsqueda y respuesta, ambos con el
mismo formato 2 bytes 2 bytes

cabecera del mensaje identification flags

 identificación: 16 bit # para # questions # answer RRs


búsqueda, la respuesta a la
# authority RRs # additional RRs
búsqueda usa el mismo #
 banderas: questions (variable # of questions)
 búsqueda o respuesta
 Es deseable la recursión answers (variable # of RRs)
 La recursión está
disponible authority (variable # of RRs)
 La respuesta es de una
autoridad additional info (variable # of RRs)

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 protocol, messages


2 bytes 2 bytes

identification flags

# questions # answer RRs

# authority RRs # additional RRs

nombre, tipo de questions (variable # of questions)


campos para búsquedas
RRs en respuesta a answers (variable # of RRs)
una búsqueda
Registros para authority (variable # of RRs)
servidores autoridazados

información adicional additional info (variable # of RRs)

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

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

Application Layer 2-30


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

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: server upload
capacity

u1 di: peer i download


aechivo, us d1 u2 capacity
d2
tamaño F server
di
uN red (con mucho ancho de banda)
ui
dN
ui: peer i upload
capacity

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

Tiempo de distribución: cliente-servidor


 transmisión del servidor: debe
enviar secuencialmente F
us
(subir) N copias del archivo: di
 Tiempo de enviar una copia: F/us network
ui
 Tiempo de enviar N copias: NF/us
 cliente: cada cliente debe
descargar un copia del archivo
 dmin = tasa de descarga min del
cliente
 Tiempo mínimo de descarga: F/dmin

Tiempo para distribuir F


a N clientes usando Dc-s > max{NF/us,,F/dmin}
el modelo cliente-servidor

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

Tiempo de distribución: P2P


 transmisión del servidor: debe
subir al menos una copia de F F
us
 Tiempo para enviar una copia: F/us
di
 cliente: cada cliente debe network
descargar su copia de F ui
 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
Tiempo para distribuir F
a N clientes usando DP2P > max{F/us,,F/dmin,,NF/(us + ui)}
el modelo P2P

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

Cliente-Servidor vs. P2P: ejemplo


Tasa de subida del cliente = u, F/u = 1 hour, us = 10u, dmin ≥ us

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 archivo es dividido en pedazos de 256Kb


 Pares en el torrent envían/reciben los pedazos
del archivo
tracker: hace seguimiento de los pares que
torrent: grupo de pares
están participando en el torrent intercambiando pedazos de
un archivo

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

Solicitando fragmentos: Enviando fragmentos: “tal para cual”


 en un momento dado,  Alice envía trozos a esos cuatro
diferentes pares tienen pares que actualmente le envían
diferentes subconjuntos de sus trozos a la tasa más alta
fragmentos de archivos  otros pares son asfixiados por
Alice (no recibe trozos de ella)
 periódicamente, Alice le  reevaluar los 4 primeros cada 10
pide a cada compañero una segundos
lista de los trozos que  cada 30 segundos: selecciona
tienen
aleatoriamente otro par,
 Alice solicita trozos comienza a enviar fragmentos
faltantes de sus  De forma optimista saca de la azfix
compañeros, los más raros ia a ese para y comienza a enviarle
primero  Este nuevo para puede entrar en
el top 4 y permanecer recibiendo
el fragmento
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: “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!

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

Tabla hash distribuida (DHT)


 Tabla Hash

 Paradigma DHT paradigm

 DHT Circular y redes de superposición

 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

• Clave: titulo de la peli; Valor: dirección IP


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
Tabla Hash
• Más conveniente para almacenar y buscar es
la representación numérica de la clave
• Clave = hash(clave original)
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

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

Tabla hash distribuida (DHT)


 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)

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

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

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

Resolviendo una búsqueda

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

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
application application
socket process
controlled by
process app developer

transport transport
network network controlled
link link by OS
Internet
physical physical

Application Layer 2-53


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 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.
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

Interacción Cliente/servidor en un socket: UDP

server (running on serverIP) client


create socket:
create socket, port= x: clientSocket =
serverSocket = socket(AF_INET,SOCK_DGRAM)
socket(AF_INET,SOCK_DGRAM)
Create datagram with server IP and
port=x; send datagram via
read datagram from clientSocket
serverSocket

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

Programación de socket con TCP


el cliente debe contactar al  cuando el cliente se pone en
servidor contacto con el servidor TCP crea
 el proceso del servidor primero un nuevo socket para que el proceso
debe estar ejecutándose del servidor se comunique con ese
cliente en particular:
 el servidor debe haber creado un
socket (puerta) que dé la  permite que el servidor hable
bienvenida al contacto del cliente con múltiples clientes
 números de puerto fuente son
cliente contactados por el utilizados para distinguir clientes
servidor: (más en el capítulo 3)
 Creación de socket TCP,
especificando la dirección IP,
número de puerto del proceso del Punto de vista de la aplicación:
servidor TCP proporciona una conexión confiable, en orden
 cuando el cliente crea el socket: de transferencia de flujo de bytes ("pipes")
el cliente TCP establece la entre el cliente y el servidor
conexión al servidor 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
Interacción Cliente/servidor en un socket: TCP

server (running on hostid) client


create socket,
port=x, for incoming
request:
serverSocket = socket()

wait for incoming create socket,


connection request
TCP connect to hostid, port=x
connectionSocket = connection setup clientSocket = socket()
serverSocket.accept()

send request using


read request from clientSocket
connectionSocket

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

read bytes from socket


sentence = connectionSocket.recv(1024)
(but not address as in capitalizedSentence = sentence.upper()
UDP)
close connection to this connectionSocket.send(capitalizedSentence)
client (but not welcoming
socket) connectionSocket.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

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

También podría gustarte