sábado, 22 de febrero de 2014

Capa de Sesión del modelo OSI

Capa de Sesión del modelo OSI.-

La capa de Sesión, también conocida como la capa 5 del modelo OSI, podría verse como un conjunto de herramientas al servicio de los programadores que, permite enriquecer y estructurar el diálogo entre procesos de aplicación.

Algunos de los servicios que proporciona esta capa son:
  • Establecimiento, mantenimiento y finalización de las sesiones.
  • La gestión del diálogo y las actividades.
  • La sincronización y recuperación de la comunicación.
  • La gestión de permisos para realizar acciones o comunicaciones (tokens).
La capa de Sesión permite que los usuarios de diferentes dispositivos establezcan sesiones entre ellos, mediante las cuales puedan llevarse a cabo un transporte de datos ordinario, de la misma forma que lo haría la capa de Transporte, pero de una manera más refinada, mejorando el servicio de esta última. Por otro lado, cabe decir que la capa de Sesión no es imprescindible, porque muchas aplicaciones no llegan a necesitar de sus servicios.

Para entender esto, podríamos comparar la capa de Transporte como el puente que permite cruzar un río, y que además te da la opción de cruzar el puente andando o en coche, pero sin un flujo continuo, totalmente descontrolado. En este ejemplo, podríamos decir que la capa de Sesión, se correspondería con una línea de autobús que atraviesa el puente de forma regular en el tiempo, siguiendo unas normas y unos horarios establecidos es decir, con un control relativo. El autobús no es necesario, pero es un medio de transporte del que se dispone de forma opcional para todo aquel que no disponga de los medios para atravesar el puente.

De lo anterior, sacamos como conclusión importante, que toda conexión de la capa de Sesión en la que se produzca un intercambio de datos, necesita de la existencia de una conexión entre las capas de Transporte de los diferentes dispositivos, pero esto no quiere decir que la una conexión de Sesión no se pueda prolongar más allá de una conexión de transporte. ¡ Menudo lio mental que tenemos ahora! ¿verdad?. Veamos el siguiente gráfico para comprenderlo.
Formas de correlacionar sesiones sobre conexiones de transporte.

En el apartado a), se puede apreciar como a lo largo de la línea del tiempo, tanto la conexión de Transporte como la conexión de Sesión tienen la misma duración de tiempo, mientras en el apartado b), tenemos dos conexiones de Sesión en una sola conexión de Transporte y, finalmente vemos el último caso en el que a lo largo de la línea de tiempo se producen dos conexiones de Transporte mientras que la conexión de Sesión no se ha interrumpido en ningún momento.

Una de las principales características del modelo OSI es, que todas las comunicaciones son full-dúplex, es deir, que las PDU (Unidad de Datos de Protocolo) se pueden mover en ambas direcciones sobre la misma conexión.
Partiendo de la premisa anterior, una conexión de transporte se define como una conexión full-dúplex, a partir de aquí podemos tratar una de las características de la capa de Sesión, la cuál permite que una Sesión puede estructurarse como half-dúplex, pudiendo haber comunicación en ambos sentidos pero no al mismo tiempo, sino teniendo que establecerse turnos en la transmisión o que, en un momento dado, sólo uno de los extremos de la sesión está facultado para enviar datos. Para ello, la capa de sesión ofrece la posibilidad de usar un testigo (Token) de transmisión que se posee, se pide y se cede por parte de ambos extremos.
Otra de las características de la capa de sesión, es que ofrece mecanismos para sincronizar o "marcar" el diálogo entre sus ususarios a través de la inserción de puntos de sincronización de los que esisten dos tipos: mayores (major sync point) y menores (minor sync point). Esto permite que si durante una comunicación se pierde la conexión, sea posible volver a un estado anterior que sea conocido, lo cual es conocido como resincronización.Como mucho se puede retroceder no más allá del punto de sincronización mayor anterior. El uso de la resincronización depende del proceso de aplicación. Podría servir para recuperar una situación de error originada por la aplicación y no por un error de comunicación, ya que este sería solventado por la capa de transporte.
Como ejemplo, podríamos imaginar la impresión de un libro en un impresora remota, para ello la sesión se debe de estructurar con puntos de sincronización menor para cada página y puntos de sincronización mayor para cada capítulo; imaginemos que en un momento determinado, la impresora se queda sin tinta imprimiendose varías páginas defectuosas o en blanco antes de ser sustituido el cartucho.
Ante esta situación, la capa de transporte, no puede resolver este problema originado por el proceso de aplicación. Las funciones de resincronización de la capa de sesión, permitirá reanudar el proceso de impresión a partir del punto donde se inició el fallo.




