lunes, 4 de febrero de 2013

Clase Redes de Telecomunicaciónes

RFC6455

Buenas, ahora que les presento un pequeño resumen sobre el RFC6455 que habla sobre WebSocket Protocol

WebSocket Protocol


Este protocolo nos permite realizar una comunicación bidireccional entre el cliente que esta ejecutando un código no tan seguro, en un ambiente controlado hacia un host remoto. La seguridad de este protocolo  es originado de modelos estándares de los navegadores web.

Este protocolo consiste en un enlaza de apertura, seguido por una serie de mensajes, a travez de capas TCP. El propósito de este protocolo es para tener comunicación bidireccional  con servidores que no tienen múltiple conexiones HTTP.

Breve Introducción:

En la historia de los protocolos siempre a sido necesario tener una conexión bidireccional entre cliente y servidor ademas de conexiones HTTP, pero esto puede causar una serie de problemas como los que se muestran a continuación:

  • El servidor esta obligado a enviar a utilizar diferentes conexiones TCP para cada cliente.
  • El protocolo de conexión tiene  una sobrecarga alta.
  • El script del cliente es obligado a tener conexiones de salida  con la conexión de salida para rastrear respuestas.
Esto y mas problemas originales de la historia, son resueltos por este protocolo.

Descripción general:

Este protocolo esta dividido en dos partes:

  • Protocolo de enlace
  • Transferencia de datos

Protocolo de enlace




Protocolo de apertura

El protocolo de enlace de apertura esta diseñado para ser compatible en HTTP del lado del servidor y los intermediarios, de esta manera solo se utiliza un solo puerto para ser utilizado tanto por los clientes, el servidor y los Sockets.

De acuerdo a este RFC los campos de cabecera en el protocolo de enlace pueden ser enviados por el cliente en cualquier orden, por lo que las cabeceras recibidas no son tan significativas.

El REQUEST-URL se utiliza para identificar el punto final de la conexión  tanto que permite variar dominios que sirven a partir de una sola dirección ip y permitir múltiples criterios de valoración para ser atendidos por un solo servidor,

El cliente incluye el nombre de host en el campo de cabecera de enlace tal como el RFC2616, de modo que el cliente y el servidor puede verificar que están de acuerdo en que el host esta en uso.


Protocolo de cierre

El protocolo de enlace para cierre  es mas simple que el de apertura. Cualquiera de los clientes puede enviar un trama de control de datos que contiene una determinada secuencie de control para iniciar el cierre. Al rescribir este trama, el otro interlocutor envía un marco para responder, si aun  no lo ha enviado un frame de cierre para responder, si aun no lo envía  recibe un frame de control, el par primero y luego se cierra la conexión, con la certeza de que ningún dato adicional este próximo a enviar o recibir.

El protocolo de enlace en el cierre esta diseñado para complementar este cierre TCP, sobre la base de que el protocolo de cierre TCP es no siempre fiable de un lado al otro, especialmente en presencia de interconexiones de proxis y otros intermediarios.

Modelo de seguridad

El protocolo Web Sockets utiliza el modelo de origen de los navegadores web para restringir para restringir las paginas que puedan contar con WebSocket cuando el protocolo WebSocket se utiliza desde una pagina web.Naturalmente, cuando el protocolo WebSocket es usado por el cliente directamente, el modelo de origen no es útil  ya que el cliente puede proporcionar cualquier cadena de origen arbitrario.

Transferencia de datos




Enviar datos

Para poder enviar mensajes o datos atravez de una conexión es necesario realizar una serie de pasos importantes.


  • EL punto final debe garantizar una conexión abierta. Si en cualquier momento los estados de la conexión cambia, los siguientes pasos deben ser abortados.
  • El punto final debe encapsular los diferentes datos en un frame. Si los datos a enviar es grande o si los datos no están disponibles en su totalidad en este punto deseado, el punto final puede alternativamente encapsula los datos en una serie de frames.
  • El frame-opcode de la primera trama que contiene los datos deberán ser fijados adecuadamente para obtener datos para poder ser interpretados por el destinatario.
  • El frame-fin de la ultima trama que contienen los datos debe ser fijado a uno.
  • Si la información esta siendo enviada por el cliente, Los frames deben ser enmascarados.
  • Si todas las extensiones  se han negociado por la conexión, las consideraciones adicionales pueden aplicar según los diferentes tipos de extensiones.
  • Los frames que han sido formadas deben ser transmitidos sobre las subyacente conexión de red.
Recibir datos

Los datos de entrada se deben analizar como frames. Si un frame de control es recibido, la trama debe ser manejado de una manera especial.
Tras la resepcion de un trama de datos, el punto fimal debe anotar los diferentes dato. Los datos de aplicación de este frame como los datos de mensaje. Si el frame comprende aun sin fracmentar un mensaje, se dice que el mensaje a sido recibido.



Referencia:
http://www.rfc-editor.org/rfc/pdfrfc/rfc6455.txt.pdf

1 comentario:

  1. Ojo con los acentos. Quité un punto por la falta de una crítica constructiva al final para concluir la entrada. 9 pts.

    ResponderEliminar