Anda di halaman 1dari 54

Pgina 2

Capa de aplicacin 2.2


Captulo 2: Esquema
2.1 Principios de la red
aplicaciones
2.2 Web y HTTP
2.3 FTP
2,4 correo electrnico
SMTP,POP3,IMAP
2.5 DNS
2.6 aplicaciones P2P
Programacin 2.7 zcalo
con UDP y TCP
Pgina 3

Capa de aplicacin 3.2


Captulo 2: capa de aplicacin
nuestras metas:

conceptual,
aspectos de la aplicacin
de aplicacin de red
protocolos
lacapadetransporte
modelos de servicio
clienteservidor
paradigma
peertopeer
paradigma

aprender acerca de los protocolos de


examinar populares
a nivel de aplicacin
protocolos
HTTP
FTP
SMTP/POP3/IMAP
DNS

red de creacin
aplicaciones
socketAPI
Pgina 4

Capa de aplicacin 2-4


Algunas aplicaciones de red

correo electrnico

web

Mensaje de texto

login remoto

El intercambio de archivos P2P

juegos en red multiusuario

streaming de vdeo almacenado


(YouTube, Hulu, Netflix)

voz sobre IP (por ejemplo, Skype)

vdeo en tiempo real


conferencias

Redes Sociales

buscar

...

...
Pgina 5

Capa de aplicacin 2.5


Creacin de una aplicacin de red
escribir programas que:

ejecutar en (diferentes) sistemas finales

comunicarse a travs de la red

por ejemplo, software de servidor web


se comunica con el navegador
software
no hay necesidad de escribir software para
dispositivos de red de ncleo

dispositivos de red de ncleo no lo hacen


ejecutar aplicaciones de usuario

aplicaciones en sistemas finales


permite una aplicacin rpida
desarrollo, propagacin
solicitud
transporte
la red
enlace de datos
fsico
solicitud
transporte
la red
enlace de datos
fsico
solicitud

transporte
la red
enlace de datos
fsico
Pgina 6

Capa de aplicacin 2.6


Arquitecturas de aplicaciones
posible estructura de las aplicaciones:

Servidor de cliente

peer-to-peer (P2P)
Pgina 7

Capa de aplicacin 7.2


Arquitectura cliente-servidor
servidor:

siempre en el host

direccin IP permanente

los centros de datos para escalar


clientes:

comunicarse con el servidor

puede ser intermitente


conectado

puede tener IP dinmica


direcciones

no se comunican directamente
con cada uno
Servidor de cliente
Pgina 8

Capa de aplicacin 8.2


Arquitectura P2P

no siempre en el servidor

sistemas finales arbitrarias


comunicarse directamente

compaeros solicitan servicio desde


otros compaeros, ofrecen servicio
a cambio de otros compaeros
autoescalabilidadnuevo
compaeros traen nuevo servicio
de capacidad, as como la nueva
demandas de servicio


compaeros son intermitentemente
IP conectado y el cambio
direcciones
gestincompleja
de igual a igual
Pgina 9

Capa de aplicacin 2.9


Procesos de comunicacin
proceso: programaenejecucin
dentro de un husped

dentro de la misma serie, dos


procesos se comunican
utilizando entreprocesos
la comunicacin (definidapor
OS)

procesos en diferentes hosts


comunicarse mediante el intercambio de
mensajes
proceso de cliente:
proceso que
inicia la comunicacin
proceso del servidor:
proceso que
espera ser contactado

Dejando de lado: aplicaciones con P2P


arquitecturas tienen cliente
procesos y servidor
procesos
clientes, servidores
Pgina 10

Capa de aplicacin 2-10


Enchufes

proceso enva / recibe mensajes a / de su zcalo

socket anloga a la puerta


procesodeenvoempujamensajepuerta
procesodeenvosebasaenlainfraestructuradetransporteen
otro lado de la puerta para entregar el mensaje a la toma en
proceso de recepcin
Internet
controlada
por el sistema operativo
controlado por
desarrollador de aplicaciones
transporte
solicitud
fsico

enlace
la red
proceso
transporte
solicitud
fsico
enlace
la red
proceso
enchufe
Pgina 11

Capa de aplicacin 2-11


Abordar procesos

para recibir mensajes,


proceso debe tener identificador

dispositivo host tiene nica 32direccin IP bits

Q: hacedireccinIPdelhost
en el que se ejecuta proceso de
suficiente para la identificacin de la
proceso?

identificador incluyetanto IP
direccin y nmeros de puerto
asociado con el proceso de
host.

nmeros de ejemplo de puerto:


servidorHTTP:80
servidordecorreo:25

para enviar el mensaje HTTP


gaia.cs.umass.edu web
servidor:
direccinIP: 128.119.245.12
Nmerodepuerto: 80

ms breve ...
R:No, muchosprocesos
puede estar en ejecucin en el mismo
anfitrin
Pgina 12

Capa de aplicacin 12.2


Protocolo App-capa define

tipos de mensajes
intercambiado,
porejemplo,lasolicitud,larespuesta

mensaje de sintaxis:
qucamposenlosmensajes
Y cmo los campos son
delineado

la semntica de mensajes
significadodelainformacin
en los campos

reglas para cundoycmo


procesos envan y responden
a los mensajes
protocolos abiertos:

se define en el RFC

permite la interoperabilidad

por ejemplo, HTTP, SMTP


protocolos propietarios:

por ejemplo, Skype


Pgina 13

Capa de aplicacin 2-13


Qu servicio de transporte necesita una aplicacin?
integridad de los datos

algunas aplicaciones (por ejemplo, transferencia de archivos,


transacciones web) requieren
La transferencia de datos fiable 100%

otras aplicaciones (por ejemplo, audio) puede


tolerar una cierta prdida
sincronizacin

algunas aplicaciones (por ejemplo, Internet


telefona, interactiva
juegos) requieren bajo retardo
ser efectivo"
rendimiento

algunas aplicaciones (por ejemplo,


multimedia) requieren
cantidad mnima de
rendimiento sea
"Eficaz"

otras aplicaciones ("apps") elsticas


hacer uso de lo que sea
rendimiento que obtienen
seguridad

cifrado, integridad de los datos,

...
Pgina 14

Capa de aplicacin 2.14


Requisitos de servicio de transporte: aplicaciones comunes
solicitud
Transferencia de archivo
correo electrnico
Documentos Web
en tiempo real de audio / vdeo
almacenado audio / video
juegos interactivos
Mensaje de texto
prdida de datos
sin prdida
sin prdida
sin prdida
prdida tolerantes
prdida tolerantes
prdida tolerantes
sin prdida
rendimiento
elstico
elstico
elstico
audio: 5 Kbps-1Mbps
vdeo: 10 Kbps-5Mbps
igual que arriba
pocos kbps hasta
elstico
tiempo sensible
no
no
no
s, 100
'
s
ms
s, pocos segundos
s, 100
'
s
ms
si y no
Pgina 15

Capa de aplicacin 15.2


Servicios de protocolos de transporte de Internet
Servicio TCP:

transporte fiable entre


enviar y recibir
proceso

control de flujo: emisornolohar

abrumar receptor

control de congestin: acelerador


remitente cuando la red
sobrecargado

no proporciona: calendario,
rendimiento mnimo
garanta, seguridad

orientado a la conexin: configuracin


requerida entre el cliente y
procesos de servidor
Servicio UDP:

la transferencia de datos poco fiables


entre el envo y
proceso de recepcin

no proporciona:
fiabilidad, control de flujo,
control de la congestin,
tiempo, el rendimiento
garanta, seguridad, o
configuracin de la conexin,
Q: porqumolestarse? Porquees
Hay una UDP?
Pgina 16

Capa de aplicacin 2-16


