03-Capitulo 2

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 72

Captulo 2

Capa de Aplicacin
1

Principios de aplicaciones de red


Ncleo de la aplicacin de red
Programas que corran en diferentes

sistemas y se comuniquen entre s a travs de la red.


Ejemplo:
Aplicacin Web
Programa del buscador computadora

del usuario
Programa del servidor en el servidor

Nueva Aplicacin es necesario

escribir el software que corra en mltiples sistemas.

Cliente Servidor

Arquitectura de aplicaciones de red


Sistema distribuido entre mltiples procesadores donde hay

clientes que solicitan servicios y servidores que los proporcionan.

Peer -- to Peer (P2P)


Redes

descentralizadas pueden

distribuidas entre

en s,

las

cuales

las

aplicaciones

comunicarse

intercambiando

informacin sin la intervencin de un servidor central.

Hbridos de cliente-servidor y P2P

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

entre s (dos clientes puros).

Arquitectura P2P
Descentralizacin
Ausencia de un Servidor Central para el control. Los

participantes

pueden

comunicarse

directamente entre s.
Todos

los nodos actan como clientes y

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,

ancho de banda, etc.

LimeWire
WinMX BitTorrent

Hbridos de Cliente-Servidor y P2P


Napster
Transferencia de archivos P2P.

Bsqueda de archivos centralizada:


Pares registran contenidos en servidor central. Pares consultan algn servidor central para localizar el contenido.

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

Comunicacin entre procesos


Proceso: programa que corre en un sistema final.
Dentro

Proceso Cliente: proceso que


inicia la comunicacin.

del sistema final dos

procesos se comunican usando comunicacin entre proceso

Proceso servidor: proceso


que espera por ser contactado.

(definida
operativo).

por

el

sistema

Procesos en diferentes sistemas

finales

se

comunican

va

intercambio de mensajes.
8

Socket
Procesos

API(Application Programming Interface) debemos elegir el protocolo

que

envan/reciben

de transporte.
podemos

mensajes a/desde la red a travs de una interface.


socket son anlogos a puertas
Proceso transmisor:
saca mensajes por la puerta. confa en la infraestructura de

definir

algunos

parmetros del protocolo.


host o servidor
Controlado por el desarrollador

host o servidor

proceso socket TCP buffers, variables


interface

proceso socket TCP buffers, variables

transporte al otro lado de la

puerta, la cual lleva los mensajes


al socket en el proceso receptor.

Internet

Controlado por el Sistema Operativo

Direccionamiento de procesos
Para que un proceso reciba un

mensaje, ste debe tener un

identificador.
Un host tiene una direccin IP

El

identificador incluye la

direccin IP y un nmero de puerta asociado con el

nica de 32 bits.

proceso en el host.

Es suficiente la direccin IP para identificar un proceso en un host?

Ejemplo

de

nmeros

de

puertas:
Servidor HTTP: 80 Servidor de Mail: 25

10

Servicios de Transporte en la Aplicacin


Transferencia de datos confiable Retardo

Algunas aplicaciones (audio/video) pueden tolerar prdida.


Algunas aplicaciones ( Telefona

Internet,

juegos

interactivos,

Otras (transferencia de archivos, telnet) requieren transferencia 100% confiable.

teleconferencias) requieren bajo retardo para ser efectivas.

Tasa de transferencia

Garantizar una tasa de transferencia.


Aplicaciones

Seguridad
banda

con

ancho

de

Integridad

de

datos,

sensitivo(bandwith-sensitive application)

encriptacin, autenticacin, etc.

aplicaciones multimedia

Aplicaciones elsticas(elastic application)

11

E-mail, FTP

Servicios de protocolos de Transporte en Internet


Servicio UDP

Servicio TCP
Orientado a la conexin: acuerdo

Transferencia

de

datos

no

confiable entre proceso Tx y Rx.


No provee
acuerdo entre los procesos confiabilidad

requerido entre procesos cliente y servidor antes de transferencia.


Transporte

confiable de flujo: Tx

entre no

control de flujo control de congestin garantas de retardo o ancho de

proceso Tx y Rx.
Control

sobrecargar al Rx.
Control de congestin: frena al Tx

banda.

cuando la red est sobrecargada.


