• No se han encontrado resultados

Chapter 2 Capa de Aplicación

N/A
N/A
Protected

Academic year: 2018

Share "Chapter 2 Capa de Aplicación"

Copied!
31
0
0

Texto completo

(1)

2: Application Layer 1

Chapter 2

Capa de Aplicación

2: Application Layer 2

Chapter 2: Capa de Aplicación

ˆ

2.1 Principios de las

aplicaciones de red

ˆ

2.2 Web and HTTP

ˆ

2.3 FTP

ˆ

2.4 Electronic Mail

™SMTP, POP3, IMAP

ˆ

2.5 DNS

ˆ

2.6 Aplicaciones P2P

Chapter 2: Application Layer

Objetivos:

ˆ

Conceptos,

implementación y

aspectos de los

protocolos de

aplicaciones de red

™

transport-layer

service models

™

client-server

paradigm

™

peer-to-peer

paradigm

ˆ

Aprender acerca de

los protocolos

mediante la

examinación de los

protocolos populares

de nivel de aplicación

™HTTP ™FTP

(2)

2: Application Layer 4

Algunas aplicaciones de red

ˆ

e-mail

ˆ

web

ˆ

instant messaging

ˆ

remote login

ˆ

P2P file sharing

ˆ

multi-user network

games

ˆ

streaming stored video

clips

ˆ

voice over IP

ˆ

real-time video

conferencing

ˆ

grid computing

ˆ

ˆ ˆ

2: Application Layer 5

Creando una network app

Escribir programas que ™Corran en (diferentes) end

systems

™Se comunican a través de la

red

™Ejemplo., web server software

comunicándose con browser software

No se necesita escribir software para dispositivos network-core ™Dispositivos de Network-core

no corren aplicaciones de usuario

™Las aplicaciones en los end

systems permiten un desarrollo y propagación rápida de las aplicaciones

application

transport network data link physical

application

transport network data link physical

application

transport network data link physical

Chapter 2: Capa de Aplicación

ˆ

2.1 Principios de las

aplicaciones de red

ˆ

2.2 Web and HTTP

ˆ

2.3 FTP

ˆ

2.4 Electronic Mail

™SMTP, POP3, IMAP

ˆ

2.5 DNS

(3)

2: Application Layer 7

Arquitectura de Aplicaciones

ˆ

Cliente-Servidor

ˆ

Peer-to-peer (P2P)

ˆ

Híbrido de cliente-servidor y P2P

2: Application Layer 8

Arquitectura Cliente-servidor

servidor:

™

Siempre en un host

™

IP address

permanente

™

Para escalamiento se

usan server farms

clientes:

™Se comunica con el server ™Pueden estar conectados

intermitentemente

™Puede tener direcciones IP

dinámicas

™No se comunica

directamente con otro cliente

cliente/servidor

Arquitectura pura P2P

ˆ No siempre en un servidor ˆ end systems arbitrarios

directamente comunicados ˆ peers se conectan

intermitentemente y cambian de IP addresses

Altamente escalable pero dificil de manejar

(4)

2: Application Layer 10

Hybrido de cliente-servidor y P2P

Skype

™Voz sobre IP P2P application

™Server centralizado: encontrando direcciones de las

partes remotas

™En la conexión cliente-cliente: directo (no a través de un

servidor) Mensajería Instántanea

™Chateando entre dos usuarios es P2P

™Servicio centralizado: Detección de la presencia del

cliente/localización

• Los usuarios registran su dirección IP en el servidor central cuando entran en línea

• Los usuarios contactan al servidor central para encontrar las direcciones IP de los buddies

2: Application Layer 11

Processes communicating

Procesos:

programa

corriendo en un host.

ˆ

Dentro del mismo host,

dos procesos se pueden

comunicar usando

inter-process

communication

(definido

por el Sistema

Operativo).

ˆ

Procesos en diferentes

hosts se comunican

intercambiando

messages

Proceso Cliente:

proceso

que inicia la

comunicación

Proceso servidor:

Proceso que espera

para ser contactado

ˆ

Nota: Aplicaciones con

arquitectura P2P tienen

procesos cliente y

procesos servidor

Sockets

ˆ Los procesos envían y reciben mensajes desde y hacia sus socket

ˆ socket análogo a una puerta ™Procesos enviándose empujan

mensajes por la puerta

™Procesos enviándose recae en

la infraestructura de transporte de el otro lado de

process

TCP with buffers, variables

socket host or server

process

TCP with buffers, variables

socket host or server

(5)

2: Application Layer 13

Direccionamiento de los procesos

ˆ

Para recibir mensajes el

proceso debe tener

identifier

ˆ

El dispositivo host tiene

una única dirección IP de

32-bit

ˆ

Q:

Es suficiente la

dirección IP del Host

para identificar el

Proceso?

2: Application Layer 14

Direccionamiento de los procesos

ˆ

Para recibir mensajes

el proceso debe tener

identifier

ˆ

Los dispositivos host

tiene una unica

dirección IP de 32 bits

ˆ

Q:

Es la dirección IP

del host donde el

proceso corre

suficiente para

identificar el proceso?

™

A:

No,

algunos

procesos pueden

correr en el mismo

host

ˆ

identifier

incluye ambos

dirección IP y número de