Aplicaciones de Internet: aplicaciones, protocolos de transporte
solicitud
correo electrnico
Acceso terminal remoto
Tela
Transferencia de archivo
streaming multimedia
La telefona por Internet
solicitud
protocolo de capa de
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (por ejemplo, YouTube),
RTP [RFC 1889]
SIP, RTP, de propiedad
(por ejemplo, Skype)
subyacente
protocolo de transporte
TCP
TCP
TCP
TCP
TCP o UDP

TCP o UDP
Pgina 17

Asegurar TCP
TCP y UDP

sin cifrado

passwds texto claro enviados


en travesa toma
Internet en texto plano
SSL

proporciona cifrado
Conexin TCP

integridad de los datos

punto final
autenticacin
SSL es en la capa de aplicacin

Aplicaciones utilizan bibliotecas SSL,


que "hablar" con TCP
SSL socket API

passwds texto claro enviados


en travesa toma
Internet encriptada

Consulte el Captulo 7
Capa de aplicacin 17.2
Pgina 18

Capa de aplicacin 2.18


Captulo 2: Esquema
2.1 Principios de la red
aplicaciones
arquitecturasdeaplicaciones
requisitosdeaplicaciones
2.2 Web y HTTP
2.3 FTP
2,4 correo electrnico
SMTP,POP3,IMAP
2.5 DNS
2.6 aplicaciones P2P
Programacin 2.7 zcalo
con UDP y TCP
Pgina 19

Capa de aplicacin 19.2


Web y HTTP
En primer lugar, una revisin ...

pgina web se compone deobjetos

objeto puede ser un archivo HTML, imgenes JPEG, applet de Java,


archivo de audio,

pgina web se compone de la base de HTMLarchivo que


incluye varios objetosreferenciados

cada objeto es direccionable por una direccin URL, por ejemplo,


www.someschool.edu/someDept/pic.gif
nombre de host
nombre de la ruta
Pgina 20

Capa de aplicacin 20.2


Resumen HTTP
HTTP: hipertexto
protocolo de transferencia

Capa de aplicacin de Web


protocolo

modelo cliente / servidor


cliente: navegador
solicitudes, recibe;
(utilizando el protocolo HTTP)
y "pantallas" Web
objetos
servidor: servidorWeb
enva (mediante HTTP
protocolo) en objetos
respuesta a las solicitudes
PC running
Navegador Firefox
servidor
corriendo
Apache Web
servidor
iphone funcionamiento
Navegador Safari
Pgina 21

Capa de aplicacin 2-21


Resumen HTTP (continuacin)
utiliza TCP:

cliente inicia TCP


crea conexin (
socket) al servidor, el puerto 80

servidor acepta TCP


conexin desde el cliente

Mensajes HTTP

(protocolo de capa de aplicacin


mensajes intercambiados)
entre el navegador (HTTP
cliente) y el servidor Web
(Servidor HTTP)

Conexin TCP cerrada


HTTP es
"
aptrida
"

servidor mantiene ninguna


Informacin sobre
las solicitudes de cliente ltimos
protocolos que mantienen
"Estado" son complejos!

historia pasada (estado) debe ser


mantenido

si se bloquea el servidor / cliente, su


puntos de vista de "estado" puede ser
inconsistente, debe ser
reconciliado
un lado
Pgina 22

Capa de aplicacin 22.2


Conexiones HTTP
HTTP no persistente

a lo sumo un objeto
enviado a travs de TCP
conexin
conexinacontinuacin,
cerrado

descarga mltiple
objetos necesarios
mltiples conexiones
HTTP persistente

varios objetos puede


ser enviados a travs de una sola
Conexin TCP
entre el cliente, el servidor
Pgina 23

Capa de aplicacin 23.2


HTTP no persistente
Supongamos que el usuario entra en el URL:
1a. ClienteHTTPiniciaTCP
La conexin al servidor HTTP
(proceso) en

www.someSchool.edu en el puerto
80
2. ClienteHTTPenva lasolicitud HTTP
mensaje (quecontieneURL)en
Toma de conexin TCP.
El mensaje indica que el cliente
quiere objeto
someDepartment / home.index
1b. ServidorHTTPenelhost
www.someSchool.edu esperando
para la conexin TCP en el puerto 80.
"Acepta" la conexin, notifica
cliente
3. ServidorHTTPrecibesolicitud
mensaje, forma derespuesta
contienesolicit mensaje
oponerse, y enva el mensaje en
su zcalo
hora
(contiene texto,
referencias a 10
imgenes jpeg)
www.someSchool.edu/someDepartment/home.index
Pgina 24

Capa de aplicacin 2-24


HTTP no persistente (cont.)
5
. ClienteHTTPreciberespuesta
mensaje que contiene el archivo html,
muestra html. Analizar archivo html,
encuentra 10 objetos jpeg referenciados
6. Pasos15repiteparacadaunode
10 objetos jpeg
4. servidorHTTPcierraTCP
conexin.
hora
Pgina 25

Capa de aplicacin 25.2


HTTP no persistente: tiempo de respuesta
RTT (definicin): tiempoparaun
pequeo paquete para viajar de
el cliente al servidor y de regreso
Tiempo de respuesta HTTP:

Un RTT para iniciar TCP


conexin

Un RTT de peticin HTTP


y primeros bytes de HTTP
respuesta al retorno

tiempo de transmisin de archivos

HTTP no persistente
tiempo de respuesta =
Transmisin de archivos 2RTT +
hora
hora de
transmitir
archivo
iniciar TCP
conexin
RTT
peticin
archivo
RTT
archivo
recibido
hora
hora
Pgina 26

Capa de aplicacin 26.2


HTTP persistente
cuestiones HTTP no persistentes:

requiere 2 RTT por objeto

Los gastos generales del sistema operativo para cada TCP


conexin

navegadores menudo abiertas


conexiones TCP paralelas
en busca de objetos referenciados
HTTP persistente:

servidor deja de conexin


abierto despus de enviar
respuesta

posterior HTTP
mensajes entre mismo
cliente / servidor enva a travs de
conexin abierta

cliente enva peticiones como


pronto como se encuentra una
objeto referenciado

tan poco como un RTT para todos


los objetos referenciados
Pgina 27

Capa de aplicacin 27.2


Mensaje de peticin HTTP

dos tipos de mensajes HTTP: peticin,larespuesta


Mensaje de peticin HTTP:
ASCII(formatolegible)
lnea de peticin
(GET, POST,
Comandos cabeza)
encabezamiento
lneas
retorno de carro,
avance de lnea al inicio
de lnea indica
final de las lneas de cabecera
GET /index.html HTTP / 1.1 \ r \ n
Anfitrin: www-net.cs.umass.edu \ r \ n
User-Agent: Firefox / 3.6.10 \ r \ n
Accept: text / html, application / xhtml + xml \ r \ n
Accept-Language: es-es, es; q = 0.5 \ r \ n
Accept-Encoding: gzip, desinfla \ r \ n
Accept-Charset: ISO-8859-1, UTF-8; q = 0.7 \ r \ n
Keep-Alive: 115 \ r \ n
Conexin: keep-alive \ r \ n
\r\n
carcter de retorno de carro
carcter de avance de lnea
Pgina 28

Capa de aplicacin 2-28


Peticin HTTP mensaje: formato general
peticin
lnea
encabezamiento
lneas
cuerpo
mtodo
sp
sp
CR LF
versin
URL
CR LF
valor
encabezado nombre del campo
CR LF
valor
encabezado nombre del campo
CR LF
cuerpo de la entidad
Pgina 29

Capa de aplicacin 29.2


Formulario de entrada Carga
Mtodo POST:

pgina web a menudo incluye


formulario de entrada


de entrada se carga
servidor en el cuerpo de la entidad
Mtodo de URL:

utiliza el mtodo GET

de entrada se carga en la URL


campo de la lnea de peticin:
www.somesite.com/animalsearch?monkeys&banana
Pgina 30

