Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
REDES DE
COMPUTADORAS 2 Clase 3
Agenda
Principios de las aplicaciones de red
Web y HTTP
FTP
Correo Electrónico
• SMTP, POP3,
IMAP
DNS
P2P para archivos compartidos
Programación de sockets
con TCP
Programación de sockets
con UDP
Construcción de un
servidor WEB
DNS: Domain Name System (Sistema de
nombres de dominio)
Personas: muchos
identificadores:
• ROL, RUT, name, #
pasaporte
Host y router en Internet:
• Dirección IP (32 bit) –
usada para direccionar
datagramas (ideal para
router)
• “nombre”,ej.,
www.yahoo.com – son
usados por humanos
¿Quién mapea entre direcciones
IP y nombres?
Domain Name System:
Base de datos distribuida implementada en una jerarquía de muchos servidores de nombres
Protocolo de capa aplicación permite a host, routers, y servidores de nombre
comunicarse para resolver nombres (traducción dirección/nombre)
No está orientado al uso directo de los usuarios, ellos usan nombres.
• DNS es función central de la Internet implementada como protocolo de capa aplicación
• La idea de diseño de Internet es dejarlacomplejidadenla“periferia”de la red.
DNS Servicios DNS
Traducción de nombre de host a dirección IP
Alias para host
• Nombre canónico o alias
• Nombre canónico: CNAME en RFC 1035
Alias para servidor de correo
Distribución de carga
• Servidores Web replicados: conjunto de direcciones IP para un nombre canónico (ej. relay1.west-coast.amazon.com), servidor DNS rota entre direcciones IP
¿Por qué no centralizar DNS?
Único punto de falla
Volumen de tráfico, muchos necesitan el DNS
Sería una base de datos centralizada distante con grandes retardos de acceso.
Mantención, es mejor que cada dominio gestione sus nombres
Porque no sería escalable!
Base de datos jerárquica y distribuida Root DNS Servers
com DNS servers org DNS servers edu DNS servers
poly.edu
DNS servers
umass.edu
DNS servers yahoo.com
DNS servers amazon.com
DNS servers
pbs.org
DNS servers
Cliente desea IP de www.amazon.com; 1ra aprox. :
Cliente consulta al servidor raíz para encontrar servidor DNS de com
Cliente consulta servidor DNS TLD (Top Level Domain) de com para obtener servidor DNS de amazon.com
Cliente consulta servidor DNS amazon.com para obtener dirección IP de www.amazon.com
DNS: servidores de nombre en raíz
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
e NASA Mt View, CA
f Internet Software C. Palo Alto, CA (and 17
other locations)
i Autonomica, Stockholm (plus 3 other
locations)
k RIPE London (also Amsterdam, Frankfurt)
m WIDE Tokyo
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also Los Angeles)
d U Maryland College Park, MD
g US DoD Vienna, VA
h ARL Aberdeen, MD j Verisign, ( 11 locations)
13 servidores
de nombre raíz
en todo el
mundo
Son contactados por servidor de nombre local cuando no puede resolver un nombre
Servidor nombre raíz:
• Contacta servidor de nombre autoritario de la zona superior (ej. com) si mapeo del nombre es desconocido para él
• Obtiene mapeo (propio o desde otro servidor raíz)
• Retorna mapeo al servidor de nombre local
TLD y Servidores Autoritativos
Top-level domain (TLD) servers: responsable por com, org, net, edu, etc., y todos los dominios superiores de cada país: uk, fr, ca, jp, cl, etc..
• Network solutions mantiene servidores para el TLD de com
• Educause para el TLD de edu
• LACNIC (Latin American network information center) para el TLD de américa latina
Servidores DNS autoritarios: son servidores DNS de las organizaciones y proveen mapeos autoritarios entre hostname e IP (e.g., Web y mail).
• Éstos pueden ser mantenidos por la organización o el proveedor de servicio
Servidor DNS local
No pertenece estrictamente a la jerarquía
Cada ISP (ISP residencial, compañía, universidad) tiene uno.
• Tambiénsonllamados“servidordenombreporomisión”(default name server)
Cuando un host hace una consulta DNS, ésta es enviada a su servidor DNS local
• Actúa como proxy, re-envía consulta dentro de la jerarquía.
Ejemplo 1
Host que consulta cis.poly.edu
gaia.cs.umass.edu
Servidor DNS raíz
Servidor DNS local dns.poly.edu
1
2 3
4
5
6
Servidor DNS autoritativo dns.cs.umass.edu
7 8
Servidor DNS TLD
Consulta iterativa
Puerto 53
Consulta iterativa:
Host en cis.poly.edu quiere la dirección IP de gaia.cs.umass.edu
Servidor contactado responde con el nombre del servidor a contactar
“Yonoconozcoestenombre, pero pregunta a esteservidor”
Ejemplo 2 Servidor local, aquel que hace las
consultas por mi aplicación
Servidor autoritario, aquel que
define el mapeo nombre <-> IP
Consulta iterativa
Consultas Recursivas
requesting host cis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS server dns.poly.edu
1
2
4 5
6
authoritative DNS server dns.cs.umass.edu
7
8
TLD DNS server
3
Consultas Recursivas
Consulta recursiva :
Pone la carga de la resolución de nombre al servidor contactado.
¿Qué pasa en situaciones de alta carga?
Organización de DNS
Sistema distribuido y jerárquico.
Organización mediante dominios, sub-dominios y host o servicios.
IANA a través del ICANN (Internet Corporation for Assigned Names and Numbers) controla el funcionamiento.
Existen organizaciones paralelas: Open Root Server Network (ORSN), OpenNIC.
Delegación mediante RIRs (Regional Internet Registers): • American Registry for Internet Numbers (ARIN).
• RIPE NCC -Europa y parte de Asia- (RIPE).
• Asia-Pacific Network Information Centre (APNIC).
• Latin American and Caribbean NIC (LACNIC).
• African Network Information Centre (AfriNIC).
Nombres se delegan a países, direcciones IP no.
Ejemplo: Delegación de autoridad
unaj.edu.ar
La Universidad obtuvo autoridad sobre el dominio
“unaj.edu.ar”apartirdelaadministración de“edu.ar”,RIU
(Red Inter-universitaria).
LaRIUobtuvoautoridadsobre“edu.ar”apartirdela
delegación de la Cancillería oelenteacargode“.AR”
(Argentina).
La administración de nombres en la Argentina, sea la
Secretaría Legal y Técnica u otro ente obtuvo la autoridad
DNS: Caché y actualización de registros
Una vez que un servidor de nombre conoce un mapeo, éste guarda (caches) el mapeo
• Las entradas del cache expiran (desaparecen) después de algún tiempo
• Servidores TLD típicamente están en cache de los servidores de nombre locales
• Así los servidores de nombre raíz no son visitados con frecuencia
Mecanismos de Actualización/notificación están bajo diseño por el IETF (Internet Engineering Task Force)
• RFC 2136
• http://www.ietf.org/html.charters/dnsind-charter.html
Registros DNS DNS: es una base de datos distribuida que almacena registros de recursos (resource records, RR)
Formato RR: (name, value, type, ttl)
Type=A • name es un hostname
(nombre real o canónico)
• value es una dirección IP
Type=NS
• name es un dominio (ej. foo.com)
• value es la dirección IP (nombre) del servidor autoritario que sabe cómo obtener las direcciones IP de este dominio.
Type=CNAME
• name es un alias para algún
nombre real (indicado en type A)
www.ibm.com es realmente
servereast.backup2.ibm.com
value es el nombre real
(canónico)
Type=MX
value es el nombre del servidor
de correo asociado con name
Inserción de registros en DNS
Ejemplo:Reciénsecreaunaempresa“NetworkUtopia”
Debemos registrar el nombre networkuptopia.com en un administrador de dominio (e.g., Network Solutions)
• Necesitamos proveer el nombre y la dirección IP de nuestro servidor de
nombre autoritario (primario y segundario)
• Administrador del dominio inserta dos RRs en el servidor TLD com:
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
Incorporar en el servidor autoritario un registro Tipo A para www.networkuptopia.com y un registro Tipo MX para networkutopia.com
Explique porqué los resultados de varios PING
a www.youtube.com muestran direcciones IPs
distintas agustin@agustin-laptop:~$ ping www.youtube.com
PING youtube-ui.l.google.com (74.125.224.76) 56(84) bytes of data.
64 bytes from 74.125.224.76: icmp_seq=1 ttl=52 time=162 ms
.... Luego:
agustin@agustin-laptop:~$ ping www.youtube.com
PING youtube-ui.l.google.com (74.125.224.42) 56(84) bytes of data.
64 bytes from 74.125.224.42: icmp_seq=1 ttl=52 time=160 ms
.... Luego:
agustin@agustin-laptop:~$ ping www.youtube.com
PING youtube-ui.l.google.com (74.125.224.79) 56(84) bytes of data.
64 bytes from 74.125.224.79: icmp_seq=1 ttl=52 time=175 ms
...
Explique cómo esto se hace posible.
El ping a un mismo nombre lógico condujo a tres máquinas distintas por ello tres IPs distintas. Esto se explica porque el servicio de youtube es atendido por un conjunto de máquinas para poner servir a más usuarios a la vez.
Esto es posible gracias al servidor DNS. Cuando el ping consulta por la IP de www.youtube.com, el servidor que maneja este nombre identifica la máquina adecuada de entre el conjunto para atender la petición y retorna esa dirección IP.
?
Tipos de Servidores
Servidor Raíz: servidor que delega a todos TLD (Top Level Domains). No debería permitir recursivas.
Servidor Autoritativo: servidor con una zona o sub-dominio de nombres a cargo. podría sub-delegar.
Servidor Local: es un servidor que es consultado dentro de una red. Mantiene cache. Puede ser Servidor Autoritativo. Permite recursivas internas.
Open Name Servers: servidores de DNS que funcionan como locales para cualquier cliente.
Forwarder Name Server: interactúan directamente con el sistema de DNS exterior. Son DNS proxies de otros DNS internos.
Servidor Primario y Secundario: solo una cuestión de implementación. donde se modifican los datos
Arquitectura P2P
Los servidores no están constantemente encendidos
Los dispositivos se conectan directamente
Los pares intermitentemente se conecta a Internet; recibe una nueva dirección IP en cada conexión
Tres aplicaciones: • Distribución de archivos
• Base de datos distribuida
• Caso de estudio: Skype
peer-peer
Distribución de archivos: Cliente-Servidor
vs P2P Cuanto tiempo tardan los N pares en obtener una copia de
archivo?
us
u2 d1 d2
u1
uN
dN
Server
Internet
us: velocidad de
carga del servidor
ui: velocidad de
carga del par i
di: velocidad de
descarga del par i
Tiempo de distribución: cliente-servidor
us
u2 d1 d2 u1
uN
dN
Server
Internet
F El servidor envía
secuencialmente N
copias :
• Tiempo NF/us
Al cliente i le toma F/di
seg descargar el archivo
aumenta linealmente con N
= Dcs = max { NF/us, F/min(di) } Tiempo para distribuir F
en lo N clientes usando el paradigma
cliente-servidor
Tiempo de distribución: P2P
us
u2 d1 d2 u1
uN
dN
Server
Internet
F
El servidor envía una copia: F/us seg
Al cliente i le toma F/di seg descargar
Se descargan NF bits • La velocidad de carga más alta
es: us + Sui
DP2P = max { F/us, F/min(di) , NF/(us + Sui) } i
Cliente-Servidor vs P2P: ejemplo
0
0,5
1
1,5
2
2,5
3
3,5
0 5 10 15 20 25 30 35Tie
mpo m
ínim
o d
e d
istr
ibució
n
N
P2P
Client-Server
Velocidad de carga del cliente= u, F/u = 1 hour, us = 10u,
dmin ≥us
Distribución de archivo: BitTorrent
tracker: registra los pares
participantes del torrente
(torrent)
torrente: grupos de pares que participan en la distribución de un determinado archivo
Obtener la lista de pares Comercio
de fragmentos
peer
Distribución de un archivo P2P
BitTorrent
El archivo se divide en fragmentos de 256 KB.
Cuando un par se une:
• No posee fragmentos, pero irá acumulando en el tiempo
• Por medio de un nodo tracker se registra la unión de pares, el par
reciente recibe una lista de un subconjunto de pares (vecinos) para
conectarse
Mientras se descarga fragmentos se actualizan fragmentos de
otros pares.
Los pares pueden conectarse y desconectarse continuamente
Una vez que un par ha adquirido el archivo completo puede
(egoístamente) abandonar el torrente o (de forma altruista)
permanecer
Tablas de hash distribuidas (DHT)
DHT: Base de datos distribuida P2P
La información en la base de datos estárá formada por
parejas (clave, valor);
• Clave: número de DNI; valor: un nombre
• Clave: tipo de contenido; valor: dirección IP
Los pares buscan en la base de datos por clave
• La base de datos devuelve el valor que corresponde a la clave
Los pares pueden insertar parejas (clave, valor)
Identificador DHT
Se asigna a cada par un identificador (entero)
comprendido en el rango [0,2n-1].
• Cada identificador puede ser representado por n bits.
Es necesario que cada clave sea un entero preteneciente
al mismo rango.
Para generar número enteros a partir de las claves
originales se utiliza una función hash.
• ej.,clave=h(“LedZeppelinIV”)
• Esta es la razón de llamar tabla hash distribuida (DHT)
Cómo asignar las claves a los peers?
Cuestión central:
• Asignar las parejas (clave, valor) a los pares.
Regla: asignar cada pareja al peer cuyo ID sea el más
próximo a la clave.
Convención: el peer más próximo es el inmediato sucesor
de la clave.
ej.,: n=4; peers: 1,3,4,5,8,10,12,14;
• clave = 13, entonces el peer sucesor = 14
• clave = 15, entonces el peer sucesor = 1
DHT Circular 1
3
4
5
8 10
12
15
Cada peer sólo es consciente de su inmediato sucesor y predecesor.
Esta disposición circular de los peers esllamada“redsolapada”
DHT Circular
0001
0011
0100
0101
1000 1010
1100
1111
Quién es el
responsable de
la clave 1110 ? Yo soy
El promedio de
consultas, en el
peor de los
casos, es del
orden O(N),
cuando existen
N peers 1110
1110
1110
1110
1110
1110
Se define más
próximo como
el sucesor más
cercano
DHT Circular con atajos
Cada par tiene conocimiento de la dirección IP de su sucesor, predecesor y algunos peers de atajo.
Reducción de 6 a 2 mensajes. Es posible que una DHT se puede diseñar con un número de
vecinos por par, como número de consultas, del orden de O(log N)
1
3
4
5
8 10
12
15
Quién es el
responsable de
la clave 1110 ?
Abandono de peers
El par 5 abandona de repente la red
El par 4 lo detecta; 8 pasa a ser el inmediato sucesor; pregunta por el inmediato sucesor de 8; hace que el inmediato sucesor de 8 sea su segundo sucesor.
1
3
4
5
8 10
12
15
Gestionar el abandono de peers
requiere que cada peer conozca
las IP de su primer y segundo
sucesor
Cada par verificará
periodicamente que sus dos
sucesores están activos.
Caso de estudio: Skype
inherentemente P2P: parejas de usuarios se comunican.
Protocolo de capa de aplicación propietaria (se ha logrado inferir su funcionamiento)
Red jerárquica superpuesta con SNs o SPs
Índice que mapea nombre de usuario con direcciones IP; distribuidos en los SNs
Skype clients (SC)
Supernode
(SN)
Skype login server