puerto

asociado con el

proceso del host.

ˆ

Ejemplo port numbers:

™HTTP server: 80 ™Mail server: 25

ˆ

Para enviar un mensaje

HTTP al web server

gaia.cs.umass.edu :

™IP address:128.119.245.12 ™Port number:80

Definiciones de los protocolos

capa-aplicación

ˆ Tipos de mensajes intercambiados

™e.g., requerimiento,

respuesta

ˆ Syntaxis del mensaje: ™Que campo en el mensaje y

como los campos están delimitados

ˆ Semántica del mensaje ™Significado de la

información que va en los campos

ˆ Reglas de cuando y como los procesos son enviados & respuestas a mensajes.

Protocolos de domain-public: ˆDefinidos en RFCs ˆPermiten la

(6)

2: Application Layer 16

Que servicios de transporte necesita una

aplicación?

Pérdida de datos

ˆ Algunas apli. (e.g., audio) pueden tolerar algo de pérdida ˆ Otras aplicaciones (e.g., file

transfer, telnet) requieren el 100% de fiabilidad para la transferencia de datos

Temporización

ˆ

Algunas apli. (e.g.,

Internet telephony,

interactive games)

requieren un bajo

delay para ser

“efectivas”

Throughput

ˆ

Algunas aplicaciones (e.g.,

multimedia) requieren una

cantidad de throughput

mínima para ser

“efectivas”

ˆ

Otras apli. (“elastic apps”)

pueden usar cualquier

throughput que ellas

obtengan

Seguridad

ˆ

Encryption, data

integridad, …

2: Application Layer 17

Requerimientos de servicios de Transporte de

aplicaciones comunes

Aplicaciones

file transfer e-mail Web documents real-time audio/video

stored audio/video interactive games instant messaging

Perdida datos

no loss no loss no loss loss-tolerant

loss-tolerant loss-tolerant no loss

Throughput

elastic elastic elastic

audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic

Time Sensitive

no no no

yes, 100’s msec

yes, few secs yes, 100’s msec yes and no

Servicios de Protocolo de transporte de

Internet

Servicios TCP :

ˆ connection-oriented:se requiere setup entre los procesos cliente y servidor ˆ reliable transport entre los

procesos de envío y recepción ˆ flow control: el transmisor no

inunde al receptor ˆ congestion control:ahogar al

Sevicios UDP:

ˆ Transferencia de datos no confiable entre los procesos de envío y recepción. ˆ No provee setup de

conexión, confiabilidad, control de

(7)

2: Application Layer 19

Internet apps: application, transport protocols

Aplicación

e-mail remote terminal access Web file transfer streaming multimedia

Internet telephony

Protocolo de la capa De aplicación

SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (eg Youtube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype)

Protocolo de transporte debajo

TCP TCP TCP TCP TCP or UDP

typically UDP

2: Application Layer 20

Chapter 2: Application layer

ˆ

2.1 Principles of

network applications

™app architectures ™app requirements

ˆ

2.2 Web and HTTP

ˆ

2.4 Electronic Mail

™SMTP, POP3, IMAP

ˆ

2.5 DNS

ˆ

2.6 P2P applications

Web and HTTP

Primero algo común

ˆLa Página Web consiste de objectos

ˆObjetos pueden ser archivos HTML file, imagenes

JPEG, Java applet, archivo de audio ,..

ˆLa página Web consiste de un archivo base HTMLel

cual incluye algunos objetos referenciados.

ˆCada objeto esta direccionado por un URL Localizador de recursos uniforme

ˆEjemplo URL:

www.someschool.edu/someDept/pic.gif

(8)

2: Application Layer 22

HTTP overview

HTTP: Protocolo de

transferencia de

hypertexto

ˆ Protocolo de capa de aplicación de los Web’s ˆ Modelo cliente/servidor

™cliente:browser que

solicita y recibe “mostrando” objetos Web

™servidor:servidor Web

envía objetos en respuesta a un requerimiento

PC running Explorer

Server running Apache Web

server

Mac running Navigator

HTTP request

HTTP reques

t

HTTP respons e

HTTP respon

se

2: Application Layer 23

HTTP overview (continued)

Usa TCP:

ˆ El cliente inicia la conexión TCP (creando el socket) al servidor, puerto 80

ˆ El servidor acepta la conexión TCP que viene del cliente ˆ Mensajes HTTP

(application-layer protocol messages) son intercambiados entre el browser (cliente HTTP) y el servidor Web (HTTP server) ˆ Conexión TCP cerrada

HTTP es “stateless”

ˆ El servidor no mantiene información acerca de requerimientos de clientes pasados

Protocolos que mantienen “state” son complejos! ˆ La historia pasada (state)

puede ser mantenida ˆ Si el servidor/cliente

crashes, sus vistas de “state” pueden ser inconsistentes

aside

Conexiones HTTP

Nonpersistent HTTP

ˆ

Cada objeto debe ser

enviado por una

conexion TCP

individual establecida.

Persistent HTTP

(9)

2: Application Layer 25

Nonpersistent HTTP

Supongamos que el usario ingresa el URL

www.someSchool.edu/someDepartment/home.index

1a.El cliente HTTP inicia una conexionTCP al HTTP server (proceso) a

