diseño de protocolos prof. wilmer pereira 1. protocolo protocolo: –es un conjunto de normas y...

74
Diseño de Protocolos Prof. Wilmer Pereira 1

Upload: ysabel-ortiz

Post on 02-Apr-2015

112 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Diseño de Protocolos

Prof. Wilmer Pereira

1

Page 2: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Protocolo

Protocolo: – Es un conjunto de normas y reglas, convenidas de

mutuo acuerdo entre todos los participantes en una comunicación, estas reglas deben estar organizadas y no tener ambigüedad.

Su misión es: – Hacer que la comunicación entre computadoras

de una red sea posible.

2

Page 3: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Elementos Claves de un Protocolo

Para que dos entidades se comuniquen con éxito, se requiere que hablen el mismo idioma.

Las entidades deben seguir una serie de convenciones mutuamente aceptadas a fin de saber:– Qué se comunican– Cómo se comunican – Cuándo se comunican

3

Page 4: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Elementos Claves de un Protocolo

Los puntos claves que definen o caracterizan a un protocolo son:

Conjunto de mensajes válidos

Características de cada tipo mensaje: – Aspectos Sintácticos (campos que contiene + formato) y – Aspectos Semánticos (significado de los

campos + acciones asociadas)4

Page 5: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Elementos Claves al Diseñar un Protocolo de Comunicación

1) Identificar los actores y los roles que juegan.2) Identificar los servicios que cada actor va a

ofrecer.3) ¿cómo “direccionar” cada actor?4) Definir los mensajes que usará el protocolo5) Definir el formato de las tramas de los

mensajes6) Definir el significado o la interpretación de

los campos de los mensajes7) Definir el intercambio de mensajes8) Definir como manejar los casos de error

5

Page 6: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

¿Qué aspectos se deben considerar al diseñar un Protocolo de comunicación a nivel de Aplicación? ¿Cuales son las necesidades de información de la aplicación?.

¿Cómo es el esquema de comunicación que debe ocurrir entre los actores?:– ¿Quien habla primero, quien escucha, quien habla luego?– ¿Hay sólo una pregunta y una respuesta?, ¿la interacción incluye

una secuencia de requerimientos y respuestas encadenados?, ¿se pide una confirmación de cada mensaje? o ¿se pide solamente una confirmación global?.

– ¿Cuál o cuáles son las secuencias correctas de comunicación? – ¿Qué hacer cuando se rompe una secuencia correcta de

comunicación?– ¿Qué debe ocurrir en el caso de que se interrumpa una

comunicación?– ¿Qué debe ocurrir en el caso que una comunicación no pueda

establecerse?6

Page 7: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Principios de diseño para protocolos

Los principios pueden resumirse en:1) Asegurarse que la comunicación funciona

Hacer prototipos para probar conceptos, no publicar el estándar y luego probarlo

2.) Mantener el protocolo simpleSi hay duda, usar la solución mas simple. Evitar funcionalidades innecesarias.

3) Tomar decisiones clarasEvitar múltiples formas de hacer una misma cosa. (En especial cuando los resultados pueden no ser los mismos)

4) Usar modularidadEsto lleva al diseño de protocolos en pilas

5) Esperar heterogeneidadEn una red grande habrán diferentes tipos de hardware, medios, etc. Por esto el diseño debe ser simple, general y flexible.

7

Page 8: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Principios de diseño para protocolos de Red6) Evitar opciones y parámetros estáticos

Si hay parámetros inevitables (e.g., tamaño de paquete), no dejarlos fijos, que los extremos negocien para llegar a un acuerdo.

7) Tener un buen diseño, sin necesariamente buscar que sea perfectoA veces es mejor no contemplar ciertas condiciones para mantener un diseño limpio y simple; las excepciones que se manejen aparte

8) Ser estrictos al enviar y tolerantes al recibirEnviar paquetes que se apeguen completamente a los estándares, pero ser capaces de recibir y manejar los que no lo hagan

9) Pensar en la escalabilidad del sistemaSi se van a tener millones de nodos, no se puede pensar en bases de datos centralizadas y la carga deber distribuirse lo más posible