Capa de aplicacin 30.2


Tipos de mtodos
HTTP / 1.0:

OBTENER

POSTE

CABEZA
pideservidorparadejar
objeto solicitado a cabo
de la respuesta
HTTP / 1.1:

GET, POST, HEAD

PONER
Archivo subidosenlaentidad
cuerpo a la ruta especificada
en el campo de direccin URL

BORRAR
borraarchivoespecificadoen
el campo URL
Pgina 31

Capa de aplicacin 2-31


Mensaje de respuesta HTTP
lnea de estado
(protocolo
cdigo de estado
frase de estado)
encabezamiento
lneas
datos, por ejemplo,
pedido
Archivo HTML
HTTP / 1.1 200 OK \ r \ n
Fecha: Dom, 26 de septiembre 2010 20:09:20 GMT \ r \ n
Servidor: Apache / 2.0.52 (CentOS) \ r \ n
Last-Modified: Mar 30 Oct 2007 17:00:02
GMT \ r \ n

ETag: "17dc6-A5c-bf716880" \ r \ n
Accept-Ranges: bytes \ r \ n
Content-Length: 2652 \ r \ n
Keep-Alive: timeout = 10, max = 100 \ r \ n
Conexin: Keep-Alive \ r \ n
Content-Type: text / html; charset = ISO-88591\r\n
\r\n
de datos de datos de datos de datos de datos ...
Pgina 32

Capa de aplicacin 2-32


Cdigos de estado HTTP de respuesta
200 OK
peticintuvoxito,objetosolicitadomsadelanteenestemsg
301 Movido Permanentemente
objetosolicitadosemovi,nuevaubicacinespecificadamsadelanteeneste
msg
(Localizacin:)
400 Peticin Incorrecta
solicitudmsgnoentiendeporservidor
404 No encontrado
documentosolicitadonoseencuentraenesteservidor
505 HTTP Version Not Supported

cdigo de estado aparece en primera lnea en el servidor-amensaje de respuesta del cliente.

algunos cdigos de ejemplo


:
Pgina 33

Capa de aplicacin 2-33


Probando HTTP (lado del cliente) para usted
1. Telnet para el servidor Web favorita:
se abre la conexin TCP al puerto 80
(por defecto puerto del servidor HTTP) en cis.poly.edu.
nada escrito en Sent
al puerto 80 en cis.poly.edu
telnet cis.poly.edu 80
2. Tipo en una peticin HTTP GET:
GET / ross / HTTP / 1.1
Anfitrin: cis.poly.edu
escribiendo esto en (golpeado carro
regresa dos veces), se enva
este mnimo (pero completo)
OBTENER solicitud al servidor HTTP
3. vistazo a mensaje de respuesta enviado por el servidor HTTP!
(o utilizar Wireshark para mirar capturado HTTP solicitud / respuesta)
Pgina 34

Capa de aplicacin 2-34


Estado del usuario en el servidor: Galletas
muchos sitios web utilizan cookies
cuatro componentes:

1)
lnea de cabecera de cookies de
Respuesta HTTP
mensaje
2) lnea de cabecera de cookies en
siguiente peticin HTTP
mensaje
3) archivo cookie sigui
host del usuario, gestionado
por el navegador del usuario
4) la base de datos back-end en
Sitio Web
ejemplo:

Susan siempre acceso a internet


desde el PC

visitas de comercio electrnico especfica


sitio para primera vez

cuando las solicitudes HTTP iniciales


llega al sitio, sitio crea:
nicoID
entradaenbackend
base de datos para la identificacin
Pgina 35

Capa de aplicacin 2-35


Cookies: mantenimiento de "estado" (cont.)
cliente
servidor
http habitual respuesta msg
http habitual respuesta msg
archivo de cookies
una semana despus:
http habitual peticin msg
cookie: 1678
Cookieespecfico
accin
acceso
ebay 8734
http habitual peticin msg
Servidor de Amazon
crea ID
1678 para el usuario
crear
entrada
respuesta habitual http
Set-Cookie: 1678
ebay 8734
Amazonas 1678
http habitual peticin msg
cookie: 1678
Cookie-

especfico
accin
acceso
ebay 8734
Amazonas 1678
backend
base de datos
Pgina 36

Capa de aplicacin 2-36


Galletas (continuacin)
lo que las cookies se pueden utilizar
para:

autorizacin

carritos de compra

recomendaciones

el estado de sesin de usuario (Web


correo electrnico)
Poltica de privacidad:

las cookies permiten a los sitios


aprender mucho acerca de usted

puede suministrar el nombre y


e-mail a sitios
un lado
cmo mantener
"
estado
"
:

criterios de valoracin de protocolo: mantienen el estado en


emisor / receptor a travs de mltiples
transacciones

Galletas: http llevan mensajes de estado


Pgina 37

Capa de aplicacin 2-37


Cachs Web (servidor proxy)

usuario establece navegador: Web


accesos a travs de cach

navegador enva todos HTTP


peticiones cach
objetoencach:cach
vuelve objeto
peticionescachdems

objeto de origen
servidor, luego regresa
objeto para el cliente
objetivo: satisfacerlapeticindelclientesinlaparticipacindeservidorde
origen
cliente
apoderado
servidor
cliente
origen
servidor
origen
servidor
Pgina 38

Capa de aplicacin 2-38


Ms sobre el almacenamiento en cach Web

cach acta como


cliente y el servidor
servidorparaoriginales
cliente solicitante
clientealservidordeorigen

normalmente cach es
instalado por ISP
(universidad, empresa,
ISP residencial)
por qu el almacenamiento en cach Web?

reducir el tiempo de respuesta


para la peticin del cliente

reducir el trfico en una


enlace de acceso de la institucin

Internet densa con


cachs: permite "pobres"
los proveedores de contenidos a
cumplir efectivamente
contenidos (tambin lo hace
El intercambio de archivos P2P)
Pgina 39

Capa de aplicacin 2-39


El almacenamiento en cach ejemplo:
origen
servidores
pblico
Internet
institucional
la red
1 Gbps LAN
1.54 Mbps
enlace de acceso

supuestos:

tamao del objeto avg: bits de 100K

tasa de solicitud promedio de los navegadores a


servidores de origen: 15 / seg

velocidad de datos promedio para los navegadores: 1,50 Mbps

RTT desde el router institucional para cualquier


servidor de origen: 2 seg

tasa de enlace de acceso: 1,54 Mbps


consecuencias:

Utilizacin de LAN: 15%

utilizacin del enlace de acceso = 99%

retardo total = retardo de Internet + acceso


retardo retardo + LAN
= 2 seg + minutos + usecs
problema!
Pgina 40

Capa de aplicacin 2-40


supuestos:

tamao del objeto avg: bits de 100K

tasa de solicitud promedio de los navegadores a


servidores de origen: 15 / seg

velocidad de datos promedio para los navegadores: 1,50 Mbps

RTT desde el router institucional para cualquier


servidor de origen: 2 seg

tasa de enlace de acceso: 1,54 Mbps


consecuencias:

Utilizacin de LAN: 15%

utilizacin del enlace de acceso = 99%

retardo total = retardo de Internet + acceso


retardo retardo + LAN
= 2 seg + minutos + usecs
El almacenamiento en cach ejemplo:
enlace de acceso ms gordos
origen
servidores
1.54 Mbps

enlace de acceso
154 Mbps
154 Mbps
msecs
Costo: mayorvelocidaddeenlacedeacceso(noesbarato!)
9,9%
pblico
Internet
institucional
la red
1 Gbps LAN
Pgina 41

institucional
la red
1 Gbps LAN
Capa de aplicacin 2-41
El almacenamiento en cach ejemplo:
instalar cach local
origen
servidores
1.54 Mbps
enlace de acceso
web local
cache
supuestos:

tamao del objeto avg: bits de 100K

tasa de solicitud promedio de los navegadores a


servidores de origen: 15 / seg

velocidad de datos promedio para los navegadores: 1,50 Mbps

RTT desde el router institucional para cualquier


servidor de origen: 2 seg

tasa de enlace de acceso: 1,54 Mbps


consecuencias:

Utilizacin de LAN: 15%

utilizacin del enlace de acceso = 100%

retardo total = retardo de Internet + acceso


retardo retardo + LAN
= 2 seg + minutos + usecs
?
?
Cmo calcular enlace
la utilizacin, el retraso?
Costo: cachweb(barato!)
pblico
Internet

Pgina 42

Capa de aplicacin 2-42


El almacenamiento en cach ejemplo:
instalar cach local
Clculo de enlace de acceso
utilizacin, retrasar la cach:

supongamos que la tasa de aciertos de cach es de 0,4


40%solicitudessatisfechasencach,
60% solicitudes satisfechas en origen
origen
servidores
1.54 Mbps
enlace de acceso

Acceso utilizacin del enlace:


60%delassolicitudesdeusodeenlacedeacceso

velocidad de datos a los navegadores ms de enlace de acceso


= 0,6 * 1,50 Mbps = .9 Mbps
utilizacin=0,9/1,54=0,58

retardo total
=0.6*(retrasodesdelosservidoresdeorigen)0.4
* (Retraso cuando satisfizo en cach)
=0,6(2,01)+0,4(milisegundos)
=1,2secs
menosquecon154Mbpsdeenlace(y
ms barato!)
pblico
Internet
institucional
la red
1 Gbps LAN
web local
cache
Pgina 43

Capa de aplicacin 2-43


GET condicional

Meta: noenveobjetosi
cach tiene hasta al da
versin en cach
ningunatransmisinobjeto
retraso
utilizacindelenlaceinferior

cache: fecha de especificar


cach de copia en HTTP
peticin
Si-modified-since:
<fecha>


servidor: respuesta contiene
sin objeto si copia en cach
est actualizado:
HTTP / 1.0 304 No
Modificado
HTTP solicitud msg
Si-modified-since: <fecha>
Respuesta HTTP
HTTP / 1.0
304 Not Modified
objeto
no
modificado
antes de
<fecha>
HTTP solicitud msg
Si-modified-since: <fecha>
Respuesta HTTP
HTTP / 1.0 200 OK
<datos>
objeto
modificado
despus
<fecha>
cliente
servidor
Pgina 44

Capa de aplicacin 2-44


Captulo 2: Esquema
2.1 Principios de la red
aplicaciones
arquitecturasdeaplicaciones
requisitosdeaplicaciones
2.2 Web y HTTP
2.3 FTP
2,4 correo electrnico
SMTP,POP3,IMAP
2.5 DNS
2.6 aplicaciones P2P
Programacin 2.7 zcalo
con UDP y TCP
Pgina 45

Capa de aplicacin 2-45


FTP: protocolo de transferencia de archivos
Transferencia de archivo
FTP
servidor
FTP
usuario
interfaz
FTP
cliente

archivo local
sistema
archivo remoto
sistema
usuario
en el host

transferencia de archivos a / desde el host remoto

modelo cliente / servidor


cliente: equipoqueinicialatransferencia(yaseaa/desdeelmandoa
distancia)
servidor: hostremoto

ftp: RFC 959

servidor ftp: el puerto 21


Pgina 46

Capa de aplicacin 2-46


FTP: control separado, las conexiones de datos

FTP cliente contacta con el servidor FTP


en el puerto 21, mediante TCP

cliente autorizado por el control


conexin

cliente navega a distancia


directorio, enva comandos
sobre conexin de control

cuando el servidor recibe archivo


comando de transferencia, elservidor
abre 2
nd
Datos TCP
conexin (por archivo) al cliente

despus de transferir un archivo,


servidor cierra la conexin de datos
FTP
cliente
FTP
servidor
Conexin de control TCP,
puerto del servidor 21
Conexin de datos TCP,
puerto del servidor 20

servidor abre otra TCP


conexin de datos para transferir
otro archivo

conexin de control:
"
fuera
banda
"

Servidor FTP mantiene


"Estado": directorio actual,
autenticacin anterior
Pgina 47

Capa de aplicacin 2-47


Comandos FTP, respuestas
comandos de ejemplo:

enviado como texto ASCII ms


canal de control

Nombre de usuario USUARIO

PASS contrasea

LISTA listaretornodearchivoen
Directorio actual

RETR nombre
recupera (consigue) Archivo

STOR tiendas de nombre de archivo


(puts) presentar a distancia
anfitrin
cdigos de retorno de muestras

cdigo de estado y la frase (como


en HTTP)

331 Nombre de usuario OK,


Se requiere contrasea

Datos 125
conexin
ya abierto;
transferencia de partida

425 Puede 't abrir


Coneccin de datos

Escritura 452 Error


archivo
Pgina 48

Capa de aplicacin 2-48


Captulo 2: Esquema
2.1 Principios de la red

aplicaciones
arquitecturasdeaplicaciones
requisitosdeaplicaciones
2.2 Web y HTTP
2.3 FTP
2,4 correo electrnico
SMTP,POP3,IMAP
2.5 DNS
2.6 aplicaciones P2P
Programacin 2.7 zcalo
con UDP y TCP
Pgina 49

Capa de aplicacin 2-49


Correo electrnico
Tres componentes principales:

los agentes de usuario

servidores de correo

Simple Mail Transfer


protocolo: SMTP
Agente de usuario

tambin conocido como "lector de correo"

composicin, edicin, lectura


mensajes de correo

por ejemplo, Outlook, Thunderbird,


cliente de correo iPhone

saliente, entrante
los mensajes almacenados en el servidor
buzn de usuario
extrovertida
cola de mensajes
correo
servidor
correo
servidor
correo
servidor
SMTP
SMTP
SMTP
usuario
agente
usuario
agente
usuario
agente
usuario

agente
usuario
agente
usuario
agente
Pgina 50

Capa de aplicacin 2-50


Correo electrnico: servidores de correo
servidores de correo:

buzn contiene entrante


Mensajes de los usuarios

mensaje de la cola desalida


(para ser enviados) de mensajes de correo

Protocolo SMTP entre


servidores de correo para enviar correo electrnico
mensajes
cliente:elenvodecorreo
servidor
"servidor":elcorreoquerecibe
servidor
correo
servidor
correo
servidor
correo
servidor
SMTP
SMTP
SMTP
usuario
agente
usuario
agente
usuario
agente
usuario
agente
usuario
agente
usuario
agente
Pgina 51

Capa de aplicacin 2-51


Correo electrnico: SMTP
[RFC 2821]

utiliza TCP para transferir de forma fiable de mensajes de correo electrnico


desde
el cliente al servidor, el puerto 25

transferencia directa: el envo de servidor para recibir


servidor

tres fases de transferencia


apretndemanos(saludo)
transferenciademensajes
cierre

interaccin comando / respuesta (como


HTTP, FTP
)
comandos: textoASCII
Respuesta: cdigodeestadoylafrase

mensajes deben estar en 7 bits ASCI


Pgina 52

Capa de aplicacin 2-52


usuario
agente
Escenario: Alice enva mensaje a Bob
1) Alice utiliza UA para componer
mensaje "a"
bob@someschool.edu
2) UA de Alice enva mensaje
a su servidor de correo; mensaje
colocado en la cola de mensajes
3) del lado del cliente de SMTP abre
Conexin TCP con Bob
servidor de correo
4) cliente SMTP enva Alicia de
mensaje a travs del TCP
conexin
5) servidor de correo de Bob coloca el
mensaje en el buzn de Bob
6) Bob invoca su agente de usuario
para leer el mensaje
correo
servidor
correo
servidor
1
2
3
4
5
6
Servidor de correo de Alice
Servidor de correo de Bob
usuario
agente
Pgina 53