www.someSchool.edu en el puerto80

2.El cliente HTTPenvía un

mensaje de requerimiento HTTP(conteniendo URL) dentro del socket de la conexión TCP. El Mensaje indica que ese cliente quiere algun objeto

Department/home.index

1b.El servidor HTTPen el host

www.someSchool.edu

esperando por una conexion TCP al puerto 80. “acepta” la conexión, notificando al cliente

3.El servidor HTTPrecibe el mensaje de requerimiento y forma , mensaje de respuesta

conteniendo el objeto requerido, y envía el mensaje dentro de su socket

tiempo

(contains text, references to 10

jpeg images)

2: Application Layer 26

Nonpersistent HTTP (cont.)

5.EL cliente HTTP recibe el mensaje de respuesta que contiene el archivo html , muestra el html. Analizando la estructura del archivo html, encontrando 10 objetos referenciados jpeg.

6.Pasos del 1-5 son repetidos para cada uno de los 10 objetos

4.El servidor HTTPserver cierra la conexión TCP.

tiempo

Non-Persistent HTTP: Tiempo de

respuesta

Definición RTT:tiempo que le toma a un paquete pequeño viajar desde el cliente al servidor y retornar Tiempo de Respuesta: ˆ Un RTT para iniciar la

conexión TCP ˆ Un RTT para que el

requerimiento HTTP y unos pocos primeros bytes de la respuesta HTTP retornen ˆ Tiempo de transmisión del

archivo

total = 2RTT+transmit time

time to transmit file initiate TCP

connection

RTT

request file

RTT

file received

(10)

2: Application Layer 28

Persistent HTTP

Nonpersistent HTTP issues: ˆ Requiere 2 RTTs por

objecto

ˆ Overhead del Sistema Operativo para cada conexión TCP ˆ Los browsers con

frecuencia suelen abrir en paralelo conexiones TCP para traer objetos referenciados

Persistent HTTP

ˆ El servidor deja conexiones abiertas despues de enviar la respuesta

ˆ Mensajes HTTP subsiguientes entre el mismo cliente/servidor son enviados sobre la conexión abierta

ˆ El cliente envía

requerimientos tan pronto como el encuentra un objeto referenciado ˆ Tan poco como un RTT es

usado para todos los objetos referenciados

2: Application Layer 29

Mensaje de requerimiento HTTP

ˆ

Dos tipos de mensajes HTTP : requerimiento

,

respuesta

ˆ

Mensaje de requerimiento HTTP :

™ASCII (human-readable format)

GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr

(extra carriage return, line feed) Línea de requerimiento

(GET, POST, HEAD comandos) Lineas de encabezado

Carriage return, line feed Indica el final del mensaje

(11)

2: Application Layer 31

Uploading form input

Post method:

ˆ

Las páginas web

frecuentemente

incluyen form input

ˆ

El Input es subido al

servidor en el campo

entity body

URL method:

ˆ

Utiliza el método GET

ˆ

El Input es subido en

el campo URL de la

línea de requerimiento:

www.somesite.com/animalsearch?monkeys&banana

2: Application Layer 32

Tipos de métodos

HTTP/1.0

ˆ

GET

ˆ

POST

ˆ

HEAD

™Pregunta al servidor

para dejar los objetos requeridos fuera de la respuesta

HTTP/1.1

ˆ

GET, POST, HEAD

ˆ

PUT

™Sube el archivo en el

campo entity body para especificar el path en el campo URL ˆ

DELETE

™Borra el archivo

especificado en el campo URL

Mensaje de respuesta HTTP

HTTP/1.1 200 OK Connection close

Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix)

Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821

Content-Type: text/html

data data data data data ... Status line

(protocol, status code, status phrase)

header lines

(12)

2: Application Layer 34

Codigos de Estado de la respuesta

HTTP

200 OK

™Requerimiento exitoso, objeto requerido luego en este

mensaje

301 Moved Permanently

™Objeto requerido ha sido movido, la nueva localización esta

especificada luego en este mensaje (Location:)

400 Bad Request

™Mensaje de requerimiento no entendido por el servidor

404 Not Found

™Documento requerido no encontrado en este servidor

505 HTTP Version Not Supported

Esta en la primera línea en el mensaje de respuesta server->client.

Ejemplos:

2: Application Layer 35

Probando HTTP (lado cliente) for yourself

1. Telnet to your favorite Web server:

Opens TCP connection to port 80 (default HTTP server port) at cis.poly.edu. Anything typed in sent

to port 80 at cis.poly.edu

telnet cis.poly.edu 80

2. Type in a GET HTTP request:

GET /~ross/ HTTP/1.1 Host: cis.poly.edu

By typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server

3. Look at response message sent by HTTP server!

User-server state: cookies

La mayoría de sitios

Web usan cookies

Cuatro componentes:

1) cookie header line en el mensaje HTTP

respuesta

2) cookie header line en el mensaje HTTP

requerimiento

Ejemplo:

ˆ

Susan siempre accesa

Internet desde su PC

ˆ

Visita un sitio específico

de e-commerce por

primera vez

(13)

2: Application Layer 37

Cookies: manteniendo el “state” (cont.)

cliente

servidor

usual http response msg

usual http response msg

cookie file

Una semana despues:

usual http request msg

