Protocolos




¿Qué es un protocolo?

En informática, un protocolo es un conjunto de reglas usadas por computadoras para comunicarse unas con otras a través de una red. Un protocolo es una regla o estándar que controla o permite la comunicación en su forma más simple, un protocolo puede ser definido como las reglas que dominan la sintaxis, semántica y sincronización de la comunicación. Los protocolos pueden ser implementados por hardware, software, o una combinación de ambos. A su más bajo nivel, un protocolo define el comportamiento de una conexión de hardware.



HTTP  
Desde 1990, el protocolo HTTP (Protocolo de transferencia de hipertexto) es el protocolo más utilizado en Internet. La versión 0.9 sólo tenía la finalidad de transferir los datos a través de Internet (en particular páginas Web escritas en HTML). La versión 1.0 del protocolo (la más utilizada) permite la transferencia de mensajes con encabezados que describen el contenido de los mensajes mediante la codificación MIME.

El propósito del protocolo HTTP es permitir la transferencia de archivos (principalmente, en formato HTML). Entre un navegador (el cliente) y un servidor web (denominado, entre otros, httpd en equipos UNIX) localizado mediante una cadena de caracteres denominada dirección URL.

Una solicitud HTTP es un conjunto de líneas que el navegador envía al servidor. Incluye:
Una línea de solicitud: es una línea que especifica el tipo de documento solicitado, el método que se aplicará y la versión del protocolo utilizada. La línea está formada por tres elementos que deben estar separados por un espacio:
  1. El método
  2. La dirección URL
  3. La versión del protocolo utilizada por el cliente (por lo general, HTTP/1.0)

Los campos del encabezado de solicitud: es un conjunto de líneas opcionales que permiten aportar información adicional sobre la solicitud y/o el cliente (navegador, sistema operativo, etc.). Cada una de estas líneas está formada por un nombre que describe el tipo de encabezado, seguido de dos puntos (:) y el valor del encabezado.
El cuerpo de la solicitud: es un conjunto de líneas opcionales que deben estar separadas de las líneas precedentes por una línea en blanco y, por ejemplo, permiten que se envíen datos por un comando POST durante la transmisión de datos al servidor utilizando un formulario.

HTTPS
El protocolo de Transferencia de Hiper-Texto (HTTPS) es la versión segura del http (Hyper Text Transfer Protocol) que todos conocemos y utilizamos habitualmente. La diferencia es que, con HTTP podemos desarrollar actividades ecommerce, ya que permite realizar transacciones de forma segura.
En los navegadores comunes, como Firefox o Explorer, cuando estamos empleando un protocolo https podemos ver el icono de un candado, que aparece en la barra principal de nuestro navegador. Además, en la barra de direcciones podremos ver que “http://” será sustituido por “https://”.
¿Y cómo funciona la conexión exactamente? ¿Por qué es más segura? Básicamente, lo que ocurre es que la página Web codifica la sesión con certificado digital. De este modo, el usuario tiene ciertas garantías de que la información que envíe desde dicha página no podrá ser interceptada y utilizada por terceros.
Estos certificados de seguridad son conocidos como SSL. Cuando estos estás instalados en la página Web veremos el candado del que hablábamos anteriormente. Por otro lado, si están instalados Certificados de Validación Extendida, los usuarios, además del candado, podremos ver que la barra de URL’s del navegador toma un fondo verdoso. (Siempre que estemos utilizando las últimas versiones de Firefox, Explorer u Opera).

FTP
El protocolo FTP (Protocolo de transferencia de archivos) es, como su nombre lo indica, un protocolo para transferir archivos.
La implementación del FTP se remonta a 1971 cuando se desarrolló un sistema de transferencia de archivos (descrito en RFC141) entre equipos del Instituto Tecnológico de Massachusetts (MIT, Massachusetts Institute of Technology). Desde entonces, diversos documentos de RFC (petición de comentarios) han mejorado el protocolo básico, pero las innovaciones más importantes se llevaron a cabo en julio de 1973.
Actualmente, el protocolo FTP está definido por RFC 959 (Protocolo de transferencia de archivos (FTP) - Especificaciones).
El protocolo FTP define la manera en que los datos deben ser transferidos a través de una red TCP/IP.
El objetivo del protocolo FTP es:
  • Permitir que equipos remotos puedan compartir archivos
  • Permitir la independencia entre los sistemas de archivo del equipo del cliente y del equipo del servidor
  • Permitir una transferencia de datos eficaz
