Sie sind auf Seite 1von 5

Prctica 1

1.1

Servicios y Protocolos

Comprobacin del funcionamiento de un protocolo real

En este apartado vamos a hacer uso del servicio de Transferencia de Hipertexto. Este servicio tpico de Internet utiliza el protocolo HTTP, que viene del ingls HyperText Transfer Protocol o protocolo de transferencia de hipertexto. Es el protocolo usado cuando navegamos por Internet. Consiste en un protocolo orientado a transacciones y sigue el esquema peticin-respuesta entre un cliente y un servidor. Al cliente que efecta la peticin (un navegador o un spider) se le conoce como user agent (agente del usuario). A la informacin transmitida se la llama recurso y se identica mediante un URL. Los recursos pueden ser archivos, el resultado de la ejecucin de un programa, una consulta a una base de datos, la traduccin automtica de un documento, etc. Transacciones HTTP El protocolo HTTP est basado en el modelo cliente-servidor. Un cliente HTTP (normalmente el navegador) abre una conexin y enva su solicitud al servidor, el cual responder con el recurso solicitado si est disponible y se tiene permiso para acceder a l. El formato tanto del mensaje como de la respuesta es el siguiente (se deben respetar los retornos de carro y la lneas en blanco): Formato de mensaje HTTP
1 2 3 4 5 6

<Linea inicial> <Cabecera-1>: <valor-1> ... <Cabecera-n>: <valor-n> <Cuerpo del mensaje (Opcional)>

La lnea inicial es diferente en las solicitudes y en las respuestas. En las solicitudes est formada por tres campos que se separan con un espacio en blanco: <mtodo> <recurso> <versin-del-protocolo> Por ejemplo: GET /directorio/archivo.html HTTP/1.1 La lnea inicial de una respuesta tiene tres campos separados por un espacio: <versin-del-protocolo> <cdigo-respuesta> <mensaje> Por ejemplo: HTTP/1.1 200 OK 1

El formato de los encabezados est regulado por el protocolo, e incluyen, en el caso de una solicitud, informacin del navegador y eventualmente del usuario cliente. En el caso de una respuesta, informacin sobre el servidor y sobre el recurso. El cuerpo del mensaje contiene el recurso a transferir o el texto de un error en el caso de una respuesta. Ejemplo de un dilogo HTTP Para obtener un recurso con el URL http://www.google.es/index.html El cliente debe enviar un mensaje como el siguiente (incluyendo la lnea en blanco del nal):
1 2 3 4 5

Mensaje de peticin que enviara el navegador GET /index.html HTTP/1.1 Host: www.google.es User-Agent: Nombre del navegador Connection: close

La cabecera User-Agent es opcional. La respuesta del servidor estar formada por encabezados seguidos del recurso solicitado, en el caso de una pgina web:
1 2 3 4 5 6 7 8 9 10

Mensaje de respuesta que enviara el servidor HTTP/1.1 200 OK Date: Fri, 05 Oct 2007 12:30:05 GMT Content-Type: text/html Content-Length: 1221 <html> <body> (texto de la pgina) </body> </html> Cdigos de respuesta Son cdigos de tres dgitos que devuelve el servidor indicando el estado de la transaccin. Algunos ejemplos son los siguientes: Cdigo 100 200 400 401 402 403 404 505 Signicado Conexin rechazada OK Solicitud incorrecta No autorizado Pago requerido Prohibido No encontrado Versin de HTTP no soportada 2

Prueba del Servicio A continuacin veremos una forma de mantener una conversacin HTTP con un servidor de pginas WEB sin utilizar el navegador. Para ello vamos a necesitar la herramienta netcat de Linux. Para utilizar dicha herramienta debemos teclear lo siguiente: nc <direccin ip> <puerto> o bien nc <nombre de host> <puerto> El puerto para el servicio HTTP es el 80. En el caso de que queramos mantener una conversacin con el servidor de www.google.es, teclearemos: nc www.google.es 80 Una vez hecho esto, debemos teclear un mensaje de peticin de navegador y esperar la respuesta del servidor. Ejercicios Realiza con netcat una peticin para cada una de las URL que aparecen a continuacin: 1. www.google.es/index.html 2. www.google.es/intl/en_com/images/logo_plain.png 3. www.google.es/ficticio.html 4. mail.google.com/index.html En un documento de texto anota, para cada URL, el mensaje de peticin y su mensaje de respuesta correspondiente. Fjate en las cabeceras e intenta interpretar la informacin que aparece en ellas. Haz un comentario explicativo del contenido de dichas cabeceras.

1.2

Protocolo para un servicio cticio de informacin de tiempo

En este apartado vamos a simular el funcionamiento de un servicio cticio de informacin de tiempo. El propsito de este servicio es que un terminal de la red pueda averiguar cul es la fecha y la hora actuales. Forma de Trabajo Utilizaremos un esquema cliente-servidor como en el caso del protocolo HTTP. Es necesaria la participacin de los alumnos por parejas: el ordenador de un alumno llevar a cabo el papel del servidor y el ordenador de otro jugar el papel del cliente.

Protocolo El servidor actuar de la siguiente forma: Si le llega el mensaje HOLA, responder HOLA. Si le llega el mensaje HORA, responder La hora actual es HH:MM:SS (indicando la hora actual). Si le llega el mensaje FECHA, (indicando la fecha actual). responder La fecha actual es DD-MM-AA

Si le llega el mensaje ADIS, responder ADIS y terminar la comunicacin (presionando CTRL-C). Si le llega cualquier otro mensaje, responder ERROR. El cliente actuar de la siguiente forma: El primer mensaje que enviar ser el mensaje HOLA. Si el cliente desea averiguar la hora, deber enviar el mensaje HORA. Si el cliente desea averiguar la fecha, deber enviar el mensaje FECHA. Cuando no se quiera consultar nada ms, el mensaje a enviar ser ADIS y la comunicacin se dar por nalizada. Prueba del Servicio Para probar el servicio necesitaremos la herramienta netcat de Linux. Para utilizar dicha herramienta debemos teclear lo siguiente: En el caso del servidor: nc -l <puerto> Con ello conseguiremos que ese ordenador quede a la espera de que se produzca una comunicacin. En el caso del cliente: nc <direccin ip> <puerto> o bien nc <nombre de host> <puerto> Con ello el cliente empezar a comunicarse con el servidor. El puerto que vamos a utilizar para este servicio es el 6000.

Ejercicio Forma una pareja con algn compaero y prueba el servicio. En un documento de texto anota una descripcin general de la conversacin llevada a cabo y escribe los detalles de la comunicacin en forma de tabla: Mensaje del Cliente Respuesta del Servidor

1.3

Diseo de un protocolo para un servicio cticio de listn telefnico

En esta ocasin debes ser t mismo el que invente y pruebe un protocolo para un servicio cticio. Ejercicio Inventa un protocolo para un servicio de listn telefnico. El servicio ha de suministrar la funcionalidad de poder consultar el telfono de una persona o varias personas. Forma una pareja con algn compaero y prueba el servicio. En un documento de texto anota las reglas del protocolo, una descripcin general de la conversacin mantenida y escribe adems los detalles de dicha comunicacin en forma de tabla.

Das könnte Ihnen auch gefallen