Capa de aplicacin 2-53


Interaccin SMTP Muestra

S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hola crepes.fr, encantado de conocerte
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr ... Remitente ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... destinatario ok
C: DATOS
S: 354 Introduzca el correo, extremo con "." en una lnea por s mismo
C: Te gusta la salsa de tomate?
C: Qu hay de pepinillos?
C:.
S: 250 Mensaje aceptado para la entrega
C: QUIT
S: Conexin de cierre 221 hamburger.edu
Pgina 54

Capa de aplicacin 2-54


Trate interaccin SMTP por s mismo:

nombre_servidor telnet 25

ver 220 respuesta de servidor

introducir HELO, MAIL FROM, RCPT TO, DATOS, SALIR


comandos
anterior le permite enviar correo electrnico sin necesidad de usar cliente de
correo electrnico (lector)
Pgina 55

Capa de aplicacin 2-55


SMTP: palabras finales

SMTP utiliza persistente


conexiones

SMTP requiere mensaje


(cabecera y cuerpo) para estar en
7-bit ASCII

Usos del servidor SMTP


CRLF.CRLF a
determinar el final del mensaje
la comparacin con HTTP:

HTTP: tire

SMTP: empuje

ambos tienen ASCII


comando / respuesta
, cdigos de estado de interaccin

HTTP: cada objeto

encapsulado en su propio
msg respuesta

SMTP: varios objetos


enviado en msg multiparte
Pgina 56

Capa de aplicacin 2-56


Formato de mensaje de correo
SMTP: protocolo para
intercambio de Mensajes de correo electrnico
RFC 822: estndar para el texto
formato de mensaje:

lneas de cabecera, por ejemplo,


Para:
Desde:
Asunto:
diferente de
CORREO SMTP
FROM, RCPT TO:
comandos!

Cuerpo: el "mensaje"
Slo caracteresASCII
encabezamiento
cuerpo
blanco
lnea
Pgina 57

Capa de aplicacin 2-57


Protocolos de acceso electrnico

SMTP: entrega /almacenamientoalservidordelreceptor

protocolo de acceso electrnico: recuperacin del servidor


POP: PostOfficeProtocol[RFC1939]:laautorizacin,
descargar
IMAP: ProtocolodeaccesoacorreodeInternet[RFC1730]:ms
caractersticas, incluyendo la manipulacin de Mensajes almacenados en
servidor
HTTP: gmail,Hotmail,Yahoo!Mail,etc.
electrnico del remitente
servidor
SMTP
SMTP
Acceso electrnico
protocolo
correo del receptor
servidor
(por ejemplo,
POP,
IMAP

)
usuario
agente
usuario
agente
Pgina 58

Capa de aplicacin 2-58


Protocolo POP3
fase de autorizacin

comandos del cliente:


usuario: declararnombredeusuario
pase:contrasea

las respuestas del servidor


+OK
ERR
fase de transaccin,
cliente:

Lista: nmerosdemensajelista

retr: recuperarmensaje
nmero

dele: eliminar

dejar
C: Lista
S: 1 498
S: 2 912
S:.
C: retr 1
S: <mensaje 1 Contenido>
S:.
C: dele 1
C: retr 2
S: <mensaje 1 Contenido>
S:.
C: dele 2
C: dejar de fumar
S: + OK
Servidor POP3 firma off
S: + OK servidor POP3 listo
C: bob usuario
S: + OK
C: pasar hambre
S: + OK
usuario conectado con xito en
Pgina 59

Capa de aplicacin 2-59


POP3 (ms) e IMAP

Ms informacin acerca de POP3

ejemplo anterior utiliza


Descarga POP3 "y
modo de eliminar "
Bobnopuedevolveraleere
electrnico si cambia
cliente

POP3 "download-ymantener ": copias de los mensajes


en diferentes clientes

POP3 es aptrida travs


sesiones
IMAP

mantiene todos los mensajes en un solo


LUGAR: en el servidor

permite al usuario organizar


los mensajes en carpetas

mantiene el estado del usuario a travs de


sesiones:
nombresdecarpetasy
asignaciones entre
ID de mensaje y la carpeta
nombre
Pgina 60

Capa de aplicacin 2-60


Captulo 2: Esquema
2.1 Principios de la red
aplicaciones
arquitecturasdeaplicaciones
requisitosdeaplicaciones
2.2 Web y HTTP
2.3 FTP
2,4 correo electrnico
SMTP,POP3,IMAP
2.5 DNS
2.6 aplicaciones P2P
Programacin 2.7 zcalo
con UDP y TCP
Pgina 61

Capa de aplicacin 2-61


DNS: Domain Name System
personas: muchosidentificadores:
SSN,nombre,pasaporte#
Servidores de Internet, routers:
direccinIP(32bits)
utilizado para abordar

datagramas
"nombre",porejemplo,
www.yahoo.com utilizado por los seres humanos
Q: cmoasignarentreIP
la direccin y el nombre, y
viceversa ?
Sistema de nombres de dominio:

base de datos distribuida


implementado en jerarqua de
muchos servidoresdenombres

la capa de aplicacin del protocolo: anfitriones,


servidores de nombres se comunican a
nombres resolver (direccin/nombre
traduccin)
Nota:lafuncindeInternetbsico,
implementado como aplicacinprotocolo de capa de
complejidadenlaredde
"Borde"
Pgina 62

Capa de aplicacin 2-62


DNS: servicios, la estructura
por qu no centralizar el DNS?

punto nico de fallo

volumen de trfico

base de datos centralizada distante

mantenimiento
Servicios de DNS

nombre de host a la direccin IP


traduccin

sede de aliasing
cannicas,nombresdealias

servidor de alias de correo

distribucin de la carga
Webreplicado
servidores: muchos IP
direcciones corresponden
a un nombre
R: doesn
'
t escala!

Pgina 63

Capa de aplicacin 2-63


Servidores DNS Root
servidores DNS com
servidores DNS org
servidores DNS edu
poly.edu
Servidores DNS
umass.edu
Servidores DNS
yahoo.com
Servidores DNS
amazon.com
Servidores DNS
pbs.org
Servidores DNS
DNS: una base de datos jerrquica distribuida
cliente quiere IP para www.amazon.com; 1
st
aprox:

cliente consulta servidor raz para encontrar servidor DNS com

cliente consulta el servidor DNS .com para obtener amazon.com servidor DNS

cliente consulta amazon.com servidor DNS para obtener la direccin IP para


www.amazon.com
... ...
Pgina 64

Capa de aplicacin 2-64


Servidores de nombres root: DNS

contactado por servidor de nombres local que no puede resolver el nombre

nombre de la raz del servidor:


contactosdelservidordenombresconautoridadsimapeonombrenoconoce
consiguemapeo
devuelvemapeodeservidordenombreslocal
Nombre del 13 de raz
"
servidores
"
en todo el mundo
a. Verisign, Los Angeles CA
(Otros 5 sitios)
b. USC-ISI Marina del Rey, CA
l. ICANN Los Angeles, CA
(41) otros sitios
e. NASA Mt View, CA
f. Internet Software C.
Palo Alto, CA (48 y otra
sitios)
yo. Netnod, Estocolmo (otros 37 sitios)

k. RIPE Londres (otros 17 sitios)


m. AMPLIA Tokio
(Otros 5 sitios)
c. Cogent, Herndon, VA (otros 5 sitios)
d. U de Maryland en College Park, MD
h. ARL Aberdeen, MD
j. Verisign, Dulles VA (otros 69 sitios)
g. US DoD Columbus,
OH (5 otros sitios)
Pgina 65

Capa de aplicacin 2-65