El protocolo FTP está incluido dentro del modelo cliente-servidor, es decir, un equipo envía órdenes (el cliente) y el otro espera solicitudes para llevar a cabo acciones (el servidor).
Durante una conexión FTP, se encuentran abiertos dos canales de transmisión:
  • Un canal de comandos (canal de control)
  • Un canal de datos
Por lo tanto, el cliente y el servidor cuentan con dos procesos que permiten la administración de estos dos tipos de información:
  • DTP (Proceso de transferencia de datos) es el proceso encargado de establecer la conexión y de administrar el canal de datos. El DTP del lado del servidor se denomina SERVIDOR DE DTP y el DTP del lado del cliente se denomina USUARIO DE DTP.
  • PI (Intérprete de protocolo) interpreta el protocolo y permite que el DTP pueda ser controlado mediante los comandos recibidos a través del canal de control. Esto es diferente en el cliente y el servidor:
  • El SERVIDOR PI es responsable de escuchar los comandos que provienen de un USUARIO PI a través del canal de control en un puerto de datos, de establecer la conexión para el canal de control, de recibir los comandos FTP del USUARIO PI a través de éste, de responderles y de ejecutar el SERVIDOR DE DTP.
  • El USUARIO PI es responsable de establecer la conexión con el servidor FTP, de enviar los comandos FTP, de recibir respuestas del SERVIDOR PI y de controlar al USUARIO DE DTP, si fuera necesario.

Cuando un cliente FTP se conecta con un servidor FTP, el USUARIO PI inicia la conexión con el servidor de acuerdo con el protocolo Telnet. El cliente envía comandos FTP al servidor, el servidor los interpreta, ejecuta su DTP y después envía una respuesta estándar. Una vez que se establece la conexión, el servidor PI proporciona el puerto por el cual se enviarán los datos al Cliente DTP. El cliente DTP escucha el puerto especificado para los datos provenientes del servidor.
Es importante tener en cuenta que, debido a que los puertos de control y de datos son canales separados, es posible enviar comandos desde un equipo y recibir datos en otro. Entonces, por ejemplo, es posible transferir datos entre dos servidores FTP mediante el paso indirecto por un cliente para enviar instrucciones de control y la transferencia de información entre dos procesos del servidor conectados en el puerto correcto.




DNS
Este protocolo se utiliza para poder recordar de manera sencilla las direcciones IP. De esta manera surge el concepto de nombres de dominio. Gracias a esto podemos asignar a una dirección IP un nombre, además de que es más fiable porque la dirección IP de un servidor puede cambiar pero el nombre no lo hace. Podemos decir entonces que el DNS es un sistema jerárquico y distribuido que permite traducir nombres de dominio en direcciones IP y viceversa. Otro uso común de este es para los servidores de correo a través del nombre de dominio de correo como por ejemplo “www.Hotmail.com“. Dado un dominio puede leerse de derecha a izquierda por ejemplo “www.google.es” seria “.es” el dominio más alto.
Cada dominio es como si terminase con un “.” Por eso nuestro dominio seria “www.google.es“y el punto al final es el elemento raíz de nuestro árbol y lo que indica al cliente que debe de empezar la búsqueda en los root Server. Estos root Server son los que tienen los registros TLD que son los dominios de nivel superior ósea los que no pertenecen a otro dominio, como son “com, org, net, es, etc.” Actualmente hay 13 TLD en todo el mundo y 10 de ellos se encuentran en estados unidos, uno en Estocolmo, otro en Japón, y el último en Londres. Si alguna catástrofe hiciese que estos 13 servidores dejasen de operar provocaría un gran apagón de Internet y causaría estragos a nivel mundial.
Estos servidores dice que dominios de primer nivel existen y cuáles son sus servidores de nombres recursivamente los servidores de esos dominios dicen que subdominios existen y cuales don sus servidores. Cada componente de dominio incluyendo la raíz, tiene un servidor primario y varios secundarios. Todos tienen la misma autoridad para responder por ese dominio, pero el primario es el único sobre el que se pueden hacer modificaciones de manera que los secundarios son reaplicas del primario. Casi todos los servidores de nombres utilizan un software llamado Bind que es un software de libre distribución utilizado por la mayoría de sistemas Unix. Una herramienta útil que encontramos para probar si un dominio se resuelve correctamente es el comando “nslookup“. Se trata de un cliente DNS que nos sirve para obtener direcciones IP a través del dominio y viceversa.