No provee garantas de retardo ni
12

ancho de banda mnimos.

Aplicaciones populares en Internet

13

Protocolos de la capa de Aplicacin


Definen como un proceso de la capa de Aplicacin se puede

ejecutar en diferentes sistemas finales.


En general se definen:
Tipo de mensaje de intercambio mensaje de peticin o mensaje de

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

recibe, despliega objetos Web.


servidor:

Servidor Web enva en respuesta a

objetos

requerimientos.
HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068
16

Server running Apache Web server Mac running Navigator

Con TCP
Cliente inicia conexin TCP (crea

HTTP

no

conserva

el

socket) al servidor, puerto 80.


Servidor acepta conexin

estado es sin estado


El servidor no mantiene informacin

TCP

desde el cliente.
Mensajes HTTP (mensajes del

sobre los requerimientos del cliente.

protocolo de capa Aplicacin) son intercambiados entre browser

(cliente HTTP) y servidor Web (servidor HTTP)


Se cierra la conexin TCP.

17

Conexiones HTTP
HTTP No-persistente
A lo ms un objeto es enviado

por una conexin TCP.


HTTP/1.0

usa

HTTP

no-

HTTP Persistente
Mltiples

persistente.

objetos

pueden

ser

enviados por una nica conexin

TCP entre el cliente y servidor.


HTTP/1.1

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

4. 5. Cliente HTTP recibe el mensaje


respuesta que contiene el archivo html y despliega el html. Analizando
tiempo

Servidor
conexin.

HTTP

cierra

la

el

archivo

html,

encuentra

10

referencias

objetos jpeg.

6. Pasos 1-5 son repetidos para


cada uno de los 10 objetos jpeg.

20

Modelo para tiempo de respuesta


Definicin de RTT: tiempo ocupado en
enviar un paquete pequeo desde el

cliente al servidor y su regreso.

Tiempo de respuesta
Un RTT para iniciar la conexin.

initiate TCP connection RTT request file RTT file received time to transmit file

Un

RTT por requerimiento HTTP y

primeros bytes de la respuesta.


Tiempo de transmisin del archivo.

total = 2RTT + tiempo de transmisin


21 time time

Problemas de HTTP nopersistente


Requiere 2 RTTs por objeto. OS debe trabajar y dedicar recursos para cada

conexin TCP.
El

navegador

abre

conexiones

paralelas

generalmente para traer objetos referenciados.

22

HTTP persistente
El

servidor deja las conexiones despus de enviar la

Persistencia sin pipelining


Cliente enva nuevo requerimiento

abiertas

respuesta.
Mensajes HTTP subsecuentes entre

slo cuando el previo ha sido recibido.


Un

los

mismos

cliente/servidor

son

RTT por referenciado.

cada

objeto

enviados por la conexin abierta.

Persistencia con pipelining


determinado en HTTP/1.1 cliente enva requerimientos tan

pronto ste encuentra un objeto referenciado.


Tan pequeo como un RTT por
23

todas las referencias.

Formato del mensaje HTTP


Dos tipos de mensajes HTTP: peticin y respuesta

Mensaje de peticin HTTP


ASCII (formato legible)
Lnea de peticin (GET, POST, HEAD, PUT y DELETE)

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)

Indica fin de mensaje

24

Formato general peticin de HTTP

25

Mtodos de HTTP
HTTP/1.1 HTTP/1.0
GET POST HEAD
GET POST HEAD PUT DELETE

26

Mensaje de respuesta de HTTP


Lnea de estatus (cdigo de estatus del protocolo Frase de estatus)

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 ...

data, e.g., archivo HTML solicitado

27

Cdigos de respuesta de HTTP


200 OK
peticin exitosa.

301 Moved Permanently


Se movi el objeto pedido. La nueva ubicacin es especificada

en el mensaje (Location:).

400 Bad Request


Peticin no entendida por el servidor.

404 Not Found


Documento no encontrado en el servidor.
28

505 HTTP Version Not Supported

Formato general respuesta de HTTP

29

Cmo se ve un mensaje real de respuesta de HTTP?


1. Telnet a un servidor:
telnet cis.poly.edu 80
abre una conexin TCP al puerto 80
(puerto servidor HTTP por omisin) Cualquier cosa ingresada es enviada al puerto 80 de cis.poly.edu

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

