lunes, 28 de abril de 2014

3 Protocolos y funcionalidad de la capa de Aplicación



La mayoría de nosotros experimentamos Internet a través de World Wide Web, servicios de e-mail y programas para compartir archivos. Éstas y muchas otras aplicaciones proporcionan la interfaz humana a la red subyacente, lo que nos permite enviar y recibir información con relativa facilidad. Generalmente, las aplicaciones que utilizamos son intuitivas; es decir, podemos acceder a ellas y usarlas sin saber cómo funcionan.
Se hace más sencilla si utilizamos el marco en capas del modelo Interconexión de sistema abierto (OSI). Enfatizaremos el rol de una capa, la capa de Aplicación, y sus componentes: aplicaciones, servicios y protocolos. Exploraremos cómo esos tres elementos hacen posible la comunicación sólida a través de la red de información.
En este capítulo aprenderá a:
-          Describir cómo las funciones de las tres capas superiores del modelo OSI proporcionan servicios de red a las aplicaciones de usuario final.
-          Describir cómo los protocolos de la capa de aplicación TCP/IP proporcionan los servicios especificados por las capas superiores del modelo OSI.
-          Definir cómo la gente utiliza la capa de aplicación para comunicarse a través de la red de información.
-          Describir la función de las conocidas aplicaciones TCP/IP, como la World Wide Web y el correo electrónico, y sus servicios relacionados (HTTP, DNS, SMB, DHCP, SMTP/POP y Telnet).
-          Describir los procesos para compartir archivos que utilizan las aplicaciones entre pares y el protocolo Gnutella.
-          Explicar cómo los protocolos garantizan que los servicios que se ejecutan en una clase de dispositivo puedan enviar y recibir datos desde y hacia muchos dispositivos de red diferentes.
-          Utilizar herramientas de análisis de red para examinar y explicar cómo funcionan las aplicaciones comunes de usuarios.
3.1.1 Modelo OSI y modelo TCP/IP
El modelo de referencia de interconexión de sistemas abiertos es una representación abstracta en capas, creada como guía para el diseño del protocolo de red. El modelo OSI divide el proceso de networking en diferentes capas lógicas, cada una de las cuales tiene una única funcionalidad y a la cual se le asignan protocolos y servicios específicos.
En este modelo, la información se pasa de una capa a otra, comenzando en la capa de Aplicación en el host de transmisión, siguiendo por la jerarquía hacia la capa Física, pasando por el canal de comunicaciones al host de destino, donde la información vuelve a la jerarquía y termina en la capa de Aplicación.
La capa de Aplicación, es la capa superior de los modelos OSI y TCP/IP. Es la capa que proporciona la interfaz entre las aplicaciones que utilizamos para comunicarnos y la red subyacente en la cual se transmiten los mensajes. Los protocolos de capa de aplicación se utilizan para intercambiar los datos entre los programas que se ejecutan en los hosts de origen y destino. Existen muchos protocolos de capa de aplicación y siempre se desarrollan protocolos nuevos.
Aunque el grupo de protocolos TCP/IP se desarrolló antes de la definición del modelo OSI, la funcionalidad de los protocolos de capa de aplicación de TCP/IP se adaptan aproximadamente a la estructura de las tres capas superiores del modelo OSI: Capas de Aplicación, Presentación y Sesión.
Capa de Presentación
La capa de Presentación tiene tres funciones primarias:
·         Codificación y conversión de datos de la capa de aplicación para garantizar que los datos del dispositivo de origen puedan ser interpretados por la aplicación adecuada en el dispositivo de destino.
·         Compresión de los datos de forma que puedan ser descomprimidos por el dispositivo de destino.
·         Encriptación de los datos para transmisión y descifre de los datos cuando se reciben en el destino.
Vinculan con una stack de protocolos determinada. Los estándares para vídeos y gráficos son algunos ejemplos. Dentro de los estándares más conocidos para vídeo encontramos QuickTime y el Grupo de expertos en películas (MPEG). QuickTime es una especificación de Apple Computer para audio y vídeo, y MPEG es un estándar para la codificación y compresión de vídeos.
Dentro de los formatos de imagen gráfica más conocidos encontramos Formato de intercambio gráfico (GIF), Grupo de expertos en fotografía (JPEG) y Formato de archivo de imagen etiquetada (TIFF). GIF y JPEG son estándares de compresión y codificación para imágenes gráficas, y TIFF es una formato de codificación estándar para imágenes gráficas.
Capa de Sesión
Como lo indica el nombre de la capa de Sesión, las funciones en esta capa crean y mantienen diálogos entre las aplicaciones de origen y destino. La capa de sesión maneja el intercambio de información para iniciar los diálogos y mantenerlos activos, y para reiniciar sesiones que se interrumpieron o desactivaron durante un periodo de tiempo prolongado.
Algunos de los protocolos TCP/IP son:
·         El protocolo Servicio de nombres de dominio (DNS, Domain Name Service) se utiliza para resolver nombres de Internet en direcciones IP.
·         El protocolo de transferencia de hipertexto (HTTP, Hypertext Transfer Protocol) se utiliza para transferir archivos que forman las páginas Web de la World Wide Web.
·         El Protocolo simple de transferencia de correo (SMTP) se utiliza para la transferencia de mensajes de correo y adjuntos.
·         Telnet, un protocolo de emulación de terminal, se utiliza para proporcionar acceso remoto a servidores y a dispositivos de red.
·         El Protocolo de transferencia de archivos (FTP, File Transfer Protocol) se utiliza para la transferencia interactiva de archivos entre sistemas.
·         Los protocolos de la suite TCP/IP generalmente son definidos por Solicitudes de comentarios (RFCS). El Grupo de trabajo de ingeniería de Internet mantiene las RFCS como los estándares para el conjunto TCP/IP.
3.1.2 Software de la capa de aplicación
Las funciones asociadas con los protocolos de capa de Aplicación permiten a la red humana comunicarse con la red de datos subyacente.
Dentro de la capa de Aplicación, existen dos formas de procesos o programas de software que proporcionan acceso a la red: aplicaciones y servicios.
Aplicaciones reconocidas por la red
Aplicaciones son los programas de software que utiliza la gente para comunicarse a través de la red. Algunas aplicaciones de usuario final son compatibles con la red, lo cual significa que implementan los protocolos de la capa de aplicación y pueden comunicarse directamente con las capas inferiores del stack de protocolos. Los clientes de correo electrónico y los exploradores Web son ejemplos de este tipo de aplicaciones.
Servicios de la capa de Aplicación
Otros programas pueden necesitar la ayuda de los servicios de la capa de Aplicación para utilizar los recursos de la red, como transferencia de archivos o cola de impresión en red. Aunque son transparentes para el usuario, estos servicios son los programas que se comunican con la red y preparan los datos para la transferencia.
3.1.3 Aplicaciones del usuario, servicios y protocolos de la capa de aplicación
La capa de Aplicación utiliza los protocolos implementados dentro de las aplicaciones y servicios, los protocolos proporcionan las reglas y los formatos que regulan el tratamiento de los datos. Un único programa ejecutable debe utilizar los tres componentes e inclusive el mismo nombre. Por ejemplo: cuando analizamos "Telnet" nos podemos referir a la aplicación, el servicio o el protocolo.
3.1.4 Funciones del protocolo de capa de aplicación
Los protocolos de la capa de aplicación son utilizados tanto por los dispositivos de origen como de destino durante una sesión de comunicación. Para que las comunicaciones sean exitosas, deben coincidir los protocolos de capa de aplicación implementados en el host de origen y destino.
Los protocolos establecen reglas consistentes para intercambiar datos entre las aplicaciones y los servicios cargados en los dispositivos participantes.
Muchos y diversos tipos de aplicaciones se comunican a través de las redes de datos. Por lo tanto, los servicios de la capa de Aplicación deben implementar protocolos múltiples para proporcionar la variedad deseada de experiencias de comunicación. Cada protocolo tiene un fin específico y contiene las características requeridas para cumplir con dicho propósito.
3.2.1 El modelo cliente servidor
Cuando la gente intenta acceder a información en sus dispositivos, ya sean éstos una computadora personal o portátil, un PDA, teléfono celular o cualquier otro dispositivo conectado a la red, los datos pueden no estar físicamente almacenados en sus dispositivos. Si así fuere, se debe solicitar al dispositivo que contiene los datos, permiso para acceder a esa información.
Modelo cliente-servidor
En el modelo cliente-servidor, el dispositivo que solicita información se denomina cliente y el dispositivo que responde a la solicitud se denomina servidor. Los procesos de cliente y servidor se consideran una parte de la capa de Aplicación. El cliente comienza el intercambio solicitando los datos al servidor, que responde enviando uno o más streams de datos al cliente. Los protocolos de capa de Aplicación describen el formato de las solicitudes y respuestas entre clientes y servidores.
Un ejemplo de una red cliente/servidor es un entorno corporativo donde los empleados utilizan un servidor de e-mail de la empresa para enviar, recibir y almacenar e-mails.
3.2.2 Servidor
En un contexto general de redes, cualquier dispositivo que responde a una solicitud de aplicaciones de cliente funciona como un servidor. Un servidor generalmente es una computadora que contiene información para ser compartida con muchos sistemas de cliente. Por ejemplo, páginas Web, documentos, bases de datos, imágenes, archivos de audio y vídeo pueden almacenarse en un servidor y enviarse a los clientes que lo solicitan. En otros casos, como una impresora de red, el servidor de impresión envía las solicitudes de impresión del cliente a la impresora específica.
En una red cliente-servidor, el servidor ejecuta un servicio o proceso, a veces denominado daemon de servidor. Los daemons se describen como servidores que "escuchan" una solicitud del cliente, porque están programados para responder cada vez que el servidor recibe una solicitud para el servicio proporcionado por el daemon.
3.2.3 Protocolos y servicios de la capa de aplicación
Una única aplicación puede emplear diferentes servicios de la capa de Aplicación, así lo que aparece para el usuario como una solicitud para una página Web puede, de hecho, ascender a docenas de solicitudes individuales. Y, para cada solicitud, pueden ejecutarse múltiples procesos.
Por ejemplo, un cliente puede necesitar de diversos procesos individuales para formular sólo una solicitud al servidor. Además, los servidores generalmente tienen múltiples clientes que solicitan información al mismo tiempo.
3.2.4 Redes y aplicación entre pares (P2P,Peer-to-Peer)
Modelo Punto a Punto
Además del modelo cliente/servidor para redes, existe también un modelo punto a punto. Las redes punto a punto tienen dos formas distintivas: diseño de redes punto a punto y aplicaciones punto a punto (P2P). Ambas formas tienen características similares pero en la práctica funcionan en forma muy distinta.
Redes entre pares
En una red entre pares, dos o más computadoras están conectadas a través de una red y pueden compartir recursos (por ejemplo, impresora y archivos) sin tener un servidor dedicado. Cada dispositivo final conectado (conocido como punto) puede funcionar como un servidor o como un cliente.
A diferencia del modelo cliente/servidor, que utiliza servidores dedicados, las redes punto a punto descentralizan los recursos en una red. En lugar de ubicar información para compartir en los servidores dedicados, la información puede colocarse en cualquier parte de un dispositivo conectado.
Aplicaciones punto a punto
Una aplicación punto a punto (P2P), a diferencia de una red punto a punto, permite a un dispositivo actuar como cliente o como servidor dentro de la misma comunicación. Sin embargo, las aplicaciones punto a punto requieren que cada dispositivo final proporcione una interfaz de usuario y ejecute un servicio en segundo plano. Cuando inicia una aplicación punto a punto específico, ésta invoca la interfaz de usuario requerida y los servicios en segundo plano. Luego, los dispositivos pueden comunicarse directamente.
Algunas aplicaciones P2P utilizan un sistema híbrido donde se descentraliza el acceso a los recursos pero los índices que apuntan a las ubicaciones de los recursos están almacenados en un directorio centralizado.
3.3.1 Protocolo y servicio DNS
 Los números de puerto identifican las aplicaciones y los servicios de la capa de Aplicación que son los datos de origen y destino. Los programas del servidor generalmente utilizan números de puerto predefinidos comúnmente conocidos por los clientes. Mientras examinamos los diferentes servicios y protocolos de la capa de Aplicación de TCP/IP, nos referiremos a los números de puerto TCP y UDP normalmente asociados con estos servicios. Algunos de estos servicios son:
-          Sistema de nombres de dominio (DNS): puerto TCP/UDP 53.
-          Protocolo de transferencia de hipertexto (HTTP, Hypertext Transfer Protocol): puerto TCP 80.
-          Protocolo simple de transferencia de correo (SMTP, Simple Mail Transfer Protocol): puerto TCP 25.
-          Protocolo de oficina de correos (POP): puerto UDP 110.
-          Telnet: puerto TCP 23.
-          Protocolo de configuración dinámica de host: puerto UDP 67.
-          Protocolo de transferencia de archivos (FTP, File Transfer Protocol): puertos TCP 20 y 21.
DNS
En redes de datos, los dispositivos son rotulados con direcciones IP numéricas para que puedan participar en el envío y recepción de mensajes a través de la red.
En Internet, esos nombres de dominio, como www.cisco.com, son mucho más sencillos de recordar que 198.133.219.25, que es la dirección numérica real para este servidor. Además, si Cisco decide cambiar la dirección numérica, para el usuario es transparente ya que el nombre de dominio seguirá siendo www.cisco.com. La nueva dirección simplemente estará enlazada con el nombre de dominio existente y la conectividad se mantendrá.
El Sistema de nombres de dominio (DNS) se creó para que el nombre del dominio busque soluciones para estas redes. DNS utiliza un conjunto distribuido de servidores para resolver los nombres asociados con estas direcciones numéricas.
El protocolo DNS define un servicio automatizado que coincide con nombres de recursos que tienen la dirección de red numérica solicitada. Incluye las consultas sobre formato, las respuestas y los formatos de datos. Las comunicaciones del protocolo DNS utilizan un formato simple llamado mensaje.
DNS es un servicio cliente/servidor; sin embargo, difiere de los otros servicios cliente/servidor. Mientras otros servicios utilizan un cliente que es una aplicación (como un explorador Web o un cliente de correo electrnico), el cliente DNS ejecuta un servicio por sí mismo. El cliente DNS, a veces denominado resolución DNS.
Al configurar un dispositivo de red, generalmente proporcionamos una o más direcciones del servidor DNS que el cliente DNS puede utilizar para la resolución de nombres. En general, el proveedor de servicios de Internet provee las direcciones para utilizar con los servidores DNS.
Los sistemas operativos informáticos también tienen una utilidad denominada nslookup que permite al usuario consultar manualmente los servidores de nombre para resolver un determinado nombre de host.
Cuando se ejecuta nslookup, se muestra el servidor DNS por defecto configurado para su host. En este ejemplo, el servidor DNS es dns-sjk.cisco.com que tiene una dirección de 171.68.226.120.
Luego podemos escribir el nombre de un host o dominio para el cual deseamos obtener la dirección. En la primera consulta de la figura, se hace una consulta para www.cisco.com. El servidor de nombre que responde proporciona la dirección 198.133.219.25.
Un servidor DNS proporciona la resolución de nombres utilizando el daemon de nombre que generalmente se llama named (se pronuncia name-dee).
El servidor DNS almacena diferentes tipos de registros de recursos utilizados para resolver nombres. Estos registros contienen el nombre, la dirección y el tipo de registro.
Algunos de estos tipos de registro son:
·         A: una dirección de un dispositivo final.
·         NS: un servidor de nombre autoritativo.
·         CNAME: el nombre ideal (o Nombre de dominio completamente calificado) para un alias, que se utiliza cuando varios servicios tienen una única dirección de red pero cada servicio tiene su propia entrada en DNS.
·         MX: registro de intercambio de correos, asigna un nombre de dominio a una lista de servidores de intercambio de correos para ese dominio.
Cuando un cliente realiza una consulta, el proceso "nombrado" del servidor primero observa en sus propios registros para ver si puede resolver el nombre. Si no puede resolver el nombre utilizando los registros almacenados, contacta a otros servidores para hacerlo.
La solicitud puede pasar por un número de servidores, lo cual lleva tiempo adicional y consume ancho de banda. Una vez que se encuentra una coincidencia y se devuelve al servidor solicitante original, el servidor almacena temporalmente en la caché la dirección numerada que coincide con el nombre.
Si vuelve a solicitarse ese mismo nombre, el primer servidor puede regresar la dirección utilizando el valor almacenado en el caché de nombres. El almacenamiento en caché reduce el tráfico de la red de datos de consultas DNS y las cargas de trabajo de los servidores más altos de la jerarquía. El servicio del cliente DNS en las PC de Windows optimiza el rendimiento de la resolución de nombres DNS almacenando previamente los nombres resueltos en la memoria. El comando ipconfig /displaydns muestra todas las entradas DNS en caché en un sistema informático con Windows XP o 2000.
El sistema de nombres de dominio utiliza un sistema jerárquico para crear una base de datos para proporcionar una resolución de nombres.
Los diferentes dominios de primer nivel representan el tipo de organización o el país de origen. Algunos ejemplos de dominios de primer nivel son:
.au: Australia
.co: Colombia
.com: una empresa o industria
.jp: Japón
.org: una organización sin fines de lucro
Después de los dominios de primer nivel se encuentran los dominios de segundo nivel y, debajo de estos, hay otros dominios de nivel inferior.
-          -Cada nombre de dominio es una ruta a través de este árbol invertido que comienza desde la raíz.
-          Después de los dominios de primer nivel se encuentran los dominios de segundo nivel y, debajo de estos, hay otros dominios de nivel inferior.
-          Cada nombre de dominio es una ruta a través de este árbol invertido que comienza desde la raíz.
El sistema de nombres de dominio depende de esta jerarquía de servidores descentralizados y mantiene estos registros de recursos. Los registros de recursos enumeran nombres de dominios que el servidor puede resolver y servidores alternativos que también pueden procesar solicitudes.
Por ejemplo: un servidor de nombres en el dominio cisco.netacad.net no sería autoritativo para el registro mail.cisco.com porque ese registro se mantiene en un servidor de nivel de dominio superior, específicamente el servidor de nombres en el dominio cisco.com .
3.3.2 Servicio WWW y HTTP
Cuando se escribe una dirección Web (o URL) en un explorador de Internet, el explorador establece una conexión con el servicio Web del servidor que utiliza el proocolo HTTP. URL (o Localizador uniforme de recursos) y URI (Identificador uniforme de recursos) son los nombres que la mayoría de las personas asocian con las direcciones Web.
El URL http://www.cisco.com/index.html es un ejemplo de un URL que se refiere a un recurso específico: una página Web denominada index.html en un servidor identificado como cisco.com (haga clic en las fichas de la figura para ver los pasos utilizados por HTTP).
Como texto sin formato o Lenguaje de marcado de hipertexto (HTML, el lenguaje que se utiliza para construir una página Web). Otros tipos de datos, sin embargo, requieren de otro servicio o programa. Generalmente se los conoce como plug-ins o complementos. Para ayudar al explorador a determinar qué tipo de archivo está recibiendo, el servidor especifica qué clase de datos contiene el archivo.
Primero, el explorador interpreta las tres partes de la URL:
  1. http (el protocolo o esquema).
  2. www.cisco.com (el nombre del servidor), y
  3. web-server.htm (el nombre específico del archivo solicitado).