cookie: 1678

cookie-specific action

acceso

ebay 8734

usual http request msg Amazon server

creates ID 1678 for usercrea

la entrada usual http response

Set-cookie: 1678 ebay 8734

amazon 1678

usual http request msg

cookie: 1678

cookie-spectific action

acceso

ebay 8734 amazon 1678

backend database

2: Application Layer 38

Cookies (continuación)

Que pueden llevar los cookies: ˆ Autorización

ˆ shopping carts ˆ Recomendaciones ˆ Estado de la sesión del

usuario (Web e-mail)

Cookies y la privacidad: ˆ cookies permiten que los

sitios aprendan bastante acerca de uno

ˆ Usted debe proporcionar su nombe y su e-mail a los sitios

aside

Como mantenerse en “state”:

ˆ

Los protocolos de los endpoints:

mantienen el estado del

sender/receiver sobre multiples

transacciones

ˆ

cookies: Mensaje http lleva state

Web caches (proxy server)

ˆ

El usuario debe

configurar su browser:

Acceso al web via

cache

ˆ

El browser envia todos

los requerimientos

HTTP al cache

™El objeto en la cache:

El cache retorna el objecto

™Si no el cache solicita el

objeto al servidor

Objetivo:Satisfacer el requerimento del cliente sin involucrar al servidor original

client

Proxy server

client HTTP req

uest

HTTP respon

se

HTTP request

HTTP re quest

origin server origin server

HTTP r

(14)

2: Application Layer 40

Más acerca de Web caching

ˆ

cache actua como

ambos cliente y

servidor

ˆ

Tipicamente el cache

es instalado por el ISP

(university, company,

residential ISP)

Por que Web caching? ˆ Reduce los tiempos de

respuesta para los requerimientos cliente ˆ Reduce el tráfico en el

enlace de acceso de una institución.

ˆ Cuando el Internet esta denso con los caches: habilita un contenido“poor” para entregar

efectivamente contenido (tambien para la comparticion de archivos P2P )

2: Application Layer 41

Ejemplos de Caching

Asunciones

ˆ average object size = 100,000 bits

ˆ avg. request rate from institution’s browsers to origin servers = 15/sec

ˆ delay desde el router institucional hacia algun servidor origen y de regreso al router = 2 sec

Consecuencias

ˆ Utilización de la LAN = 15% ˆ Utilización del enlace de acceso =

100%

ˆ total delay = Internet delay + access delay + LAN delay = 2 sec + minutes + milliseconds

origin servers public

Internet

institutional

network 10 Mbps LAN 1.5 Mbps access link

institutional cache

Ejemplo de Caching (cont)

Solución posible

ˆ Incrementar el ancho de banda del enlace de acceso, 10 Mbps

consecuencias

ˆ Utilización de la LAN = 15% ˆ Utilización del enlace de acceso =

15%

ˆ Total delay = Internet delay +

origin servers public

Internet

institutional network

(15)

2: Application Layer 43

Ejemplo de Caching (cont)

Posibles soluciones: instalar un cache

ˆ Supongamos un hit rate de 0.4

Consecuencia

ˆ 40% de los requerimientos son satisfechos casi

inmediatamente

ˆ 60% de los requerimientos son satisfechos por el origin server ˆ La utilización del enlace de

acceso se reduce al 60%, resultando en delays insignificantes (aprox 10 msec) ˆ total avg delay = Internet

delay + access delay + LAN delay = .6*(2.01) secs + .4*milliseconds < 1.4 secs

origin servers public

Internet

institutional

network 10 Mbps LAN 1.5 Mbps access link

institutional cache

2: Application Layer 44

GET Condicional

ˆ Objetivo:no envie el obeto si el cache tiene una version actualizada cacheada ˆ cache: especifica la fecha en

que la copia fue cacheada en el requerimiento HTTP

If-modified-since: <date>

ˆ servidor: respuesta no contiene objetos si la copia cacheada esta actualizada:

HTTP/1.0 304 Not Modified

cache

servidor

HTTP request msg

If-modified-since: <date>

HTTP response

HTTP/1.0 304 Not Modified

objeto no modificado

HTTP request msg

If-modified-since: <date>

HTTP response

HTTP/1.0 200 OK

<data>

objeto modificado

Chapter 2: Application layer

ˆ

2.1 Principles of

network applications

ˆ

2.2 Web and HTTP

ˆ

2.3 FTP

ˆ

2.4 Electronic Mail

™SMTP, POP3, IMAP

ˆ

2.5 DNS

(16)

2: Application Layer 46

FTP: Protocolo de transferencia de

archivo

ˆ Transferencia de archivo hacia/desde host remoto ˆ Modelo cliente/servidor

™cliente:Lado que inicia la transferencia (ya sea

hacia/desde el remoto)

™servidor:host remoto

ˆ ftp: RFC 959 ˆ ftp server: puerto 21

file transfer FTP

server FTP

user interface

FTP client

local file system

remote file system Usuario

en el host

2: Application Layer 47

FTP: separado control, y conexiones de

datos

ˆ FTP cliente contacta al FTP server por el puerto 21, TCP es el protocolo de transporte ˆ El cliente es autorizado sobre

la conexión de control ˆ EL cliente mira el directorio