10) Considerar desempeño y costoSi una red o un aplicación tiene pobre desempeño o resulta muy cara, nadie la usará

8

Page 9: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Comportamiento de las entidades en el protocoloCada una de las entidades que emplean el protocolo debe:

Aceptar todas las secuencias correctas de mensajes Detectar cualquier secuencia incorrecta de mensajes Recuperarse a partir de algún error que el protocolo detecte

La automatización se puede describir mediante una máquinas o autómata de estados finitos.

Definir el conjunto de las sentencias de entrada y salida Definir el conjunto de estados y las transiciones entre ellos

9

Page 10: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Bases del Modelo de capas

Cada capa del modelo tiene sus funciones

Se definen protocolos para cada capa de manera que la capa C de una máquina pueda comunicarse con la capa C de otra máquina

10

Page 11: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

CapasAplicación HTTP, FTP, DNS

Transporte TCP, UDP, RTP, SCTP

Internet Para redes TCP/IP es el IP

Enlace Ethernet, Token Ring, PPP, HDLC, Frame Relay, RDSI, ATM, IEEE 802.11, FDDI

Físico medio físico, y técnicas de codificación

11

Page 12: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Características

Ejemplo de un protocolo Orientado a bit y con tamaño fijo

12

Page 13: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Capa de red: Datagrama IP

13

Page 14: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Protocolos de aplicación

Ejemplo de un protocolo Orientado a byte con tamaños de trama variables

14

Page 15: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Protocolo de aplicación

Protocolos de Aplicación comunes son:

– HTTP: es el Protocolo de Transferencia de Hipertexto (en inglés HyperText Transfer Protocol).

– FTP: es el Protocolo de Transferencia de Archivos(en inglés File Transfer Protocol).

– SMTP: es el Protocolo de Transferencia de Correo (en inglés Simple Mail Transfer Protocol).

– IRC: es el Chat Basado en Internet (en inglés Internet Relay Chat).

15

Page 16: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Protocolos de Aplicación

Facilitan la comunicación entre una aplicación y un servidor.

Tienden a consistir en estos tres puntos:– Abrir la conexión. – Hacer y satisfacer peticiones de servicio. – Manejar e informar de errores.– Cerrar la conexión

16

Page 17: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Protocolo de aplicación (HTTP)

Cliente Servidor

GET http:// www.ldc.usb.ve/redes1/material.html HTTP/1.0<CR><LF>User-agent Mozilla/6.0<CR><LF>Accept: text/html, image/gif, image/jpg<CR><LF>Accept-languaje:es<CR><LF><CR><LF><CR><LF>

HTTP/1.0 200 OKDate: Thu, 23 Nov 2008 12:00:15 GMTServer: Apache/2.0 (Unix)Last-Modified: Mon, 10 Sept 2007Content-Length:6821Content-Type: text/html<html> <body> Esta es la pagina de Respuesta</body><body> Esta es la pagina de Respuesta</body></html>

Establecimiento de la conexión

17

Page 18: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Ejemplo 1 … sencillo …

Se requiere un servidor que sume varios números enteros y retorne el resultado.

Ideas?

18

Page 19: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Consideraciones … Identificar los actores participantes en la comunicación. ¿Quién tiene y quién requiere la información del sistema? Identificar cuál es el rol de cada uno de los actores participantes

( cliente, servidor, cliente/servidor, pares o peer-to-peer). ¿Como se van a identificar o diferenciar estos actores?

(direccionamiento) ¿Cuáles son las necesidades de información de la aplicación? ¿Cómo es el esquema de comunicación que debe ocurrir entre los

actores?:– ¿Quien habla primero, quien escucha, quien habla luego?– ¿Hay sólo una pregunta y una respuesta, la interacción incluye una secuencia

de requerimiento y respuestas encadenados, se pide confirmación de cada mensaje ?

– ¿Cuál o cuales son las secuencias correctas de comunicación ? – ¿Qué hacer cuando se rompe una secuencia correcta de comunicación?– ¿Qué debe ocurrir en el caso que se interrumpa una comunicación ?– ¿Qué debe ocurrir en el caso que una comunicación no pueda establecerse ?

19

Page 20: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Posible solución …