TLD, servidores autorizados
dominio (TLD) servidores de primer nivel:
responsabledecom,org,net,edu,aero,trabajos,museos,
y todos los dominios de pas de primer nivel, por ejemplo: Reino Unido, Francia,
ca, jp
NetworkSolutionsmantieneservidoresparaTLD.com
EDUCAUSEparaTLD.edu
servidores DNS autorizados:
propioservidorDNSdelaorganizacin(s),proporcionando
nombre de host de autoridad a las asignaciones de IP para la organizacin de
anfitriones nombrados
puedesermantenidoporlaorganizacinoproveedordeservicios
Pgina 66

Capa de aplicacin 2-66


Local
DNS
servidor de nombres

no pertenece estrictamente a la jerarqua

cada ISP (proveedor de Internet residencial, empresa, universidad) tiene


uno
tambinllamado"servidordenombrepordefecto"

cuando el host hace consulta DNS, consulta se enva a su


servidor DNS local
tienecachlocaldelarecientetraduccindenombreadireccin
pares (pero pueden estar fuera de fecha!)
actacomoproxy,forwardsconsultaenjerarqua
Pgina 67

Capa de aplicacin 2-67


host solicitante
cis.poly.edu
gaia.cs.umass.edu
servidor DNS raz
servidor DNS local
dns.poly.edu
1
2
3

4
5
6
servidor DNS autorizado
dns.cs.umass.edu
7
8
Servidor DNS de TLD
Nombre DNS
ejemplo de resolucin

anfitrin cis.poly.edu
quiere direccin IP para
gaia.cs.umass.edu
consulta iterativa:

servidor contactado
responde con el nombre de
servidor para contactar

"Yo no conozco a este


nombrar, pero hacer esta
servidor "
Pgina 68

Capa de aplicacin 2-68


4
5
6
3
consulta recursiva:

pone carga de nombre


resolucin sobre
Nombre contactado
servidor

carga pesada en la parte superior


niveles de jerarqua?
host solicitante
cis.poly.edu
gaia.cs.umass.edu
servidor DNS raz
servidor DNS local
dns.poly.edu
1
2
7
servidor DNS autorizado
dns.cs.umass.edu
8
Nombre DNS
ejemplo de resolucin
DNS TLD
servidor

Pgina 69

Capa de aplicacin 2-69


Registros de almacenamiento en cach, actualizacin: DNS

una vez (hay) servidor de nombres se entera de la cartografa, se almacenaen


cach
cartografa
entradasdecachdetiempodeespera(desaparecer)despusdealgntiempo
(TTL)
servidoresTLDtpicamentealmacenanenlosservidoresdenombreslocales
tanto los servidores de nombres raz no a menudo visitado

entradas en cach puede estar fuera defecha (el mejor esfuerzo


de nombre a direccin de traduccin!)
sielnombredehostcambialadireccinIP,nopuedeserconocido
En toda la Internet hasta que expiren todos TTL

actualizacin / notificar mecanismos estndar IETF propuesto


RFC2136
Pgina 70

Capa de aplicacin 2-70


Registros DNS
DNS:
distribuido db almacenar registros de recursos
(RR)
type = NS
nombrees dedominio(porejemplo,
foo.com)
valores elnombredehost
nombres con autoridad
servidor para este dominio
Formato RR:
(nombre, valor, tipo, ttl)
type = A
nombrees elnombredehost
valor esladireccinIP
type = CNAME
nombrees nombredealiasparaalgunos
"Cannica" (el verdadero) Nombre
www.ibm.com
realmente es
servereast.backup2.ibm.com
valores elnombrecannico
type = MX
valores elnombredelservidordecorreo
asociado con el nombre
Pgina 71

Capa de aplicacin 2 a 71
Protocolo DNS, los mensajes

mensajesdeconsultayrespuesta,ambosconunmismomensaje
formato
cabeceras de los mensajes

Identificacin: 16bits#para
consulta, responder a consultas utiliza
mismo #