remoto mediante el envió de comandos sobre la control de conexión.

ˆ Cuando el servidor recibe un comando de transferencia de archivos, el servidor abre una s

2ndTCP conexión (para el file) al cliente

ˆ Después de la transferencia de un archivo, el servidor cierra la conexión de datos.

FTP

cliente servidorFTP

TCP control connection puerto 21

TCP data connection puerto 20

ˆ El servidor abre otra conexión TCP de datos para transferir otro archivo. ˆ La conexión de control: “out

of band”

ˆ El servidor FTP mantiene “state”: el directorio corriente, y la autenticación previa

FTP Comandos, respuestas

Ejemplo de comandos:

ˆ Envío de un texto ASCII sobre el canal de control ˆ USER username

ˆ PASS password

ˆ LISTretorna la lista de los

archivos en el directorio corriente

Ejemplo de codigos de

retorno

ˆ Código de estado y frases (como HTTP)

ˆ 331 Username OK, password required

(17)

2: Application Layer 49

Chapter 2: Application layer

ˆ

2.1 Principles of

network applications

ˆ

2.2 Web and HTTP

ˆ

2.3 FTP

ˆ

2.4 Electronic Mail

™SMTP, POP3, IMAP

ˆ

2.5 DNS

ˆ

2.6 P2P applications

ˆ

2.7 Socket programming

with TCP

ˆ

2.8 Socket programming

with UDP

2: Application Layer 50

Correo Electrónico

Tres principales

componentes:

ˆ Agentes de usuario ˆ Servidores mail ˆ simple mail transfer

protocol: SMTP Agente de usuario

ˆ alias. “mail reader” ˆ redactar, editar, leer mensajes

de correo

ˆ e.g., Eudora, Outlook, elm, Mozilla Thunderbird ˆ Los mensajes de entrada y

salida son guardados en el servidor user mailbox outgoing message queue mail server user agent user agent user agent mail server user agent user agent mail server user agent

SMTP

SMTP

SMTP

Correo Electrónico: mail servers

Mail Servers

ˆ Buzón (mailbox)Contiene los mensajes entrantes del usuario

ˆ message queuede los mensajes de correo saliente (a ser enviados)

ˆ SMTP protocolentre los mail servers para enviar los mensajes de correo

™cliente: enviando mail

server

™“servidor”: recibiendo

(18)

2: Application Layer 52

Correo Electrónico: SMTP

[RFC

2821]

ˆ Usa TCP para una transferencia fiable de los mensajes de correo desde el cliente al servidor, puerto 25 ˆ Transferencia directa: enviando desde el servidor y

recibiendo por el servidor ˆ Tres fases para la transferencia

™handshaking (saludo) ™Transferencia del mensaje ™cierre

ˆ Interacción comando/respuesta

™comandos:ASCII text

™respuesta:código de estado y frase

ˆ

Mensaje debe ser en ASCII 7 bit

2: Application Layer 53

Escenario: Alicia envía un mensaje a

Bob

1) Alicia usa agente de usuario para redactar un mensaje para

bob@someschool.edu 2) El agente de usuario de

Alicia envía el mensaje a su mail server; mensaje es puesto en una cola de mensajes

3) EL lado cliente de SMTP abre una conexión TCP con el mail server de Bob

4) Cliente SMTP envia el mensaje de Alice sobre la conexiónTCP

5) El mail server de Bob coloca el mensaje en el buzón de Bob 6) Bob invoca su agente de

usuario para leer el mensaje.

user agent

mail server

mail

server user

agent 1

2 3

4 5 6

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: <alice@crepes.fr>

S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu>

S: 250 bob@hamburger.edu ... Recipient ok C: DATA

(19)

2: Application Layer 55

SMTP: palabras finales

ˆ SMTP usa conexiones persistentes

ˆ SMTP requiere mensajes (header & body) tienen que ser en ASCII 7 bit ˆ El servidor SMTP usa

CRLF.CRLFpara determinar el final del mensaje

Comparasión con HTTP:

ˆ HTTP: jala (pull) ˆ SMTP: empuja (push) ˆ Ambos tienen interacción

de comandos/repuestas ASCII, codigos de estao ˆ HTTP: cada objeto está

encapsulado en su propio mensaje de respuesta ˆ SMTP: Multiples objetos

son enviados en mensajes de multiples partes

2: Application Layer 56

Formato del mensaje de correo

SMTP: Protocolo para el intercambio de mensajes de correo

RFC 822: estandard para el formato del mensaje de texto:

ˆ Encabezado (header lines), e.g.,

™To: ™From: ™Subject: differentfrom SMTP

commands!

ˆ Cuerpo (body)

™El “mensaje”, caractares

ASCII unicamente

header

body

blank line

Formato mensaje: extensiones multimedia

ˆ MIME: Extensión de correo multimedia, RFC 2045, 2056 ˆ Líneas adicionales en el mensaje de cabecera especifican

el tipo de contenido MIME

From: alice@crepes.fr To: bob@hamburger.edu

Subject: Picture of yummy crepe. MIME-Version: 1.0

Content-Transfer-Encoding: base64 Content-Type: image/jpeg

base64 encoded data ... ... ...base64 encoded data

Tipo de dato multimedia, subtipo, declaración de parámetros