Debemos definir los tipos de mensajes:– Request– Responses– Errors

Se podría tomar un delimitador o conjunto de delimitadores para marcar inicio y fin de los elementos de cada mensaje

20

Page 21: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Posible solución …

Request– Formato: numOperan%operand1%operand2%...operanN%– Ejemplo: 4%1%2%3%4%

Response– Formato: result%– Ejemplo: 10%

Error: con literales o códigos de error– Ejemplo: “Overflow %”– Ejemplo: “Unknow format %”

21

Page 22: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Ejemplo 2

Se requiere un servidor que tome los datos de una persona (nombre, cedula, edad, sexo, dirección, teléfono) y realice una inscripción en un curso y responda con la información sobre el curso: horarios, lugar.

Ideas?

22

Page 23: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Soluciones?

¿Nos puede servir la solución anterior? ¿Que pasa con el delimitador? ¿Podríamos colocar tamaño fijo a los

campos de datos? ¿Que pasa con datos de tamaño

variable?

23

Page 24: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Soluciones

Este tipo de datos requieren un formato más sofisticado

Y algunas veces de herramientas que permitan definir estas especificaciones

Por ejemplo: usar un lenguaje de marcado como XML

24

Page 25: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Lenguajes de marcado

XML

25

Page 26: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Xml (eXtensible Markup Language) XML es un metalenguaje que define la sintaxis

utilizada para definir otros lenguajes de etiquetas estructurados.

Xml define la estructura del documento, en un lenguaje de descripción de datos.

Es mucho mas estricto que HTML. No sustituye al HTML.

Legible por usuarios humanos y aplicaciones informáticas.

Permite la intercomunicación entre aplicaciones. Contiene metainformación (metadatos)

26

Page 27: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

XML: Lo bueno.

Es multiplataforma.

Tiene curva de aprendizaje muy plana.

Puede ser barato (muchos editores, visores, verificadores, etc., gratuitos y comerciales).

27

Page 28: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Formato Todo elemento esta delimitado

< /> Un elemento puede ser sencillo

<elemento/> Tener un atributo

<elemento campo=“valor entre comillas”/> Puede tener sub elementos

<elemento><sub …/>

</elemento>28

Page 29: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

XML

Ejemplo

29

Page 30: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Estructura lógicacourses

coursecourse

codc codcstudent student

idname gradegrade nameid

student. . .

“123” “124” “4“3”

“cs100” “cs225”

“Luís”“Pepe”

30

Page 31: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Estructura del XML<courses><course> <codc>cs100</codc> <student> <id>123</id> <name>Pepe<name/>

<grade>3<grade/> </student>

<student> <id>124</id> <name>Luis<name/>

<grade>5<grade/> </student>

</course>

...

...

<course> <codc>cs225</codc> <student> <id>124</id> <name>Luis<name/>

<grade>4<grade/> </student> <student>

<id>125</id> <name>Ana<name/>

<grade>4<grade/> </student>

...</course>...</courses>

31

Page 32: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Ahora... otro ejemplo.

Lo que importa es el delimitado de xml

Los espacios, los LF, CR, líneas en blanco no importan

32

Page 33: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Otro ejemplo diferente<Courses><Course ID=“@cno”><student ID=“123”><grade=“3”/><name=“Pepe”/></estudent><student ID=“124”><grade=“2”/><name=“Paco”/></student>...</Course>...</Courses>

33

Page 34: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

El Otro ejemplo diferente<Courses> <Course ID=“@cno”>

<student ID=“123”> <grade=“3”/> <name=“Pepe”/> </student>

<student ID=“124”> <grade=“2”/> <name=“Paco”/> </student> ... </Course> ...</Courses>

34

Page 35: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Recapitulemos: Ejemplo

Se requiere un servidor que tome los datos de una persona (curso,nombre, cedula, edad, sexo, dirección, teléfono) y realice una inscripción en un curso y responda con la información sobre el curso, horarios, lugar.

35

Page 36: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Request: Format<inscripcion> <Curso ID= “”/>

<estudiante ID=“”> <ci val=“”/> <nombre val=“”/> <telefono val=“”/> <direccion val=“”/> ... </estudiante> ...</inscripcion>