El explorador luego verifica con un servidor de nombres para convertir a www.cisco.com en una dirección numérica que utilizará para conectarse con el servidor. Al utilizar los requerimientos del protocolo HTTP, el explorador envía una solicitud GET al servidor y pide el archivo web-server.htm. El servidor, a su vez, envía al explorador el código HTML de esta página Web. Finalmente, el explorador descifra el código HTML y da formato a la página para la ventana del explorador.
El protocolo de transferencia de hipertexto (HTTP), uno de los protocolos del grupo TCP/IP, se desarrolló en sus comienzos para publicar y recuperar las páginas HTML, y en la actualidad se utiliza para sistemas de información distribuidos y de colaboración. HTTP se utiliza a través de la World Wide Web para transferencia de datos y es uno de los protocolos de aplicación más utilizados.
HTTP especifica un protocolo de solicitud/respuesta. Para responder los tres tipos de mensajes más comunes son GET, POST y PUT.
GET es una solicitud de datos del cliente. Un explorador Web envía el mensaje GET para solicitar las páginas desde un servidor Web, una vez que el servidor recibe la solicitud GET , responde con una línea de estado, como HTTP/1.1 200 OK, y un mensaje solo, cuyo cuerpo puede ser el archivo solicitado, un mensaje de error o alguna otra información.
POST y PUT se utilizan para enviar mensajes que cargan los datos al servidor Web. Por ejemplo, cuando el usuario ingresa datos en un formulario incorporado en una página Web, POST incluye los datos en el mensaje enviado al servidor.
PUT carga los recursos o el contenido al servidor Web.
Aunque es muy flexible, HTTP no es un protocolo seguro. Los mensajes POST cargan información al servidor en un texto sin formato que puede ser interceptado y leído.
Para una comunicación segura a través de Internet, se utiliza el protocolo HTTP seguro (HTTPS) para acceder o subir información al servidor Web.

No hay comentarios:

Publicar un comentario