Metodo usado para Codificar el dato MIME version

(20)

2: Application Layer 58

Protocolos de acceso de correo

ˆ SMTP: entrega/almacena hasta el servidor receptor server ˆ Protocolo de acceso al correo: recupera del servidor

™POP: Post Office Protocol [RFC 1939]

• autorización (agente <-->servidor) y bajada (download)

™IMAP: Internet Mail Access Protocol [RFC 1730]

• Más características (más complejo)

• manipulación de los mensajes guardados en el servidor

™HTTP: gmail, Hotmail, Yahoo! Mail, etc.

user agent

sender’s mail server user

agent

SMTP

SMTP

access

protocol

receiver’s mail server

2: Application Layer 59

Protocolo POP3

Fase autorización

ˆ Comandos cliente:

™user:declarar el

username

™pass:password

ˆ Respuestas del servidor

™+OK

™-ERR

Fase transacción,

cliente: ˆ list:lista los números de

mensajes ˆ retr:recupera los

mensajes por número ˆ dele:borrar

ˆ quit

C: list S: 1 498 S: 2 912 S: . C: retr 1

S: <message 1 contents> S: .

C: dele 1 C: retr 2

S: <message 1 contents> 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: +OKuser successfully logged on

POP3 e IMAP

Más acerca de POP3

ˆ

Los ejemplos previos

usan el modo

“download and delete”

ˆ

Bob no puede volver a

leer sus correos si el

cambia de cliente

ˆ

“Download-and-keep”:

IMAP

ˆ Mantiene todos los mensajes en un lugar: el servidor

ˆ Perimete a los usuarios organizar los mensajes en carpetas

(21)

2: Application Layer 61

Chapter 2: Application layer

ˆ

2.1 Principles of

network applications

ˆ

2.2 Web and HTTP

ˆ

2.3 FTP

ˆ

2.4 Electronic Mail

™SMTP, POP3, IMAP

ˆ

2.5 DNS

ˆ

2.6 P2P applications

2: Application Layer 62

DNS: Sistema de Dominio de

Nombres

Personas:algunos

identificadores: ™Cédula de identidad,

nombre, número de pasaporte

Internet hosts, routers: ™Dirección IP (32 bit) –

usado para

direccionamiento de los datagramas

™“nombre”, e.g.,

ww.yahoo.com – usado por los humanos

Q:Existe algun mapeo enttre la dirección IP y el nombre?

Sistema de Dominio de

nombres:

ˆ Base de datos distribuida:

implementado en jerarquía de algunosname servers

ˆ Protocolo de la capa de

aplicación

host, routers, name servers para comunicarse necesitan

resolvernombres

(address/name translation)

™nota: la función core de

Internet implementado como un protocolo de la capa de aplicación

™Complejidad en las puntas

de la red

DNS

Por que no centralizar

DNS?

ˆ

Unico punto de falla

ˆ

Alto volumen de tráfico

ˆ

Base de datos distante

centralizada

ˆ

Mantenimiento

No escalable

!

Servicios DNS

ˆ

Traducción de

nombres de hosts a

direcciones IP

ˆ

host aliasing

™Alias de nombres

ˆ

Servidores de correo

aliasing

ˆ

Distribución de carga

™Replicación de

(22)

2: Application Layer 64

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

Base de datos distribuída y

Jerarquica

El cliente quiere la IP para www.amazon.com;

ˆ

El cliente pregunta al root server para encontrar

DNS server com

ˆ

El cliente pregunta al DNS server com para obtener

el amazon.com DNS server

ˆ

El cliente pregunta amazon.com DNS server para

obtener la dirección IP para www.amazon.com

2: Application Layer 65

DNS: Root name servers

ˆ Contactado por el servidor de nombres local que no sabe como resolver el nombre

ˆ root name server:

™Al menos proporciona el nombre y dirección del servidor autorizado de

la zona de más alto nivel para el dominio buscado

™Existen 13 servidores raíz en toda Internet (7 no son servidores

únicos)

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 36 other locations)

i Autonomica, Stockholm (plus 28 other locations) k RIPE London (also 16 other locations)

m WIDE Tokyo (also Seoul, Paris, SF) a Verisign, Dulles, VA

c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations)

TLD and Authoritative Servers

ˆ

Top-level domain (TLD) servers:

™ Responsable para com, org, net, edu, etc, y todo los

top-level country domains uk, fr, ca, jp. ˆ

Authoritative DNS servers:

™Son los servidores DNS organizacionales, entregan el

authoritative hostname con la IP mapeado para los servidores organizacionales (e.g., Web, mail).

(23)

2: Application Layer 67

Local Name Server

ˆ

No pertenecen estrictamente a la jerarquia

ˆ

Cada ISP (ISP residencial, compañía,

universidad) tienen uno.

™

También llamado “default name server”

ˆ

Cuando el host hace un requerimiento DNS,

la pregunta es enviada a su servidor local

DNS

™

Actua como un proxy, envía la pregunta dentro

de la jerarquía.

2: Application Layer 68

requesting host

cis.poly.edu

gaia.cs.umass.edu

root DNS server

local DNS server

dns.poly.edu

1 2

3

4

5

6

authoritative DNS server

dns.cs.umass.edu 7

8

TLD DNS server