jueves, 13 de febrero de 2014

Capa de Presentación del modelo OSI

La capa de presentación del modelo OSI.-

La capa de presentación, está íntimamente relacionada con el significado y el formato de los datos intercambiados entre aplicaciones ejecutadas entre diferentes dispositivos. Esta capa ofrece un servicio de intercambio de información, es decir, no sólo se limita al simple intercambio de grupos de bytes, sino algo con significado (textos, vectores, matrices de números enteros o reales, sonidos, imágenes, etc.).
La principal misión del modelo OSI, era la interconexión de sistema abierto, con lo que se debía resolver el problema de los diferentes formatos con los que cada sistema representaba localmente su información (dependiente del fabricante del sistema, del hardware y del sistema operativo). Ahí es donde interviene realmente la capa de presentación.

Funciones de la capa de presentación.

En el modelo OSI, la capa de presentación tienen tres funciones:
  • La representación común de la información (formatos, conversiones).
  • Seguridad en el intercambio de la información (privacidad, protección y autenticación).
  • Compresión de la información.
Examinemos un poco más en profundidad estas tres funciones de la capa de presentación.

La representación común de la información.

Con el siguiente ejemplo, comprenderemos el porqué de una representación común.
Como ya sabemos, los sistemas informáticos no entienden de textos, letras, número, imágenes ni sonidos. Estos sistemas, sólo entienden el lenguaje del sistema binario agrupado en bytes (conjunto de 8 bits), todo lo demás, para ellos es una simple representación gráfica basada en un conjunto de bits.
La interpretación de ese conjunto de bits, depende del código utilizado y, entre los más usados son EBCDIC (Extended Binary Coded Decimal Interchange Code) y ASCII (American Standard Code for Information Interchange).
El código EBCDIC, era el utilizado por los sistemas de la marca IBM para la representación de la información textual, mientras que la mayor parte de los demás, usan el código ASCII. Como se podrá ver en las imágenes de las tablas que os proporciono al final de esta entrada, existen algunas diferencias entre las equivalencias de los bytes y la representación de estos. En esta situación, es evidente que, si un sistema IBM intercambia un texto con otro sistema, se perdería completamente su significado. También cabe destacar que algunos sistemas almacenan los número enteros en su memoria o disco con el bit más significativo en primer lugar, mientras que otros lo hacen en el bit menos significativo en primer lugar; sin entrar en la manera en la que cada sistema representa a los número reales (¿Cuántos bits para la mantisa? ¿Cuántos para el exponente? ¿En que formato?).
Cuando se plantea el problema de cómo intercambiar información de manera transparente entre sistemas por parte de la capa de presentación cabe plantearse tres alternativas:
  • Conversión del formato de origen al formato del sistema destino (Una vez recibida la información).
  • Conversión del formato de origen al formato del sistema destino (Antes de mandar la información).
  • Conversión a un formato común (Antes de mandar la información) y conversión al formato de destino (Una vez recibida la información).
La capa de Presentación optó por la última opción, convirtiendo la información a un formato común antes de mandar la información, y el sistema destino se encarga de convertir, una vez recibida la información a su propio formato.
Se desecharon las dos primeras opciones puesto que, para que estos sistemas fueran efectivos, era necesario que cada sistema tuviera algoritmos de traducción a/de cada uno de todos los posibles formatos que pudiera utilizar cualquier sistema de cualquier fabricante y esa cantidad de algoritmos crecería de manera exponencial, algo que sería insostenible.

La seguridad en el intercambio de la información.