3. Observe el mensaje de respuesta enviado por el servidor HTTP!


30

Estado usuario-servidor: cookies


Muchos sitios Web importantes usan cookies Componentes:
1) Lnea encabezado cookie en el mensaje respuesta HTTP. 2) Lnea de encabezado cookie en peticin HTTP. 3) Archivo cookie es almacenado en la mquina del usuario y administrada por su navegador. 4) Base de datos en sitio Web.
31

Ejemplo:
Susana

accede Internet siempre desde el mismo PC. primera vez. En el pasado ella visit el sitio e-Bay.

Ella visita Amazon.com por

Cuando la peticin HTTP

inicial llega al sitio


se crea un ID nico y crea una entrada en la

base de datos para ese ID.

Ejemplo:

32

Qu transportar las cookies?


autorizacin

pueden
[RFC 2965]

Cookies y privacidad:
shopping carts sugerencias Estado de la sesin del
Cookies permiten que el sitio

aprenda mucho sobre uno.


Podramos proveer nombre y

usuario (Web e-mail)

correo al sitio.
Motores de bsqueda usan

redirecciones y cookies para aprender an ms.


Compaas
33

de avisos obtienen informacin de los sitios WEB.

Web cache (servidores proxy)


Objetivo: satisfacer el requerimiento del cliente sin involucrar al servidor

destino.

Usuario configura el browser: Acceso Web va cache.

Browser enva todas las peticiones HTTP al cache.


Si objeto est en cache

cache retorna objeto.


Sino cache pide los

objetos desde el servidor Web, y retorna el objeto al cliente.

34

Utilidades de Web cache

Cache actan como clientes y servidores. Tpicamente el cache est instalado por ISP (universidad, compaa, ISP residencial).

Por qu Web caching?

Reduce tiempo de respuesta de las peticiones del cliente.


Reduce trfico de los enlaces Internet de la institucin. Internet densa con caches y permite a proveedores de contenido pobres (no $$) entregar contenido en forma efectiva.

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

Retardo desde el router institucional a cualquier servidor web y su retorno = 2 sec


Red institucional

1.5 Mbps Enlace se acceso

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

Sin Cache institucional

36

Posible solucin
Aumentar ancho de banda

del enlace a, por ejemplo, 10 Mbps Consecuencias



Internet pblica

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 Enlace se acceso

10 Mbps LAN

37

A menudo un upgrade caro.

Sin cache institucional

Instalar un web Cache

Supongamos tasa de xito1 (acierto) de 0.4

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)

1.5 Mbps Enlace de acceso Red institucional

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

de xito: Fraccin de los requerimientos satisfechos por la cache.

Get Condicional

Objetivo: no enviar objetos si el cache tiene la versin actualizada.

cache HTTP request msg

server

Cache: especifica la fecha de la copia en la peticin HTTP.


If-modified-since: <date>

If-modified-since: <date>

HTTP response
HTTP/1.0 304 Not Modified

object not modified

Servidor: responde sin el objeto si la copia de la cache es la ltima.


HTTP/1.0 304 Not Modified

HTTP request msg


If-modified-since: <date>

object modified

HTTP response
HTTP/1.0 200 OK

<data>
39

FTP File Transfer Protocol

Transferencia de archivos a/desde el host remoto Sigue modelo cliente/servidor

cliente: sitio que inicia la transferencia (ya sea a/desde sitio

remoto)
servidor: host remoto
40

RFC 959
Servidor FTP: puerto 21

Conexiones FTP
Cliente FTP contacta servidor FTP en

puerto 21, especificando TCP como protocolo de transporte.


El cliente obtiene autorizacin sobre el

TCP conexin de control puerto 21

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

TCP conexin de datos puerto 20

Servidor FTP

Cuando el servidor recibe una peticin

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.

Despus de la transferencia un archivo,

el servidor cierra la conexin.


41

Comandos FTP
Algunos comandos:
Son enviados como texto ASCII

Algunos cdigos de respuesta


Cdigo estatus y frases (como en

va el canal de control
USER username PASS password

HTTP)
331

Username password required

OK,

LIST retorna la lista de archivos


del directorio actual.