Ejemplo de resolución de nombres

DNS

ˆ

Un Host en

cis.poly.edu quiere la

dirección IP para

gaia.cs.umass.edu

Consultas iterativas:

ˆ El servidor contactado contesta con el nombre del server a ser contactado ˆ “Yo no conozco el

nombre, pero pregunte a este servidor”

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

Consulta recursiva:

ˆ Pone la carga en el servidor de nombres contactado

(24)

2: Application Layer 70

DNS: caching y actualización de

and updating registros

ˆ

Una vez que (cada) name server aprende el

mapping, el

caches

mapping

™

Las entradas en el cache tienen un tiemout,

desaparecen luego de cierto tiempo

™

Los servidoresTLD servers son tipicamente

cacheado en los servidores locales de nombres

• De este modo el root name servers no es visitado a

menudo

ˆ

actualización/notificaciones son mecanismos que

estan bajo el diseño de IETF (Internet

Engineering Task Force)

™RFC 2136

™http://www.ietf.org/html.charters/dnsind-charter.html

2: Application Layer 71

Registros DNS

DNS:La base de datos distribuida guarda los registros fuente(RR)

ˆ Type=NS

™namees el dominio (e.g.

foo.com)

™valuees el hostname del

servidor de nombres autoritativo para este dominio

RR format:

(name, value, type, ttl)

ˆ Type=A

™Name es el hostname

™valuees la direcciónIP

ˆ

Type=CNAME

™namees el nombre alias para

alguien real

www.ibm.com es realmente servereast.backup2.ibm.com

™valuees el nombre real

ˆ

Type=MX

™valuees el nombre del

mailserver asociado con el nombre

Protocolo y mensajes DNS

Protocolo DNS:

preguntas y respuestas ,

ambos con el

mismo

formato de mensaje

msg header

(25)

2: Application Layer 73

Protocolo y mensajes DNS

Nombre, campos tipo Para una pregunta RRs en respuesta a una

pregunta Registros para los servidores autoritativos Información util adicional Que puede ser usada

2: Application Layer 74

Insertando registros dentro de un

DNS

ˆ

ejemplo: Nuevo inicio “Network Utopia”

ˆ

Nombre registrado networkuptopia.com en el

DNS

registrar (e.g., Network Solutions)

™Provee nombres, direcciones IP del servidor autoritativo

(primary and secondary)

™registrar inserta dos RRs en el servidor TLD com:

(networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A)

ˆ

Crear en el servidor autoritativo: Ingrese el registro

A para www.networkuptopia.com; Tipee el registro

MX para networkutopia.com

Chapter 2: Application layer

ˆ

2.1 Principles of

network applications

™app architectures ™app requirements

ˆ

2.2 Web and HTTP

ˆ

2.4 Electronic Mail

™SMTP, POP3, IMAP

ˆ

2.5 DNS

(26)

2: Application Layer 76

Arquitectura Pura P2P

ˆ

no

siempre en un server

ˆ

Sistemas finales

arbitrarios se comunican

directamente

ˆ

Los peers conectados

son intermitentes y

cambian de dirección IP

ˆ

Tres tópicos:

™Distribución de archivos ™Buscando Información ™Caso de estudio: Skype

peer-peer

2: Application Layer 77

Distribución de archivos:

Servidor-Cliente vs P2P

Pregunta

: Cuanto tiempo toma distribuir un

archivo desde un servidor a N peers?

us

u2 d1

d2 u1

uN dN

Server

Network (with abundant bandwidth) File, size F

us:bandwidth subida

del server

ui:bandwidth subida

del peer i

di:bandwidth de

bajada del peer i

Tiempo de distribución de archivo:

servidor-cliente

us

u2

d1 d

2 u1

uN dN

Server

Network (with abundant bandwidth)

F ˆ

El servidor envia

secuencialmente las N

copias:

™

NF/u

s

time

ˆ

El cliente i le toma el

(27)

2: Application Layer 79

Tiempo de distribución de archivo: P2P

us

u2

d1 d2

u1

uN dN

Server

Network (with abundant bandwidth)

F ˆEl servidor debe enviar

una copia en el tiempo : F

/u

s

ˆEl clinte i toma el tiempo

F/dien bajar ˆNF bits deben ser

bajados (agregado)

ˆ

Velocidad más rapida posible de subida :

u

s

+

Σ

u

i

d

P2P

= max

{

F/u

s

, F/min(d

i

)

i

, NF/(u

s

+

Σ

u

i

)

}

2: Application Layer 80 0

0.5 1 1.5 2 2.5 3 3.5

0 5 10 15 20 25 30 35

N

M

inim

u

m

D

is

tr

ibut

io

n

T

im

e P2P

Client-Server

Ejemplo: Servidor-cliente vs. P2P

Distribución de archivos:

BitTorrent

tracker:

rastrear los peers

Participantes en eltorrent

torrent:

peers que intercambian

grupo de

Pedazos de un archivo

obtain list of peers

trading chunks

peer ˆDistribución de archivos

(28)

2: Application Layer 82

BitTorrent (1)

ˆ

El archivo es dividido en pedazos

chunks

de 256KB.

ˆ

peer uniendose al torrent:

™

No tiene pedazos (chunks), pero los acumulará a

través del tiempo

