Академический Документы
Профессиональный Документы
Культура Документы
Capa de Aplicacin
Objetivos:
Aspectos conceptuales y
de implementacin de
los protocolos de
aplicacin
Modelo de servicio
de la capa transporte
Paradigma clienteservidor
Paradigma peer-topeer (par-a-par)
Aprendizaje de
protocolos examinando
protocolos de aplicacin
populares
HTTP
FTP
SMTP / POP3 / IMAP
DNS
E-mail
Web
Mensajera instantnea
Login remoto
Comparticin de archivos
P2P
Juegos de red multiusuarios
Reproduccin de clips de
video almacenados
Telefona Internet
Conferencias de video en
tiempo real
Computacin paralela
masiva.
network
data link
physical
Arquitecturas de Aplicacin
Las aplicaciones de red pueden utilizar una
de las siguientes arquitecturas:
Cliente-servidor
Peer-to-peer (P2P)
Hbridos de cliente-servidor y P2P
Arquitectura Cliente-servidor
Servidor:
Computador siempre
encendido
Direccin IP permanente
Granja de servidores por
escalamiento
Cliente:
Se comunica con servidor
Puede ser conectado
intermitentemente
Puede tener direcciones IP
dinmicas
No se comunican
directamente entre s (dos
clientes puros)
ARQUITECTURA CLIENTE-SERVIDOR
Servidor iterativo no
orientado a la conexin:
Procesa una peticin a la
vez.
Los datagramas se
almacenan en una cola a la
espera de ser atendidos en
orden de llegada
El servidor utiliza un nico
puerto
Utilizan UDP como
protocolo.
ARQUITECTURA CLIENTE-SERVIDOR
Servidor concurrente
orientado a la conexin
Puede atender a mltiples
clientes a la vez
Se establece una conexin
entre el servidor y cada cliente
y esta permanece activa hasta
que el flujo completo es
procesado y se cierra la
conexin.
Utiliza un puerto bien
conocido y crea puertos
efmeros para cada conexin.
Se crea una cola por conexin.
Mensajera Instantnea
Dilogo entre dos usuarios es P2P
Servicio centralizado: Deteccin/localizacin de presencia de
cliente:
Usuario registra su direccin IP en un servidor central cuando ingresa
al sistema
Usuarios contactan servidor central para encontrar las direcciones IP
de sus amigos.
Sockets
Los procesos envan y reciben mensajes a travs de sus socket
Sockets
Los socket son anlogos a puertas
Proceso transmisor saca mensajes por la puerta
Proceso transmisor confa en la infraestructura de transporte al
otro lado de la puerta la cual lleva los mensajes al socket en el
proceso receptor
DIRECCIONAMIENTO DE PROCESOS
Para que un proceso reciba un mensaje, ste debe tener un
identificar
Un host tiene una direccin IP nica de 32 bits.
El identificador incluye la direccin IP y un nmero de puerto
asociado con el proceso en el host.
Ejemplo de nmeros de puertos:
Servidor HTTP: 80
Servidor de Mail: 25
Protocolos de dominio
pblico:
Definidos en RFCs
Permite interoperabilidad
Eg: HTTP, SMTP
Protocolos propietarios:
Eg: KaZaA, Skype
Prdida de Datos
Algunas aplicaciones (e.g., audio)
pueden tolerar prdida
otras (e.g., transferencia de
archivos, telnet) requieren
transferencia 100% confiable
Retardo
Algunas Aplicaciones (e.g.,
Telefona Internet, juegos
interactivos) requieren bajo
retardo para ser efectivas
Ancho de banda
Algunas aplicaciones (por
ejemplo, multimedia)
requieren una cantidad mnima
de ancho de banda para ser
efectivas
Otras (aplicaciones elsticas)
hacen uso del ancho de banda
que obtengan
Prdidas
Ancho de
banda
Sensible a
retardo
no
Elastico
No
no
elastico
no
no
elastico
no
tolerante
audio: 5Kbps-1Mbps
video: 10Kbps-5Mbps
tolerante
Igual al de arriba
Tolerante
no
elstico
Si y no
Aplicacin
e-mail
remote terminal access
Web
file transfer
Streaming
multimedia
Internet
telephony
Protocolo capa
Aplicacin
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (youtube),
RTP, propietario
SIP, RTP, propietario
(e.g.,Skype)
Protocolo de
transporte que lo
sustenta
TCP
TCP
TCP
TCP
TCP or UDP
Tipicamente UDP
Web y HTTP
protocolo://host/ruta
protocolo://host:puerto/ruta
Estticos
Dinmicos
Activos
Nombre de camino
(path name)
HTTP Generalidades
Modelo cliente/servidor
PC ejecutando
Explorer
Servidor
ejecutando
Apache Web
server
Mac ejecutando
Navigator
HTTP generalidades
Usa TCP:
Cliente inicia conexin TCP (crea
socket) al servidor, puerto 80
Servidor acepta conexin TCP
del cliente
Mensajes HTTP (mensajes del
protocolo de capa aplicacin) son
intercambiados entre browser
(cliente HTTP) y servidor Web
(servidor HTTP)
Se cierra la conexin TCP
Conexiones HTTP
HTTP No-persistente
HTTP Persistente
A lo ms un objeto es enviado
por una conexin TCP.
HTTP no-persistente
Supongamos que el usuario ingresa URL
www.someSchool.edu/someDepartment/home/index
(contiene texto y
referencia a 10
imgenes jpeg )
Iniciar conexin
TCP
RTT
solicitar
archivo
Tiempo
para
transmitir
archivo
RTT
archivo
recibido
tiempo
tiempo
HTTP no persistente
HTTP Persistente
Problemas de HTTP no-persistente:
Requiere 2 RTTs por objeto
El navegador abre conexiones
paralelas generalmente para
traer objetos referenciados. =>
el OS debe trabajar y dedicar
recursos para cada conexin TCP
HTTP Persistente
Servidor deja las conexiones
abiertas despus de enviar la
respuesta
Mensajes HTTP subsecuentes
entre los mismos
cliente/servidor son enviados
por la conexin abierta
HTTP Persistente
Lnea de requerimiento
(request line) (comandos
GET, POST, HEAD)
Lneas de
encabezado
Mtodos URL:
www.somesite.com/animalsearch?monkeys&banana
Tipos de Mtodos
HTTP/1.0
HTTP/1.1
GET
POST
METODO
GET
HEAD
PUT
POST
TRACE
DELETE
CONNECT
OPTIONS
ACCION
Solicitar un documento del servidor
Solicitar informacin sobre un documento pero no el propio documento
Enva un documento del cliente al servidor
Envia alguna informacin del cliente al servidor
Repite y devuelve la solicitud entrante
Elimina un objeto web
Reservado
Consulta sobre opciones disponibles
DESCRIPCION
User-agent
Accept
Accept-charset
Host
Date
Upgrade
Cookie
data, e.g.,
archivo
HTML solicitado
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
DESCRIPCION
Date
Muestra la fecha actual
Upgrade
Especifica el protocolo de comunicacin preferido
Server
Brinda informacin sobre el servidor
Set-Cookie
El servidor solicita al cliente guardar una cookie
Content-Encoding Especifica el esquema de codificacin
Content-Language Especifica el lenguaje
Content-Length
Muestra la longitud del documento
Content-Type
Especifica el tipo de medio
Location
Para pedir al cliente que enve la peticin a otro sitio
Last-Modified
Indica la fecha y hora del ltimo cambio
200 OK
Probando HTTP
la informacin Web.
Cookie es informacin generada por un servidor web y
almacenada en el computador del usuario para acceso
futuro.
Las cookies son trasportadas entre el computador del usuario
y el servidor.
Por ejemplo, cookies son usadas para almacenar tems en un
Ejemplo:
Cookie file
amazon: 1678
ebay: 8734
servidor
Requerimiento http
Respuesta http +
Set-cookie: 1678
requerimiento http
cookie: 1678
respuesta http usual
Servidor crea
ID 1678
para usuario
Accin
especfica
de la cookie
Un semana despus:
Cookie file
amazon: 1678
ebay: 8734
requerimiento http
cookie: 1678
respuesta http usual
Accin
especfica
de la cookie
Cookies (cont.)
Al margen
Qu pueden transportar las
cookies:
Autorizacin
Carrito de compras
Sugerencias
Cookies y privacidad:
Cookies permiten que el sitio
aprenda mucho sobre uno.
Podramos proveer nombre y
correo al sitio.
Motores de bsqueda usan
redirecciones y cookies para
aprender an ms
Compaas de avisos obtienen
informacin de los sitios WEB
Usuario configura el
browser: Acceso Web va
cache
Browser enva todos los
requerimientos HTTP al
cache
Si objeto est en cache:
cache retorna objeto
Si no, cache requiere los
objetos desde el servidor
Web, y retorna el objeto
al cliente
clientes y servidores
Tpicamente el cache
de acceso al ISP.
Internet densa con caches
permite a proveedores de
contenido pobres (no $$)
entregar contenido en forma
efectiva.
Ejemplo de Cache
Suposiciones
Utilizacin de la LAN:
(15 peticiones/s)*(1Mb/peticin)/100Mbps = 0.15 (15%)
= + +
= + + 2
Ejemplo de Cache
Posible solucin
Aumentar ancho de banda del enlace
a, por ejemplo, 100 Mbps
Consecuencias
Utilizacin de la LAN = 15%
Utilizacin del enlace de acceso =
15%
Retardo Total = Retardo Internet +
retardo de acceso + retardo LAN
= 2 sec + msecs + msecs
A menudo un upgrade caro.
Internet
pblica
Servidores
web
100 Mbps
Enlace se acceso
Red
institucional
10 Mbps LAN
Sin cache
institucional
Get Condicional
servidor
cache
HTTP request msg
If-modified-since:
<date>
HTTP response
objeto
no
modificado
HTTP/1.0
304 Not Modified
If-modified-since: <date>
HTTP response
HTTP/1.0 200 OK
<data>
objeto
modificado
FTP
File Transfer Protocol
Cliente
FTP
Servidor
FTP
FTP - Modelo
USER username
PASS password
LIST Retorna la lista de archivos del
directorio actual
RETR archivo baja un archivo
STOR archivo almacena un archivo
en el host remoto
Correo Electrnico:
SMTP, POP3 e IMAP
Correo Electrnico
Tres mayores componentes:
Agente usuario o cliente de correo
Servidor de correo
Simple Mail Transfer Protocol:
SMTP
user
agent
mail
server
Agente Usuario
SMTP
Tambin conocido como lector de
correo
mail
Escritura, edicin, lectura de
server
mensajes de correos
e.g., Eudora, Outlook, elm, Mozilla
Thunderbird
Mensajes de salida y entrada son
user
almacenados en servidor
agent
user
agent
SMTP
mail
server
user
agent
SMTP
user
agent
user
agent
Cola de mensajes
de salida
Casilla usuario
user
agent
mail
server
SMTP
SMTP
SMTP
mail
server
user
agent
user
agent
user
agent
mail
server
user
agent
user
agent
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
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
telnet servername 25
Ingresar los comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT
Lo de arriba nos permite enviar correo sin usar el cliente de
correo.
/* Equivalentemente, si usted sabe cmo escribir una aplicacin
que maneje sockets, usted sabe cmo enviar e-mail desde su
aplicacin.*/
Hoy muchos servidores estn configurados para aceptar slo
conexiones seguras que no permiten el uso de telnet para envo
de correo. La USM usa TLS (Transport Layer Security)
Cuerpo
encabezado
Lnea
en blanco
cuerpo
Versin MIME
Mtodo de
Codificacin usado
Tipo datos multimedia,
subtipo, declaracin
de parmetros
Datos binarios
codificados en base64
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
Servidor mail
de la fuente
SMTP
protocolo
de acceso:
POP3 (110)
IMAP (143)
o HTTP
Servidor mail
del receptor
user
agent
Protocolo POP3
Fase de autorizacin
S:
C:
S:
C:
S:
C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:
on
IMAP
DNS
DNS
Servicios DNS
Son contactados por servidor de nombre local cuando no puede resolver un nombre
Servidor nombre raz:
Contacta servidor de nombre autorizado de la zona superior (por ejemplo COM)
si mapeo del nombre es desconocido para l
Obtiene mapeo (propio o desde otro servidor raz)
Retorna mapeo al servidor de nombre local
Top-level domain (TLD) servers:responsable por com, org, net, edu, etc., y
todos los dominios superiores de cada pas: uk, fr, ca, jp, pe, etc..
Network solutions mantiene servidores para el TLD de com
Educause para el TLD de edu
tiene uno.
Ejemplo 1
Servidor DNS raz
Consulta iterativa:
Host en cis.poly.edu
quiere la direccin IP de
gaia.cs.umass.edu
Servidor contactado
responde con el nombre
del servidor a contactar
2
Servidor DNS TLD
Puerto 53
4
5
Yo no conozco este
nombre, pero pregunta a
este servidor
Consulta iterativa
Servidor DNS autorizado
dns.cs.umass.edu
Ejemplo 2
Servidor local, aquel que hace las
consultas por mi aplicacin
Consulta iterativa
Servidor autorizado, aquel que define el
mapeo nombre <-> IP
Consultas Recursivas
Consulta recursiva :
2
Pone la carga de la
resolucin de nombre
al servidor contactado.
3
7
Servidor DNS
local
dns.poly.edu
Qu pasa en
situaciones de alta
carga?
Consultas Recursivas
4
Servidor DNS
autorizado
dns.cs.umass.edu
Host cliente
cis.poly.edu
gaia.cs.umass.edu
Ejemplo
Hacer algo del tipo:
$ nslookup www.uandina.edu.pe
Ejemplo
Luego:
$ nslookup 200.37.189.196
Finalmente:
$nslookup www.google.com
Y
$ nslookup 74.125.67.104
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
Type=CNAME
Type=NS
www.ibm.com es realmente
servereast.backup2.ibm.com
Type=MX
DHCP
Funcionamiento de DHCP
Consideremos dos escenarios:
red
El cliente y el servidor DHCP estn redes
diferentes
1.
2.
3.
1.
2.
3.
1.
2.
3.
4.
Problema:
1. Si Ha usa un cliente en el puerto efmero 2017
2. Supongamos que Hb, en la misma red utiliza el puerto efmero 2017
para un cliente de DAYTIME.
3. Si el servidor DHCP enva un mensaje broadcast al puerto 2017 con la
direccin IP FFFFFFFF. Ha recibe un mensaje correcto pero no Hb.
4. Si Ha y Hb estn ejecutando clientes DHCP, los mensajes se
diferenciarn por el campo Transaction ID que es nica para cada
conexin DHCP
5.
6.
TFTP
simple.
Se define en el RFC 1350
Se utiliza para transferir archivos de
arranque y configuracin en equipos sin
disco, enrutadores y otros similares.
TFTP se implementa sobre UDP y utiliza el
puerto 69.
archivos
No permite crear ni borrar archivos o
carpetas
Comandos tftp:
get file
get remotefile localfile
put file
put localfile remotefile
TELNET
TELNET
NVT resuelve el problema de heterogeneidad de los host de red
TELNET
NVT usa dos grupos de caracteres, uno para datos y otro para
control.
TELNET
Algunas opciones de TELNET:
SSH - TRANS
Ofrece un canal seguro sobre TCP
Inicialmente se establece una conexin TCP insegura y
SSH - AUTH
Autentica al cliente frente al servidor.
Se utiliza despus de establecer un canal
SSH - CONN
Despus de establecer un canal seguro y
USOS DE SSH
Acceso remoto
Transferencia de archivos
sftp transferencia de archivos segura
scp copia de archivos segura
Reenvo de puerto: permite establecer un canal seguro
paquete
Type: Tipo de paquete enviado
CRC : Se usa para control de errores