36

Page 37: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Request: Especificaciones

Para cursos:ID es un valor entero

Para Estudiante:...

...

37

Page 38: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Request: Ejemplo<inscripcion> <Curso ID= “123”/>

<estudiante ID=“123”> <ci val=“11”/> <nombre val=“Pepe”/> <telefono val=“99”/> <direccion val=“por ahi”/> ... </estudiante> ...</inscripcion>

38

Page 39: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Response: Format<inscripcionOK> <Curso ID= “”> <lugar> </lugar>

<horario> <dia ID=“” hora=“”/> <dia ID=“” hora=“” /> </horario> </Curso>

</inscripcionOK>

39

Page 40: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Response: Especificaciones

Para cursos:ID es un valor entero...

...

40

Page 41: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Response: Ejemplo<inscripcionOK> <Curso ID= “123”> <lugar>

En la esquina de X con Y, edificio ZZ, piso 666, etc

</lugar> <horario> <dia ID=“lun” hora=“5pm-7pm”/> <dia ID=“vie” hora=“5pm-7pm” /> </horario> </Curso>

</inscripcionOK>

41

Page 42: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Response mas detallado (dos formas diferentes de anotar la misma información)<horario> <dia ID=“lun” hora=“5pm-7pm”/> <dia ID=“vie” hora=“5pm-7pm”/></horario>

<horario> <dia d=“lun”> <hora inc=“5pm” fin=“7pm”/> </dia> <dia ID=“vie”> <hora inc=“5pm” fin=“7pm”/> </dia></horario> 42

Page 43: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

El procesador XML (parser).

Software que reconoce e interpreta las reglas del XML.– También se le llama analizador o intérprete

XML. Con XML bien formado:

– Revisa que el documento siga las reglas del XML para considerarse bien formado.

43

Page 44: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Protocolos y Herramientas para describir los protocolos

Diagrama de secuenciaDiagrama de estados (autómata de estado finitos)

44

Page 45: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Diagramas de secuencia

Diagrama que muestra las interacciones entre los objetos organizadas en una secuencia temporal.

En particular muestra los objetos participantes en la interacción y la secuencia de mensajes intercambiados.

Se usa para indicar cuál es el intercambio de mensajes que debe ocurrir entre los componentes involucrados

45

Page 46: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

46

Page 47: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

47

Page 48: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Diagrama de estados de una cafetera

48

Page 49: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Diagrama de estados

Inicio

Recibe comandos

Espera autenticación

Esperarespuesta

Login+clave

autenticado

comando

respuesta

quit

quit

fallo

Cliente Servidor

49

Diagrama de secuencia

Page 50: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 50

HTTP

Page 51: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores 51

Web y HTTP

Algunos términos● Una página Web consta de objetos● Los objetos pueden ser un archivo HTML, una imagen JPEG,

un applet Java, un archivo de audio,…● Una página Web consta de un archivo HTML base que incluye

diversos objetos referenciados● Cada objeto se direcciona con un URL● Ejemplo de un URL:

www.algunsitio.edu:80/algunaFacultad/pic.gif

Nombre del host Nombre del path

http://

Protocolo

Page 52: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 52

Panorámica de HTTPHTTP: Protocolo de

Transferencia de HiperTexto

● Es el protocolo de la capa de aplicación para el Web

● Usa el modelo cliente/servidor

● Cliente: browser o navegador que solicita, recibe y muestra los objetos Web

● Servidor: Servidor www que envía objetos en respuesta a las solicitudes del browser

● HTTP 1.0: RFC 1945● HTTP 1.1: RFC 2068

PC ejecutandoIE Explorer

Servidorejecutando

El servidor WebApache

Mac ejecutandoNetscape Navigator

Solicitud HTTP

Solicitud HTTP

Respuesta HTTP

Respuesta HTTP

Page 53: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores 53

Funcionamiento de HTTP

Funcionamiento

1. El cliente realiza una petición o apertura activa (request) al servidor (puerto 80, por defecto)

2. Solicita la transacción (request) con HTTP: GET, POST, HEAD, PUT, …

3. El servidor envía la respuesta (response) en HTML

