64
Redes de computadoras Traducción y adaptación Alejandra Stolk 2018 Kurose and Ross, Computer Networking: A Top Down Approach, 6 th edition, Addison-Wesley, 2012 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

Redes de computadoras Capítulo 2: la rutawebdelprofesor.ula.ve/ingenieria/astolk/wp-content/... · 2018. 5. 23. · Redes de computadoras Traducción y adaptación Alejandra Stolk

  • 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