125

RETR

filename filename

baja

un

data connection already open; transfer starting Cant connection open data

archivo (get).

425

STOR

almacena (put) archivo en host remoto.

452 Error writing file

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,

edicin, mensajes de correos. Outlook, Messenger

lectura

de

Eudora,

Netscape

Mensajes de salida y entrada son


43

almacenados en servidor.

Servidor de Correo
Casilla contiene mensajes de

SMTP [RFC 2821]

entrada para el usuario.


Cola de mensajes de los correos 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

de correo para enviar mensajes email


cliente: servidor que enva el

correo.
servidor: servidor que recibe el

correo.

Interaccin comandos/respuestas
comandos: Texto ASCII respuesta: cdigo de estatus y frase.

Mensajes deben ser enviados en ASCII de 7-bits

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

de Alicia por la conexin TCP.


5) EL servidor de correo de Bob pone

a su servidor de correo; el mensaje se pone en cola de salida.


3) Lado cliente de SMTP abre una

el mensaje en su casilla.
6) Bob invoca su agente usuario para

conexin TCP con el servidor de correo de Bob.

leer el mensaje.

1 user agent 2 mail server 3 mail server 4 6 5 user agent

45

Interaccin con SMTP


telnet servername 25 Ver respuesta 220 desde el

servidor
Ingresar los comandos HELO,

En resumen:
SMTP

MAIL FROM, RCPT TO, DATA, QUIT.


El detalle de cada uno de los

usa
requiere

conexiones
que el y

persistentes.
SMTP

encabezados

se

encuentran

mensaje bits.
Servidor

(encabezado

especificados en el RFC 822.

cuerpo) sean en ASCII de 7SMTP usa

Estos comandos nos permite enviar correo sin usar el cliente de correo.
46

CRLF.CRLF para terminar el


mensaje.

Comparacin con HTTP


HTTP: pull (saca contenido desde servidor).

SMTP: push (pone contenido en servidor).


Ambos

tienen interaccin comando/respuesta en

ASCII, y tienen cdigos de estatus.


HTTP: cada objeto es encapsulado en su propio

mensaje.
SMTP: mltiples objetos son enviados en un mensaje

multiparte.
47

Protocolos del correo electrnico


SMTP: permite envi y almacenamiento de correo en servidor del

destinatario.
Protocolo de acceso a correo: permite extraer correo desde el servidor

POP: Post Office Protocol [RFC 1939]


Autorizacin, Transaccin y Actualizacin. <110>

IMAP: Internet Mail Access Protocol [RFC 3501]


Permite manipulacin de los mensajes almacenados en el servidor

<143>
48

HTTP: Hotmail , Yahoo! Mail, etc. <80>

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:

user bob +OK pass hungry +OK user successfully

logged on

Fase transaccin, cliente:


list: lista nmeros de

mensajes retr: extrae mensajes por su nmero dele: borra quit:


49

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.

bajada y conserva: obtiene copia de los mensajes en


diferentes clientes.

POP3 no mantiene el estado de una sesin a otra


(stateless).
50

Protocolo IMAP (Internet Message Access Protocol)


Mantiene todos los mensajes en el servidor. Permite que el usuario organice sus correos en carpetas. Permite tener acceso al correo electrnico desde cualquier equipo

que tenga una conexin a Internet.


Permite visualizar los mensajes de manera remota sin la necesidad

de descargar los mensajes.


IMAP mantiene el estado del usuario de una sesin a otra:
Nombre de carpetas mapeo entre Ids (identificadores) de mensajes y

nombres de carpetas.
51

DNS(Domain Name System)


Cmo se identifica un sistema final (host) y un enrutador en Internet?

Nombre (hostname)

Direccin

IP

(IP

addresses)

52

Quin mapea entre direcciones IP y nombres?

DNS es una base de datos distribuida y jerrquica que almacena

informacin asociada a nombres de dominio en redes como Internet.


Uso comn, asignacin de nombres de dominio a direcciones IP. RFC 1034 y RFC 1035.

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

tanto se asigna al host uno o ms alias.

Alias para servidor de correo Distribucin de carga


Servidores Web replicados: conjunto de direcciones IP para un

nombre cannico.

54

Cmo trabaja DNS?