banderas:
consultaorespuesta
recursindeseada
recursividaddisponible
respuestaesautoritativa
identificacin
banderas
# Preguntas
preguntas (variable # de preguntas)
# RR adicionales
# Autoridad RR
# Respuesta RR
respuestas (variable # del RR)
autoridad (variable # del RR)
informacin adicional (variable # del RR)
2 bytes
2 bytes
Pgina 72

Capa de aplicacin 2-72


nombre, campos de tipo
para una consulta
RR en la respuesta
para consultar
registros para
servidores autorizados
adicional "til"
informacin que puede ser utilizada
identificacin
banderas
# Preguntas
preguntas (variable # de preguntas)
# RR adicionales
# Autoridad RR
# Respuesta RR
respuestas (variable # del RR)
autoridad (variable # del RR)
informacin adicional (variable # del RR)
Protocolo DNS, los mensajes
2 bytes
2 bytes
Pgina 73

Capa de aplicacin 2-73


Insercin de registros en
DNS

ejemplo: nuevo inicio "Red Utopa"

registrar el nombre networkuptopia.com al registroDNS


(por ejemplo, soluciones de red)
proporcionarlosnombres,lasdireccionesIPdeservidordenombrescon
autoridad
(Primaria y secundaria)
registradorinsertadosRRenservidorTLD.com:
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)

crear un registro de tipo servidor autorizado para


www.networkuptopia.com; escribir registro MX para
networkutopia.com
Pgina 74

DNS Atacar
Los ataques DDoS

Bombardear servidores raz


con el trfico
Noexitosohastalafecha
FiltradodeTrfico
servidoresDNSlocales
IPs cach de TLD
servidores, permitiendo la raz
Bypass servidor

Bombardear servidores TLD


potencialmentems
peligroso
Redirigir ataques

El hombre-en-medio
consultasIntercepcin

Envenenamiento de DNS
Enviarfalsadependeen
Servidor DNS, que
cachs
Explotar DNS DDoS

Enviar consultas con


fuente falsificada
Direccin: target IP

Requiere de amplificacin
Capa de aplicacin 2-74
Pgina 75

Capa de aplicacin 2-75


Captulo 2: Esquema
2.1 Principios de la red

aplicaciones
arquitecturasdeaplicaciones
requisitosdeaplicaciones
2.2 Web y HTTP
2.3 FTP
2,4 correo electrnico
SMTP,POP3,IMAP
2.5 DNS
2.6 aplicaciones P2P
Programacin 2.7 zcalo
con UDP y TCP
Pgina 76

Capa de aplicacin 2-76


Pura
P2P
arquitectura

no siempre en el servidor

sistemas finales arbitrarias


comunicarse directamente

compaeros son intermitentemente


IP conectado y el cambio
direcciones
ejemplos:
distribucindearchivos
(BitTorrent)
Transmisin(Kankan)
VoIP(Skype)
Pgina 77

Capa de aplicacin 2-77


Distribucin de archivos: cliente-servidor vs P2P
Pregunta: cuntotiempoparadistribuirarchivos(tamaoF)de
un servidor a N pares?
cargapares/capacidaddedescargaeslimitadorecurso
u
s
u
N
d
N
servidor
red (con abundante
ancho de banda)
archivo, tamao F
u
s
: Cargadelservidor
capacidad
u
yo

: Peer puedosubir
capacidad
d
yo
: Peer puedodescargar
capacidad
u
2
d
2
u
1
d
1
d
yo
u
yo
Pgina 78

Capa de aplicacin 2-78


Archivo tiempo de distribucin: cliente-servidor

transmisin de servidor: debe


secuencialmente enviar (upload) N
copias de archivos
:

tiempo para enviar una copia: F / u


s

tiempo para enviar N copias: NF / u


s
aumenta linealmente en N
tiempo para distribuir F
a los clientes el uso de N
enfoque cliente-servidor
D
cs
> Max {NF / u
s,
,F/d
min
}

cliente: cadanecesidaddelcliente
copia de archivos descarga
d
min
= Tasa de descarga del cliente min
tiempodedescargadelclientemin:F/d
min
u
s

la red
d
yo
u
yo
F
Pgina 79

Capa de aplicacin 2-79


Archivo tiempo de distribucin: P2P

transmisin de servidor: debe


subir al menos una copia

tiempo para enviar una copia: F / u


s
tiempo para distribuir F
a los clientes el uso de N
Enfoque P2P
u
s
la red
d
yo
u
yo
F
D
P2P
> Max {F / u
s,
,F/d
min,
, NF / (
u
s
+

u
yo
)}

cliente: cadanecesidaddelcliente
copia de archivos descarga
tiempodedescargadelclientemin:F/d
min

clientes: comoagregadodebedescargarlosbitsNF
tasadecargamxima(limtingtasadedescargamxima)esdeu
s
+

u
yo

... Pero tambin lo hace esto, ya que cada pares ofrece una capacidad de servicio
aumenta linealmente en N ...
Pgina 80

Capa de aplicacin 2-80


0
0.5
1
15
2
2.5
3
3.5
0
5
10
15
20
25
30
35
N
M
yo
ni
m
u
m
D
yo
s
t
Rhode Island
pero
in T
yo
m
e
P2P
Servidor de cliente
Cliente-servidor vs.P2P: ejemplo
tasa de subida cliente = u, F / u = 1 hora, u
s
= 10u, d
min
u
s
Pgina 81

Capa de aplicacin 2-81


Distribucin de archivos P2P: BitTorrent
Tracker: pistaspares
participar en torrent
torrent: grupodecompaeros
el intercambio de trozos de un archivo
Alice llega ...


archivo dividido en trozos 256Kb

compaeros en torrent enviar / recibir trozos de archivos


... Obtiene la lista
de los compaeros de rastreador
... Y comienza a intercambiar
trozos de archivos con sus compaeros en torrent
Pgina 82

Capa de aplicacin 2-82

mirar unirse torrent:


notienetrozos,perolohar
acumular en el tiempo
de otros compaeros
registraconelperseguidordeconseguir
lista de compaeros, se conecta a
subconjunto de pares
("Vecinos")
Distribucin de archivos P2P: BitTorrent

durante la descarga, mirar archivos trozos de otros compaeros

pares puede cambiar los compaeros con los que intercambia trozos

churn: compaerospuedeniryvenir

una vez entre pares tiene todo el archivo, puede (egostamente) salir o
(altruista) permanecer en torrent
Pgina 83

Capa de aplicacin 2-83


BitTorrent: requirente, enviando trozos de archivos
solicitando trozos:

en cualquier momento dado, diferente


compaeros tienen diferentes subconjuntos
de trozos de archivos

peridicamente, Alice le pide a cada


pares para la lista de trozos que
ellos tienen

Peticiones Alice desaparecidos


trozos de pares, ms rara
primero
enviando trozos: ojo por ojo

Alice enva a los trozos


cuatro pares Actualmente envindola
trozos de tasa ms alta
otroscompaerossonahogadosbyAlice
(no reciben trozos de ella)

reevaluarlas4every10segundos

cada 30 segundos: seleccionar al azar


otro compaero, comienza a enviar
trozos
"optimismounchoke"estaentrepares
paresrecinelegidopuedeunirsealapartesuperior4
Pgina 84

Capa de aplicacin 2-84


BitTorrent: ojo por ojo
(1) Alice "optimismo unchokes" Bob
(2) Alice se convierte en uno de los cuatro principales proveedores de Bob; Bob
reciproca
(3) Bob se convierte en uno de los cuatro principales proveedores de Alice
mayor tasa de subida: encontrar mejor
socios comerciales, obtener archivos ms rpido!
Pgina 85

Tabla de Hash Distribuido (DHT)

DHT: una basededatosP2Pdistribuido

base de datos tiene (clave,valor) pares; ejemplos:


clave:nmeross;valor:nombrehumano
clave:ttulodelapelcula;valor:direccinIP

Distribuir los (valor clave,) pares sobre el


(millones de pares)

un compaero consulta DHT con llave


DHTdevuelvevaloresquecoincidenconlatecla

compaeros tambin pueden insertar (clave, valor) pares


Aplicacin 2-85
Pgina 86

Q: cmo asignar teclas a sus compaeros?

cuestin central:
asignacin(valorclave,)paresapares.

idea bsica:
convertircadallaveaunentero
Asignaracadanmeroenteroentrepares
poner(valorclave,)parenelparqueesmscercano
a la tecla
Aplicacin 2-86
Pgina 87

Identificadores de DHT

asignar a cada identificador entero en el rango de pares

[0,2
n
-1] Para algunos n.
cadaidentificadorrepresentadopornbits.

exigir a cada clave para ser un nmero entero en el mismo rango

para obtener la clave de enteros, hash de llave original


porejemplo,clave=picadillo("LedZeppelinIV")
estaeslaraznporlaseconocecomounadistribuida
"
picadillo
"
mesa
Aplicacin 2-87
Pgina 88

Asignar claves de sus compaeros

regla: clave asignar a los pares que tiene la


ms cercano ID.

convencin en conferencia: ms cercano es el


sucesor inmediato delallave.

por ejemplo, n = 4; compaeros: 1,3,4,5,8,10,12,14;


clave=13,entoncesloscompaerossucesor=14
clave=15,entoncesloscompaerossucesor=1
Aplicacin 2-88
Pgina 89

1
3
4
5
8
10
12
15
DHT Circular (1)

cada par slo se consciente de inmediato sucesor y


predecesor.

"Red superpuesta"
Aplicacin 2-89
Pgina 90

0001
0011
0100
0101
1000
1010

1100
1111
Quien
'
s responsable
para la clave 1110?
soy
O (n) los mensajes
en avgerage para resolver
consulta, cuando hay
son N pares
1110
1110
1110
1110
1110
1110
Definir ms cercano
como ms cercano
sucesor
Aplicacin 2-90
DHT Circular (1)
Pgina 91

DHT Circular con accesos directos

cada par mantiene un registro de las direcciones IP de predecesor,


sucesor, atajos.

reducido de 6 a 2 mensajes.

posible disear mtodos abreviados de modo O (log N) vecinos, O (log N)


mensajes en consulta
1
3
4
5
8
10
12
15
Quin es responsable
para la clave 1110?
Aplicacin 2-91
Pgina 92

Churn Peer
ejemplo: pares 5 deja bruscamente

pares 4 pares 5 detecta la salida; hace 8 su inmediata


sucesor; pregunta 8 que su sucesor inmediato es; hace
De 8 sucesor inmediato su segundo sucesor.

y si los compaeros 13 quiere unirse?


1

3
4
5
8
10
12
15
el manejo de la rotacin entre iguales:

compaeros pueden ir y venir (churn)

cada interlocutor sabe direccin de su


dos sucesores

cada par pings peridicamente su


dos sucesores para comprobar la vitalidad

si sale de inmediato sucesor,


elegir el prximo sucesor como nuevo
sucesor inmediato
Aplicacin 2-92
Pgina 93

Capa de aplicacin 2-93


Captulo 2: Esquema
2.1 Principios de la red
aplicaciones
arquitecturasdeaplicaciones
requisitosdeaplicaciones
2.2 Web y HTTP
2.3 FTP
2,4 correo electrnico
SMTP,POP3,IMAP
2.5 DNS
2.6 aplicaciones P2P
Programacin 2.7 zcalo
con UDP y TCP
Pgina 94

Capa de aplicacin 2-94


Programacin de sockets
objetivo: aprenderaconstruiraplicacionescliente/servidorque
comunicarse utilizando sockets
socket: puertaentreprocesodesolicitudyEnd
protocolo de transporte final
Internet
controlada
por el sistema operativo
controlado por
desarrollador de aplicaciones
transporte
solicitud
fsico
enlace
la red

proceso
transporte
solicitud
fsico
enlace
la red
proceso
enchufe
Pgina 95

Capa de aplicacin 2-95


Programacin de sockets
Dos tipos de conectores para dos servicios de transporte:

UDP: datagramasnofiable

TCP: fiable,corrienteorientadaabyte
Ejemplo de aplicacin:
1.
Cliente lee una lnea de caracteres (datos) de su
teclado y enva los datos al servidor.
2.
El servidor recibe los datos y convertidos
caracteres en maysculas.
3.
El servidor enva los datos modificados al cliente.
4.
El cliente recibe los datos y pantallas modificados
la lnea en su pantalla.
Pgina 96

Capa de aplicacin 2-96


Programacin de sockets UDP
UDP: no "conexin" entre el cliente y el servidor

sin protocolo de enlace antes de enviar datos

emisor concede explcitamente la direccin IP de destino y


puerto # para cada paquete

RCVR extrae direccin IP del remitente y el puerto de #


paquete recibido
UDP: los datos transmitidos pueden ser perdidos o recibidos
fuera de servicio
Punto de vista de la aplicacin:
UDP ofrece poco fiable transferencia de grupos de bytes
("Datagramas") entre el cliente y el servidor
Pgina 97

Cliente / servidor de interaccin socket: UDP


cerca
clientSocke t
leer datagrama desde
clientSocket
crear socket:

clientSocket =
socket (AF_INET, SOCK_DGRAM)
Crear datagrama IP con servidor y
PORT = x; enviar datagramas a travs de
clientSocket
crear socket, port = x:
ServerSocket =
socket (AF_INET, SOCK_DGRAM)
leer datagrama desde
serverSocke t
escribir respuesta a
ServerSocket
especificando
direccin del cliente,
nmero de puerto
Aplicacin 2-97
servidor
(corriendo
en
servidor IP
)
cliente
Pgina 98

Capa de aplicacin 2-98


Ejemplo de aplicaciones: cliente UDP
de la toma de las importaciones *
serverName = 'nombre de host'
serverPort = 12000
clientSocket = socket (socket.AF_INET,
socket.SOCK_DGRAM)
message = raw_input ('Input frase minscula:')
clientSocket.sendto
(mensaje, (serverName, serverPort))
modifiedMessage, serverAddress =
clientSocket.recvfrom (2.048)
modifiedMessage impresin
clientSocket.close ()
Python UDPClient
incluir toma de Python
biblioteca
crear socket UDP para
servidor
conseguir el teclado del usuario
entrada
Coloque el nombre del servidor, el puerto de
mensaje; enviar en el zcalo
imprimir cadena recibida
y cerca zcalo
leer caracteres respuesta de
toma en cadena
Pgina 99

Capa de aplicacin 2-99


Ejemplo de aplicaciones: servidor UDP
de la toma de las importaciones *

serverPort = 12000
ServerSocket = socket (AF_INET, SOCK_DGRAM)
serverSocket.bind (('', serverPort))
impresin
"El servidor est preparado para recibir"
mientras que 1:
mensaje, Direccin_cliente = serverSocket.recvfrom (2048)
modifiedMessage = message.upper ()
serverSocket.sendto (modifiedMessage, Direccin_cliente)
Python UDPServer
crear socket UDP
toma unen al puerto local
nmero 12.000
bucle para siempre
Leer de socket UDP en
mensaje, conseguir clientes de
(IP cliente y puerto)
enviar cadena maysculas
de nuevo a este cliente
Pgina 100

Capa de aplicacin 2-100


Programacin de sockets conTCP
cliente debe contactar con el servidor

proceso de servidor debe ser primero


corriendo

servidor debe haber creado


socket (puerta) que
acoge con satisfaccin el contacto del cliente
servidor de contactos de clientes a travs de:

Creacin de socket TCP,


especificando la direccin IP, el puerto
nmero de proceso del servidor

cuando el cliente crea socket:


establece TCP cliente
conexin al servidor TCP

cuando fue contactado por el cliente,


TCP servidor crea nuevo socket
para el proceso de servidor
comunicarse con ese
especialmente cliente
permiteservidorparahablarcon
varios clientes
nmerosdepuertodeorigenutilizados
para distinguir clientes
(ms en el captulo 3)
TCP proporciona fiable, en orden
transferencia de flujo de bytes ("pipe")
entre cliente y servidor
aplicacin punto de vista:

Pgina 101

Capa de aplicacin 2-101


Cliente / servidor de interaccin socket: TCP
esperar a que entrante
solicitud de conexin
connectionSocket =
serverSocket.accept ()
crear socket,
= portuarias x,paraelentrante
peticin:
ServerSocket = socket ()
crear socket,
conectarse a hostid,port=x
clientSocket = socket ()
servidor
(corriendo
en
hostid
)
cliente
enviar solicitud utilizando
clientSocket
leer peticin de
connectionSocke t
escribir respuesta a
connectionSocket
TCP
configuracin de la conexin
cerca
connectionSocket
leer respuesta de
clientSocket
cerca
clientSocket
Pgina 102

Capa de aplicacin 2-102


Ejemplo de aplicaciones: cliente TCP
de la toma de las importaciones *
serverName = 'nombre_servidor'
serverPort = 12000
clientSocket = socket (AF_INET, SOCK_STREAM)
clientSocket.connect ((serverName, serverPort))
frase = raw_input ('Input frase minscula:')
clientSocket.send (frase)
modifiedSentence = clientSocket.recv (1024)
print 'De Servidor:', modifiedSentence
clientSocket.close ()
Python TCPClient
crear socket TCP para
servidor, 12000 puerto remoto
No hay necesidad de conectar el servidor
nombre, puerto
Pgina 103

Capa de aplicacin 2-103


Ejemplo de aplicaciones: servidor TCP
de la toma de las importaciones *
serverPort = 12000
ServerSocket = socket (AF_INET, SOCK_STREAM)
serverSocket.bind (('', serverPort))
serverSocket.listen (1)
print "El servidor est preparado para recibir"
mientras que 1:
connectionSocket, addr = serverSocket.accept ()
frase = connectionSocket.recv (1024)
capitalizedSentence = sentence.upper ()
connectionSocket.send (capitalizedSentence)
connectionSocket.close ()
Python TCPServer
crear TCP bienvenida
enchufe
servidor empieza escuchando
peticiones TCP entrantes
bucle para siempre
servidor espera en aceptar ()
para las solicitudes entrantes, nuevo
socket creado en el retorno
leer bytes de enchufe (pero
no abordan como en UDP)
estrecha relacin con este
cliente (pero no bienvenida
socket)
Pgina 104

Capa de aplicacin 2-104


Captulo 2: Resumen

arquitecturas de aplicaciones
clienteservidor
P2P

de servicios de aplicaciones
requisitos:
fiabilidad,anchodebanda,retardo

Servicio de transporte de Internet


modelo
orientadoaconexin,
fiable: TCP
pocofiables,losdatagramasUDP:
nuestro estudio de aplicaciones de red ahora completa!

protocolos especficos:
HTTP
FTP
SMTP,POP,IMAP
DNS
P2P:BitTorrent,DHT


la programacin del zcalo: TCP,
Sockets UDP
Pgina 105

Capa de aplicacin 2-105

solicitud tpica / respuesta


intercambio de mensajes:
clientesolicitainformacino
servicio
servidorrespondecon
de datos, cdigo de estado

formatos de mensaje:
encabezados:Camposdando
informacin sobre los datos
datos:informacindeser
comunicados
temas importantes:

vs.data de control Mensajes


enbanda,fueradebanda

vs.decentralized centralizado

vs.stateful aptridas

msg vs.unreliable confiable


transferencia

"Complejidad en la red
borde "

Anda mungkin juga menyukai