03-Capitulo 2
03-Capitulo 2
03-Capitulo 2
Capa de Aplicacin
1
del usuario
Programa del servidor en el servidor
Cliente Servidor
descentralizadas pueden
distribuidas entre
en s,
las
cuales
las
aplicaciones
comunicarse
intercambiando
Arquitectura Cliente-Servidor
servidor:
Computadora siempre encendida.
Direccin IP permanente.
Torre de servidores(server farm) por
escalamiento.
cliente:
Se comunica con el servidor. Puede
tener
direcciones
IP
dinmicas.
No
se
comunican
directamente
Arquitectura P2P
Descentralizacin
Ausencia de un Servidor Central para el control. Los
participantes
pueden
comunicarse
directamente entre s.
Todos
servidores.
Distribucin
La informacin no est alojada en un solo sitio.
Balance de Carga
Se intenta equilibrar la carga entre todos los
participantes.
5
Arquitectura P2P
Redundancia de Informacin Se duplica informacin para hacerla
ms accesible.
Alta disponibilidad La cada de un host no bloquea el
Ejemplos:
Napster Kazaa eMule Gnutella
servicio.
Optimizacin de uso de recursos Procesamiento, almacenamiento,
LimeWire
WinMX BitTorrent
Mensajera Instantnea
Dilogo entre los usuarios es P2P. Deteccin/localizacin de presencia es centralizada:
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.
7
(definida
operativo).
por
el
sistema
finales
se
comunican
va
intercambio de mensajes.
8
Socket
Procesos
que
envan/reciben
de transporte.
podemos
definir
algunos
host o servidor
Internet
Direccionamiento de procesos
Para que un proceso reciba un
identificador.
Un host tiene una direccin IP
El
identificador incluye la
nica de 32 bits.
proceso en el host.
Ejemplo
de
nmeros
de
puertas:
Servidor HTTP: 80 Servidor de Mail: 25
10
Internet,
juegos
interactivos,
Tasa de transferencia
Seguridad
banda
con
ancho
de
Integridad
de
datos,
sensitivo(bandwith-sensitive application)
aplicaciones multimedia
11
E-mail, FTP
Servicio TCP
Orientado a la conexin: acuerdo
Transferencia
de
datos
no
confiable de flujo: Tx
entre no
proceso Tx y Rx.
Control
sobrecargar al Rx.
Control de congestin: frena al Tx
banda.
13
respuesta.
La sintaxis de los varios tipos de mensajes cmo los campos estn
delimitados.
El significado de cada campo.
Las reglas que determinan cmo y cundo un proceso enva y responde
los mensajes.
Algunos de los protocolos estn especificados en RFC.
14
Web y HTTP
Una pgina Web consiste de objetos.
Objetos archivos HTML, imgenes JPEG, Java applet, archivos de
audio.
Pginas Web consisten de un archivo HTML base el cual incluye varias
referencias a objetos.
Cada objeto es direccionable por un URL(Uniform Resource Locator).
Ejemplo URL:
www.elo.utfsm.cl/images/logoelo.png
Nombre de la mquina
Nombre de ruta
15
HTTP generalidades
HTTP (HyperText Transfer Protocol)
Protocolo de la capa Aplicacin de
la Web.
Modelo cliente/servidor cliente: browser que requiere,
PC running Explorer
objetos
requerimientos.
HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068
16
Con TCP
Cliente inicia conexin TCP (crea
HTTP
no
conserva
el
TCP
desde el cliente.
Mensajes HTTP (mensajes del
17
Conexiones HTTP
HTTP No-persistente
A lo ms un objeto es enviado
usa
HTTP
no-
HTTP Persistente
Mltiples
persistente.
objetos
pueden
ser
usa de
conexiones forma
persistentes predeterminada.
18
HTTP no-persistente
Supongamos que el usuario ingresa al siguiente URL www.someSchool.edu/someDepartment/home.index
1a. Cliente HTTP inicia una conexin TCP al servidor HTTP (proceso) en www.someSchool.edu en el puerto 1b. Servidor HTTP en host
(contiene texto, referencias a 10 imgenes jpeg )
www.someSchool.edu esperando por conexiones TCP en puerto 80 acepta conexin, notifica al cliente.
80.
2. Cliente HTTP enva mensaje de requerimiento (conteniendo el URL) por el socket de la conexin TCP. El mensaje indica que el cliente quiere el objeto
tiempo 19
3. El servidor HTTP recibe el mensaje de requerimiento, forma el mensaje de respuesta que contiene el objeto requerido y enva el mensaje por su socket.
someDepartment/home.index
Servidor
conexin.
HTTP
cierra
la
el
archivo
html,
encuentra
10
referencias
objetos jpeg.
20
Tiempo de respuesta
Un RTT para iniciar la conexin.
initiate TCP connection RTT request file RTT file received time to transmit file
Un
conexin TCP.
El
navegador
abre
conexiones
paralelas
22
HTTP persistente
El
abiertas
respuesta.
Mensajes HTTP subsecuentes entre
los
mismos
cliente/servidor
son
cada
objeto
Lneas de encabezado
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (carriage return, line feed extra)
24
25
Mtodos de HTTP
HTTP/1.1 HTTP/1.0
GET POST HEAD
GET POST HEAD PUT DELETE
26
Lneas de encabezado
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 ...
27
en el mensaje (Location:).
29
2. Escribir una peticin GET HTTP: GET /~ross/ HTTP/1.1 Host: cis.poly.edu
Hasta el ltimo dar doble returno de carro, enviamos un GET request mnimo (pero completo) al servido HTTP
Ejemplo:
Susana
accede Internet siempre desde el mismo PC. primera vez. En el pasado ella visit el sitio e-Bay.
Ejemplo:
32
pueden
[RFC 2965]
Cookies y privacidad:
shopping carts sugerencias Estado de la sesin del
Cookies permiten que el sitio
correo al sitio.
Motores de bsqueda usan
destino.
34
Cache actan como clientes y servidores. Tpicamente el cache est instalado por ISP (universidad, compaa, ISP residencial).
35
Ejemplo de Cache
Suposiciones
Tamao promedio de objetos = 100,000 bits Tasa de requerimientos promedio desde browsers de la institucin al servidor WEB = 15/sec
Servidores web
Internet pblica
Consecuencias
10 Mbps LAN
utilizacin de la LAN = 15% utilizacin del enlace de acceso = 100% Retardo total = retardo Internet + retardo de acceso + retardo LAN = 2 sec + minutos + millisegundos
36
Posible solucin
Aumentar ancho de banda
Servidores web
Utilizacin de la LAN = 15% Utilizacin del enlace de acceso = 15% Retardo Total = Retardo Internet + retardo de acceso + retardo LAN = 2 sec + msecs + msecs
Red institucional
10 Mbps LAN
37
Consecuencias
Servidores Web
Internet pblica
40% de los requerimientos sern satisfechos en forma casi inmediata (~10 msec) 60% de los requerimientos satisfechos por el servidor WEB Utilizacin del enlace de acceso es reducido al 60%, resultando en retardo despreciable (digamos 10 msec)
10 Mbps LAN
Retardo total = Retardo Internet + retardo acceso + retardo LAN = 0.6*(2.01) sec + 0.4*0.01 < 1.3 sec
1Tasa
Cache institucional
38
Get Condicional
server
If-modified-since: <date>
HTTP response
HTTP/1.0 304 Not Modified
object modified
HTTP response
HTTP/1.0 200 OK
<data>
39
remoto)
servidor: host remoto
40
RFC 959
Servidor FTP: puerto 21
Conexiones FTP
Cliente FTP contacta servidor FTP en
control de la conexin.
El
cliente navega en el directorio remoto enviando comandos sobre la conexin de control. de transferencia de archivo(get), el servidor abre una conexin de datos hacia el cliente.
Cliente FTP
Servidor FTP
El servidor abre una segunda conexin TCP de datos para transferir otro archivo. Conexin de control: out of band (fuera de banda). Servidor FTP mantiene estado; directorio actual, cuenta de usuario conectado.
Comandos FTP
Algunos comandos:
Son enviados como texto ASCII
va el canal de control
USER username PASS password
HTTP)
331
OK,
125
RETR
filename filename
baja
un
data connection already open; transfer starting Cant connection open data
archivo (get).
425
STOR
42
Correo Electrnico
Tres mayores componentes:
Agente usuario Servidor de correo Protocolo SMTP(Simple Mail Transfer Protocol)
Agente Usuario
Tambin conocido como lector de
correo.
Escritura,
lectura
de
Eudora,
Netscape
almacenados en servidor.
Servidor de Correo
Casilla contiene mensajes de
Usa TCP para transferir confiablemente mensajes e-mail desde el cliente al servidor, puerto 25. Transferencia directa: servidor enva correos al servidor receptor. Tres fases en la transferencia
Handshaking Transferencia de mensajes Cierre
salida.
SMTP: Protocolo entre servidores
correo.
servidor: servidor que recibe el
correo.
Interaccin comandos/respuestas
comandos: Texto ASCII respuesta: cdigo de estatus y frase.
44
Escenario: Alicia enva mensaje a Bob 1) Alicia utiliza un agente usuario para
crear el mensaje [email protected]. para
4) El cliente SMTP enva el mensaje 2) El agente de Alicia enva el mensaje
el mensaje en su casilla.
6) Bob invoca su agente usuario para
leer el mensaje.
45
servidor
Ingresar los comandos HELO,
En resumen:
SMTP
usa
requiere
conexiones
que el y
persistentes.
SMTP
encabezados
se
encuentran
mensaje bits.
Servidor
(encabezado
Estos comandos nos permite enviar correo sin usar el cliente de correo.
46
mensaje.
SMTP: mltiples objetos son enviados en un mensaje
multiparte.
47
destinatario.
Protocolo de acceso a correo: permite extraer correo desde el servidor
<143>
48
Protocolo POP3(Post Office Protocol) S: +OK POP3 server ready Fase de autorizacin
Comandos del cliente: user: declara username pass: password Respuestas del servidor: +OK -ERR
C: S: C: S:
logged on
C: list Tamao del mensaje 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
Observaciones
En el ejemplo previo usa modo bajar y borrar.
Bob no puede releer el correo si cambia el cliente.
nombres de carpetas.
51
Nombre (hostname)
Direccin
IP
(IP
addresses)
52
Componentes DNS
Clientes DNS genera peticiones DNS de resolucin de
nombres.
Servidores DNS contesta las peticiones.
53
Servicios DNS
Traduccin de nombre de host a direccin IP.
Alias para host (Host aliasing)
Nombre complicado del host (canonical hostname), por lo
nombre cannico.
54
nslookup.
55
Consulta IP de www.amazon.com
Cliente consulta al servidor raz para encontrar servidor
DNS de com
Cliente consulta servidor DNS com para obtener servidor
DNS de amazon.com
Cliente consulta servidor DNS amazon.com para obtener
direccin IP de www.amazon.com
56
edu, etc., y todos los dominios superiores de cada pas: uk, fr, ca, jp, cl, etc..
Network solutions mantiene servidores para el TLD de com.
Educause para el TLD de edu. Nic para el TLD de cl.
Servidores
DNS autoritarios: son servidores DNS de las organizaciones y proveen mapeos autoritarios entre host e IP (Web y mail).
stos pueden ser mantenidos por la organizacin o el proveedor de
servicio.
57
k RIPE London (also Amsterdam, Frankfurt) i Autonomica, Stockholm (plus 3 other locations) m WIDE Tokyo
58
tiene uno.
Tambin son llamados servidor de nombre por omisin
Ejemplo 1
Host en cis.poly.edu
quiere la direccin IP de
gaia.cs.umass.edu
Consulta interactiva
60
cis.poly.edu
gaia.cs.umass.edu
Ejemplo 2
2
Consulta recursiva
local DNS server
dns.poly.edu
8
authoritative DNS server dns.cs.umass.edu
requesting host
cis.poly.edu gaia.cs.umass.edu
61
Locales.
As los servidores Raz no son visitados con frecuencia. Mecanismos de Actualizacin/notificacin estn bajo diseo por el
IETF.
RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html
62
Programacin de Socket
Objetivo: aprender cmo construir aplicaciones cliente-servidor que se comunican usando sockets.
socket Son locales al host, creados por la aplicacin. Es una interfaz controlada por el OS (una puerta) a travs de la cual el proceso aplicacin puede tanto enviar como recibir mensajes a/desde el otro proceso aplicacin.
1981. El socket es explcitamente creado, usado, y liberado por las aplicaciones. Sigue el modelo cliente-servidor. Hay dos tipos de servicios de transporte va el API de socket: Datagramas no confiables. Orientado a un flujo de bytes y confiable.
63
Internet
cliente o servidor
64
servidor o cliente
Cuando
el servidor es contactado por el cliente, el servidor TCP crea un nuevo socket para el proceso servidor y se comunique con el cliente.
Permite que un servidor hable
nmero de puerto del proceso Punto de vista de la aplicacin servidor. socket: ste establece conexin TCP al servidor. una
65
TCP provee transferencias de bytes confiables y en orden tubera(pipe) entre el cliente y servidor
desde un proceso.
Un input stream (flujo de entrada)
esta ligado a alguna fuente de entrada para el proceso, por ejemplo: teclado o socket.
Un output stream (flujo de salida)
est ligado a una salida del proceso, por ejemplo: monitor o socket.
66
1) Cliente lee lneas desde la entrada estndar (flujo inFromUser), las enva al servidor va un socket (flujo outToServer). 2) El servidor lee lneas desde el socket. 3) El servidor las convierte a maysculas, y las enva de vuelta al cliente.
Proceso cliente
import java.net.*;
class TCPClient { public static void main(String argv[]) throws Exception {
String sentence;
String modifiedSentence; BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); Socket clientSocket = new Socket("hostname", 6789); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
68
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); sentence = inFromUser.readLine(); outToServer.writeBytes(sentence + '\n'); modifiedSentence = inFromServer.readLine(); System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); }
69
import java.net.*;
class TCPServer { public static void main(String argv[]) throws Exception {
String clientSentence;
String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new
70
InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); capitalizedSentence = clientSentence.toUpperCase() + '\n'; outToClient.writeBytes(capitalizedSentence); } } }
71
Bibliografa
Computer Networking: A Top Down Approach
4th edition Jim Kurose, Keith Ross Addison-Wesley, July 2007, ISBN: 9780321497703
Mark A.Dye, Rick McDonald, Antoon W. Rufi Cisco Press, Noviembre 2007, ISBN: 9781587132087
72