El cliente enva un mensaje de pregunta(query message). Todos los mensajes de pregunta y respuesta se envan a travs de un

datagrama UDP por el puerto 53.


El servidor enva el mensaje de respuesta. Comando

nslookup.

55

Base de datos jerrquica y distribuida

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

Clasificacin de servidores DNS


Root DNS servers: existen 13 servidores en Norte Amrica. Top-level domain (TLD) servers: responsable por com, org, net,

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

Servidores races DNS


Son contactados por el servidor Local cuando no puede resolver un nombre. Servidor Raz: Contacta al servidor Autoritario de la zona superior (.com) si la bsqueda

del nombre es desconocido para l.


Obtiene la bsqueda (propio o desde otro servidor Raz).
Retorna la bsqueda al servidor Local.
a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD
j Verisign, ( 11 locations)

k RIPE London (also Amsterdam, Frankfurt) i Autonomica, Stockholm (plus 3 other locations) m WIDE Tokyo

e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17


other locations)

b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA

58

Servidor DNS Local


No pertenece estrictamente a la jerarqua. Cada ISP (ISP residencial, compaa, universidad)

tiene uno.
Tambin son llamados servidor de nombre por omisin

(default name server).

Cuando un host hace una consulta DNS, sta es

enviada al servidor DNS local.


Acta como proxy, re-enva consulta dentro de la jerarqua.
59

Ejemplo 1
Host en cis.poly.edu
quiere la direccin IP de

Servidor DNS raz


2 3 4 Puerto 53 5 Servidor DNS TLD

gaia.cs.umass.edu

Servidor DNS local


dns.poly.edu

Host que colsulta

Servidor DNS autoritario dns.cs.umass.edu

Consulta interactiva
60

cis.poly.edu

gaia.cs.umass.edu

Ejemplo 2
2

root DNS server

Consulta recursiva
local DNS server
dns.poly.edu

TLD DNS server

8
authoritative DNS server dns.cs.umass.edu

requesting host
cis.poly.edu gaia.cs.umass.edu
61

DNS: Cache y actualizacin de registros


Una vez que un servidor conoce un mapeo, ste guarda el mapeo. Las entradas del cache expiran (desaparecen) despus de

algn tiempo (www.dnsreport.com).


Servidores TLD tpicamente estn en cache de los servidores

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.

API para sockets


Fue introducida en BSD4.1 UNIX,

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

Programacin de Socket usando TCP


Socket: una puerta entre el proceso aplicacin y el protocolo de transporte de extremo a extremo (UCP o TCP). Servicio TCP: transferencia confiable de bytes desde un proceso a otro.

Controlado por el desarrollador de la aplicacin

proceso socket TCP con buffers, variables

proceso socket TCP con buffers, variables

Controlado por el desarrollador de la aplicacin

Controlado por el sistema operativo

Internet

Controlado por el sistema operativo

cliente o servidor
64

servidor o cliente

Programacin de Socket con TCP


El cliente debe contactar al servidor
Proceso

Cuando

servidor debe estar corriendo primero.


socket (puerta) que recibe al cliente.

Servidor debe tener creado el

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

El cliente contacta al servidor por:


La creacin de un socket TCP

con mltiples clientes.


IP y Nmero de puerto fuente

distingue a los clientes.

local para el cliente.


Especifica la direccin IP y el

nmero de puerto del proceso Punto de vista de la aplicacin servidor. socket: ste establece conexin TCP al servidor. una

Una vez que el cliente crea el

65

TCP provee transferencias de bytes confiables y en orden tubera(pipe) entre el cliente y servidor

Trminos utilizados en los procesos


Un stream (flujo) es una secuencia

de caracteres que fluyen hacia o

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.

Ejemplo de aplicacin clienteservidor

Proceso cliente

4) Cliente lee y muestra la lnea modificada desde el socket (flujo inFromServer).


67

Cdigo Cliente Java (TCP)


import java.io.*;

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

Cdigo Servidor Java (TCP)


import java.io.*;

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

Network Fundamentals, CCNA Exploration Companion Guide

Mark A.Dye, Rick McDonald, Antoon W. Rufi Cisco Press, Noviembre 2007, ISBN: 9781587132087

72

También podría gustarte