Otra de las funciones importantes en la capa de Presentación y que cada día cobra más importancia, es la privacidad, protección y autenticación de los mensajes que circulan por una red insegura como Internet.
Se entiende por privacidad, en este caso, el hecho de que un mensaje (M) con origen en un "Usuario A" destinado al "Usuario B", no pueda ser leído por un tercer "Usuario C" que haya podido interceptar el mensaje en la red.
Esto se logra mediante la criptografía de "Clave pública o cifrado asimétrico". Cada usuario que desee intervenir en un intercambio seguro de información, debe de poseer una clave de dos partes: una Clave Pública Kp y una Clave Secreta Ks. La clave pública (Kp), se deposita en una base de datos al alcance de cualquier otro usuario, mientras que la clave secreta (Ks), es mantenida en secreto por su usuario y nunca viajará por la red.
El siguiente ejemplo, servirá para entender cómo funciona el procedimiento de cifrado/descifrado asimétrico:
Un usuario A, se dispone a mandar un mensaje cifrado a un usuario B:
  • El usuario A, redacta en mensaje de texto en claro (M).
  • La capa de presentación del usuario A, aplicará el "algoritmo de cifrado (EA)" utilizando la clave pública del usuario B o de destino (KpB), que como decíamos, está al alcance de cualquier usuario.
  • Tras aplicar el algoritmo de cifrado, el mensaje en claro (M), se habrá convertido en un mensaje cifrado (X) que viajará por un canal inseguro (Internet), hasta llegar al usuario B.
  • Ahora, será la capa de Presentación del usuario B la que se encargue de descifrar el mensaje cifrado (X), aplicando el algoritmo de descifrado (AE) mediante la clave secreta del usuario B (KsB).
  • El resultado del paso anterior, será el mensaje en claro (M).


Proceso de cifrado de mensaje
En la actualidad, los mensajes no sólo se pueden enviar de forma segura proporcionando privacidad y protección, sino que también se pueden firmar digitalmente, de forma que el receptor del mensaje, tenga la seguridad de quien ha sido el originador de este. Esto se conoce como el principio de "no repudio", es decir, el emisor no puede retractarse de haber generado el mensaje.
A continuación, explicamos cual es el proceso que se sigue para el caso de un usuario A que desea enviar un mensaje firmado digitalmente y cifrado, a un usuario B:
  • El usuario A, redacta el mensaje de texto en claro (M).
  • La capa de Presentación aplicará el "algoritmo de cifrado (EA)" utilizando la clave secreta del usuario A (KaA), quedando el mensaje firmado digitalmente (F).
  •  La capa de Presentación aplicará el algoritmo de cifrado (EA) al mensaje firmado (F), pero esta vez utilizará la clave pública del usuario B (KpB), dando como resultado un mensaje cifrado y firmado digitalmente (XF), dispuesto para enviarse a través del canal inseguro (Internet).
  • Ahora, será la capa de Presentación del usuario B quien se encargue de descifrar el mensaje (XF) aplicando el algoritmo  de descifrado (EA), utilizando inicialmente la clave secreta del usuario B (KsB), dando como resultado el mensaje (F)
  • Sobre el mensaje (F), la capa de presentación aplicará nuevamente el algoritmo de descifrado con la clave pública del usuario A (KpA), obteniendo como resultado el mensaje original (M).
 
Proceso de Firma digital y cifrado.
  

Compresión de la información.

La última función de la capa de presentación, es la compresión de la información, cuya finalidad es la de reducir el número de octetos (bytes) con el que se representa la información. Sus ventajas son principalmente, la reducción de los costes del uso de las redes, el aumento del rendimiento (mayor velocidad de transferencia en redes lentas, mejor aprovechamiento del ancho de banda disponible) y la reducción de los errores al tener que transmitir una menor cantidad de bytes.
La compresión, puede ser:
  • Con perdidas: Donde la información que se recuperó tras someterse al proceso de compresión, no es idéntica a la original, pero si suficiente para los propósitos establecidos. Este tipo de compresión, se utiliza para los ficheros de sonido e imágenes fijas o en movimiento. Algunos ejemplos para este tipo, son: los algoritmos de GIF, JPEG, MPEG para imágenes y video, y GSM, MP3 o MP4 para ficheros de sonido.
  • Sin pérdidas: Donde la información recuperada tras el proceso de compresión, es exactamente igual a la original. Se suele utilizar para la compresión de textos, códigos ejecutables, etc. Algunos ejemplos para este tipo, son: los conocidos ficheros .ZIP o .RAR.