4. Se cierra la conexión (en HTTP/1.0)

Page 54: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores 54

Mensajes HTTP• Dos tipos de mensajes usando ASCII (texto plano):

• Request (Solicitud)• Response (Respuesta)

• Solicitudes HTTP/1.0

Page 55: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 55

Mensajes HTTP

Respuestas HTTP/1.0

Page 56: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 56

Mensajes HTTPEjemplo real de mensajes HTTP

Page 57: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 57

Modelamiento del tiempo de respuesta

Definición de RTT: tiempo para enviar un pequeño paquete y que este viaje desde el cliente hasta el servidor y que regrese.

Tiempo de respuesta:• Un RTT para iniciar la

conexión TCP• Un RTT para la solicitud

HTTP y para que los primeros bytes de la respuesta HTTP regresen

• Tiempo de transmisión del archivo

tiempo para transmitir archivo

Inicia Conexión TCP

RTT

solicitaarchivo

RTT

archivorecibido

tiempo tiempototal = 2RTT+tiempo de transmisión

Page 58: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 58

Mensaje de solicitud HTTP: formato general

Page 59: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 59

Mensaje de respuesta de HTTP

HTTP/1.1 200 OK Connection closeDate: 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 datos datos datos datos datos ...

Línea de estado(código deestado delProtocolo,

frase de estado)

Líneas de encabezado

datos, es decir, archivo HTML

solicitado

Page 60: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 60

eMail

Page 61: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 61

email

• Arquitectura de un sistema de correo electrónico

• SMTP• POP3• IMAP• RFC 822

Page 62: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 62

Arquitectura del sistema de correo

• Funciones (o servicios) del sistema de correo:• edición de mensajes• Transferencia de mensajes• generación de informes

• Subsistemas

Agentes de transferencia(demonios)

• de distribución (SMTP, ESMTP)

• de entrega final (POP3, IMAP)

Page 63: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 63

Protocolos de entrega final de usuario

Problema: obtener correo del buzón

Solución: un buzón en el servidor

PC emisor

Agente de transferencia

(SMTP)Internet

Servidor(con buzón)

conexión permanente

PC receptor

Agente de usuario

conexión NO permanente

POP3

Solución: POP3

Page 64: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 64

Agentes de transferencia de distribución (SMTP)

El SMTP• protocolo sencillo cliente/servidor• formato ASCII• Establecer comunicación TCP al puerto 25

Page 65: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 65

Correo electrónicoTres componentes

principales: • Agentes de usuario• Servidores de correo• Protocolo simple de

transferencia de correo: SMTP

Agente de usuario• Conocido como “lector de

correo”• Permite elaborar, editar y leer

mensajes de correo.• Ejemplos: Eudora, Outlook,

elm, Netscape Messanger• Recupera los mensajes

colocados en el servidor

SMTP

Buzón del usuario

Cola de mensajes salientes

servidor decorreo

Agente de usuario

SMTP

SMTP

Agente de usuario

Agente de usuario

Agente de usuario

servidor decorreo

Agente de usuario

Agente de usuario

servidor decorreo

Page 66: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 66

Correo electrónico: SMTP [RFC 2821]• Utiliza TCP para transferir confiablemente mensajes de correo

desde el cliente al servidor, utiliza el puerto 25• Transferencia directa: entre el servidor que envía y el servidor

que recibe• La transferencia tiene tres fases

• handshaking (saludo)• Transferencia de los mensajes• cierre

• Interacción comando/respuesta• Comandos: texto ASCII• Respuesta: códigos de estado y frase

• Los mensajes deben estar en ASCII de 7 bits

Page 67: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 67

Agentes de transferencia de distribución (SMTP) : protocolo

El servidor comienza por enviar una línea de texto que proporciona su identidad e indica si está preparado o no para recibir correo:

a.- Si no lo está, el cliente libera la conexión y lo intenta después.

b.- Si está dispuesto a aceptar correo electrónico, el cliente anuncia de quién viene el mensaje, y a quién está dirigido. Si existe tal destinatario en el destino, el servidor da al cliente permiso para enviar el mensaje. Entonces el cliente envía el mensaje y el servidor genera un acuse de recibo. Si existe más correo electrónico también se envía ahora. Una vez que todo el correo ha sido intercambiado en ambas direcciones, se libera la conexión.