™

Registros con los rastreos para obtener la lista de

peers, conectados a un subset de peers (vecinos)

ˆ

Mientras se baja, el peer sube pedazos (chunks) a

otros peers.

ˆ

Los peers pueden ir y venir

ˆ

Una vez que el peer tiene el archivo entero, el puede

(egoistamente) dejar o (desinteresado) permanecer.

2: Application Layer 83

BitTorrent (2)

Halando pedazos Chunks ˆ En cualquier momento, peers

diferentes tienen diferentes subcojuntos de pedazos de archivos

ˆ periódicamente, un peer (Alice) pregunta a cada vecino por una lista de los pedazos chunks que ellos tengan.

ˆ Alice envia el requerimiento para sus pedazos faltantes

™Los raros primero

Enviando Chunks: tit-for-tat

ˆAlice envía pedazos a 4

vecinos a la más alta velocidad

™re-evalua los top 4 cada

10 secs

ˆcada 30 secs: aleatoriamente

se selecciona otro peer, empieza a enviar chunks

™Los peer recientemente

escogidos se unen al top 4

™“optimista nunca se

obstruye”

BitTorrent: Tit-for-tat

(1) Alice “no obstruye” Bob

(29)

2: Application Layer 85

P2P: Buscando información

Compartición archivos (eg e-mule)

ˆ El indice dinámicamente rastrea la ubicación de los archivos que comparten los peers.

ˆ Los peers necesitan decir al indice que es lo que tienen.

ˆ Los peers buscan el indice para determinar donde los archivos pueden ser encontrados

Mensajería instántanea ˆEl indice mapea el nombre

de usuario con la ubicación. ˆCuando el usuario inicia la

aplicación de IM, el necesita informar el indice de su ubicación

ˆLos Peers buscan el indice para determinar la dirección IP del usuario.

Indices en sistemas P2P: mapea la información a la ubicación peer (ubicación = Dirección IP & número de puerto)

2: Application Layer 86

P2P: indice centralizado

Diseño original de

“Napster”

1) Cuando el peer se

conecta, el informa a un

servidor central:

™Dirección IP ™contenido

2) Alice pregunta por

“Hey Jude”

3) Archivo solicitado por

Alice desde BoB

centralized directory server

peers

Alice Bob 1

1 1 1 2

3

P2P: Problemas con los directorios

centralizados

ˆ Unico punto de falla ˆ Desempeño: cuellos de

botella

ˆ Incumplimiento de los derechos de copia (copyright): juicio

La transferencia de archivos es

(30)

2: Application Layer 88

Inundación de consultas

ˆ

Totalmente distribuido

™no servidor central

ˆ

Usado por Gnutella

ˆ

Cada peer indexa los

archivos que va tener

disponible para

compartición (no otros

archivos)

Overlay de red: grafico ˆBorde entre el peer X y

Y , si existe una conexion TCP

ˆTodos los peer activos y

bordes forman un formato de red

ˆBorde: enlace virtual (

no

físico)

ˆUn peer dado esta

tipicamente conectado con < 10 vecinos del overlay

2: Application Layer 89

Inundación de consultas

Query QueryHit

Query

Qu ery

QueryHit

Que ry

Q uery Que ryHi

t

File transfer: HTTP

ˆMensaje de consulta

enviado sobre una conexion TCP existente

ˆLos peers envian

mensajes de consulta

ˆQueryHit

enviados sobre el Camino de reverso

Escalabilidad:

Alcanse limitado

de la inundación

Gnutella: Peer joining

1.

Uniéndose el peer Alice puede encontrar otros

peer en la red Gnutella

2.

Alice intenta secuencialmente conexiones TCP

con los candidatos a peer hasta realizar el setup

con Bob

3.

Inundación:

Alice envia un mensaje Ping a Bob;

(31)

2: Application Layer 91

Overlay Jerarquico

ˆ

Entre indices

centralizados, enfoque de

inundación de consultas

ˆ

Cada peer es ya sea un

super nodo o asignado a un

super nodo

™ConexionesTCP entre peer y

su super nodo.

™ConexionesTCP entre algún

par de super nodos. ˆ

El super nodo rastresa el

contenido en sus hijos

ordinary peer

group-leader peer

Referencias

Documento similar

BIBLIOGRAFÍA BIBLIOGRAPHY Hamza y el gigante Herkel, Editorial Ecir... AUTOR AUTHOR

El sueño de García Márquez, Brosquil Edicions.. Un día Gabo se encuentra con un estraño personaje que lo obse- quia con una

Direcció General del Llibre, Arxius i Biblioteques... AUTORA AUTHOR

Animales en el campo, Algar Editorial.. Animales salvajes,

El pilar fundamental para perder peso es uno y solo uno: quemar más calorías de las

La solución que se ha planteado, es que el paso o bien se hiciese exclusivamente por el adarve de la muralla, o que una escalera diese acceso por la RM evitando la estancia (De

Os seus resultados apuntan á identificación, estimación e valoración dos tipos de riscos existentes na empresa, no momento da avaliación, para a seguridade e saúde dos

Dado un espazo topol´ oxico, denominado base, e dado un espazo vec- torial para cada punto de dito espazo base, chamaremos fibrado vectorial ´ a uni´ on de todos estes