Tablas de código ASCII y EBCDIC:

Tabla 1

Tabla 2

Tabla 3

Tabla 4

Tabla 5

Tabla 6

Tabla 7

Tabla 8
En las anteriores tablas, podemos consultar las equivalencias de las diferentes representaciones de simbolos con el lenguaje binario, decimal y hexadecimal. Si alguno de los símbolos aqui representados no los viesemos en el teclado de nuestra computadora, podemos lograr que el sistema lo represente mediante la combinacion de la tecla "alt + [nº decimal de la tabla]", para comprobarlo, se puede abrir un editor de texto (bloc de notas, word, ... ) y como ejemplo intentar representar el símbolo "$" mediante la siguiente combinacion de la tabla 2,  mantener pulsada la tecla alt mientras tecleamos el número 36, seguidamente soltamos la tecla alt y el resultado será $.

sábado, 8 de febrero de 2014

Capa de Aplicacion del Modelo OSI

En la anterior entrada, habíamos hecho una pequeña introducción al estudio de las capas y al modelo de referencia OSI.
En el estudio de las redes informáticas, siempre se pasa de puntillas por las capa de aplicación, presentación y sesión, así que para no caer en este error, he decidido hacer una pequeña exposición sobre ellas, de manera que no sean las grandes desconocidas del modelo OSI.

LA CAPA DE APLICACIÓN.-

La capa de aplicación, es la intermediaria o también conocido como interfaz, entre las aplicaciones o programas que utilizamos para comunicarnos y la red en la que se trasmiten los mensajes, entendiendo "mensajes" como el conjunto de datos que trasmitimos.

La capa de aplicación, está compuesta por:
  • Aplicaciones.
  • Servicios.
  • Protocolos.
Dentro de la capa de aplicación, podemos encontrar dos tipos de programas o aplicaciones:
  • Aplicaciones de red.
  • Servicios de la capa de aplicación.

Aplicaciones de red.

Las aplicaciones, son aquellos programas que utiliza el usuario para comunicarse en la red, ya sean programas de mensajería, navegadores web, clientes de correo electrónico (Outlook, Lotus notes,...) etc.

Servicios.

Los servicios, son los programas que el usuario no ve, pero se están ejecutando para que las aplicaciones funciones correctamente. Estos servicios, son por ejemplo, la transferencia de archivos, funciones de prioridades en red, colas de impresión en red, etc.
Los servicios, deben implementar varios protocolos, ya que son muchas las aplicaciones que se comunican en la red.

Protocolos.

Los protocolos de la capa de aplicación son aquellos que se utilizan para intercambiar los datos entre los programas que se están ejecutando en el origen y el destino.
Algunos de los protocolos utilizados en esta capa de aplicación son:
  • Protocolo de Servicio de Nombres de Dominio. (DNS, Domain Name Services).
  • Protocolo de Transferencia de Hipertexto. (HTTP, Hypertext Transfer Protocol).
  • Protocolo de Seguro de Transferencia de Hipertexto.( HTTPS, Hypertext Transfer Protocol Secure).
  • Protocolo Simple de Transferencia de Correo. (SMTP, Simple Mail Transfer Protocol).
  • Protocolo de emulación de Terminal (TELNET, TELecommunication NETwork).
  • Protocolo de Transferencia de Ficheros. (FTP, File Transfer Protocol).
Todos estos protocolos, proporcionan la información de control y su formato necesario para las funciones de comunicación más comunes dentro de Internet.

Funciones de los protocolos.

Como se había comentado en otra de mis entradas, los protocolos establecen reglas para el intercambio de datos entre las diferentes aplicaciones y servicios instalados en los dispositivos de origen y destino dentro de una red.
Además se encargan de estructurar los mensajes que se envían entre origen y destino.
Cada protocolo, realiza una acción específica y que por este motivo son muchísimos protocolos existentes hoy en día.
Para que la comunicación sea exitosa, tenemos que tener implementados tanto en el origen como en el destino los mismos protocolos.

Con esta entrada, ya debería quedar un poquito más claro cuales son las funciones de la capa de aplicación, al menos espero haber logrado esto.