Page 68: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 68

Comandos SMTP: cliente

Comando Descripción HELO Identifica el remitente al destinatario. MAIL FROM: Identifica una transacción de correo e identifica al emisor. RCPT TO: Se utiliza para identificar un destinatario individual . Si se necesita

identificar múltiples destinatarios es necesario repetir el comando. DATA Permite enviar una serie de líneas de texto. El tamaño máximo de una línea es

de 1.000 caracteres. Cada línea va seguida de un retorno de carro y avance de línea <CR><LF>. La última línea debe llevar únicamente el carácter punto “.”

seguido de <CR><LF>. RSET Aborta la transacción de correo actual. NOOP No operación. Indica al extremo que envíe una respuesta positiva .

Keepalives QUIT Pide al otro extremo que envíe una respuesta positiva y cierre la conexión. VRFY Pide al receptor que confirme que un nombre identifica a un destinatario válido

EXPN Pide al receptor la confirmación de una lista de correo y que devuelva los

nombres de los usuarios de dicha lista. HELP Pide al otro extremo información sobre los comandos disponibles TURN El emisor pide que se inviertan los papeles , para poder actuar como receptor.

El receptor puede negarse a dicha petición. SOML Si el destinatario está conectado, entrega el mensaje directamente al terminal,

en caso contrario lo entrega como correo convencional. SAML Entrega del mensaje en el buzón del destinatario. En caso de estar conectado

también lo hace al terminal. SEND Si el destinatario está conectado, entrega el mensaje directamente al terminal.

Page 69: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 69

Códigos de respuesta SMTP: servidor

Código Descripción

211 Estado del sistema. 214 Mensaje de ayuda. 220 Servicio preparado. 221 Servicio cerrando el canal de transmisión. 250 Solicitud completada con éxito. 251 Usuario no local, se enviará a <dirección de reenvío> 354 Introduzca el texto, finalice con <CR><LF>.<CR><LF>. 421 Servicio no disponible. 450 Solicitud de correo no ejecutada, servicio no disponible (buzón ocupado). 451 Acción no ejecutada, error local de procesamiento. 452 Acción no ejecutada, insuficiente espacio de almacenamiento en el sistema. 500 Error de sintaxis, comando no reconocido. 501 Error de sintaxis. P.ej contestación de SMTP a ESMTP 502 Comando no implementado. 503 Secuencia de comandos errónea. 504 Parámetro no implementado. 550 Solicitud no ejecutada, buzón no disponible. 551 Usuario no local, pruebe <dirección de reenvío>. Si no se tiene cuenta 552 Acción de correo solicitada abortada. 553 Solicitud no realizada (error de sintaxis). 554 Fallo en la transacción.

Page 70: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 70

Ejemplo del uso de comandos SMTP

Page 71: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 71

Ejemplo de la interacción SMTP

S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: ¿Te gusta la salsa de tomate? C: ¿y los pepinillos? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

C -> SC <- S C -> SC <- S C -> SC <- S C -> SC <- S C -> SC <- S

C -> SC <- SC -> SC <- S

Page 72: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Prof. Ricardo Gonzalez

Redes de Computadores Tema 4 72

Interacción SMTP hecha “a mano” :

• telnet nombre_servidor 25• Se observa el código 220 como respuesta del

servidor• Se digitan los comandos HELO, MAIL FROM, RCPT

TO, DATA, QUIT

Lo anterior le permite enviar un mensaje de correo electrónico sin utilizar el cliente de correo

Page 74: Diseño de Protocolos Prof. Wilmer Pereira 1. Protocolo Protocolo: –Es un conjunto de normas y reglas, convenidas de mutuo acuerdo entre todos los participantes

Fuentes

Protocolos en Internet. http://fcqi.tij.uabc.mx/docentes/lpalafox/cursos/redes/protInternet.pdf

Clase de Diseño de Protocolos del Prof. Eduardo Blanco.

Xinu. Protocol Design. http://www.tml.tkk.fi/Opinnot/T-110.300/2003/Luennot/145-management.pdf

74