1. PROTOCOLOS DE INTERNET
Herramientas de Colaboración Digital José Francisco González Un protocolo es
un método estándar que permite la comunicación entre procesos (que
potencialmente se ejecutan en diferentes equipos) y un conjunto de reglas y
procedimientos que deben respetarse para el envío y la recepción de datos a
través de una red. En Internet existen diversos protocolos de acuerdo a la
comunicación y que pertenecen a una sucesión o a un conjunto de protocolos
relacionados entre sí (familias de protocolos de Internet). La familia de
protocolos de Internet es un conjunto de protocolos de red en la que se basa
Internet y que permiten la transmisión de datos entre redes de computadoras.
En ocasiones se le denomina conjunto de protocolos TCP/IP, en referencia a los
dos protocolos más importantes que la componen: Protocolo de Control de
Transmisión (TCP) y Protocolo de Internet (IP), que fueron los dos primeros en
definirse, y que son los más utilizados de la familia. Existen tantos protocolos
en este conjunto que llegan a ser más de 100 diferentes, entre ellos se
destacan los siguientes:
TCP (Transmission-Control-Protocol) El Protocolo de Control de Transmisión es
uno de los protocolos fundamentales en Internet. Fue creado entre los años
1973 - 1974 por Vint Cerf y Robert Kahn. Muchos programas dentro de una red
de datos compuesta por computadoras pueden usar TCP para crear conexiones
entre ellos a través de las cuales puede enviarse un flujo de datos. El protocolo
garantiza que los datos serán entregados en su destino sin errores y en el
mismo orden en que se transmitieron. También proporciona un mecanismo para
distinguir distintas aplicaciones dentro de una misma máquina, a través del
concepto de puerto. Este es uno de los principales protocolos de la capa de
transporte del modelo TCP/IP. En el nivel de aplicación, posibilita la
administración de datos que vienen del nivel más bajo del modelo, o van hacia
él, (es decir, el protocolo IP). Cuando se proporcionan los datos al protocolo IP,
los agrupa en datagramas IP, fijando el campo del protocolo en 6 (para que
sepa con anticipación que el protocolo es TCP). Como es un protocolo orientado
2. a conexión permite que dos máquinas que están comunicadas controlen el
estado de la transmisión. Las principales características del protocolo TCP son
las siguientes: Da soporte a muchas de las aplicaciones más populares de
Internet, incluidas HTTP, SMTP, SSH y FTP. Permite colocar los datagramas
nuevamente en orden cuando vienen del protocolo IP.
También permite el monitoreo del flujo de los datos y así evita la saturación de
la red. Permite que los datos se formen en segmentos de longitud variada para
"entregarlos" al protocolo IP. Permite “multiplexar” los datos, es decir, que la
información que viene de diferentes fuentes (por ejemplo, aplicaciones) en la
misma línea pueda circular simultáneamente. Por último, permite comenzar y
finalizar la comunicación amablemente. IP (Internet Protocol)
El Protocolo de Internet es un protocolo no orientado a conexión usado tanto
por el origen como por el destino para la comunicación de datos a través de una
red de paquetes conmutados. Los datos en una red basada en IP son enviados
en bloques conocidos como paquetes o datagramas (en el protocolo IP estos
términos se suelen usar indistintamente). En particular, en IP no se necesita
ninguna configuración antes de que un equipo intente enviar paquetes a otro
con el que no se había comunicado antes. El Protocolo de Internet provee un
servicio de datagramas no fiable (también llamado del mejor esfuerzo “best
effort”, lo hará lo mejor posible pero garantizando poco). IP no provee ningún
mecanismo para determinar si un paquete alcanza o no su destino y únicamente
proporciona seguridad (mediante checksums o sumas de comprobación) de sus
cabeceras y no de los datos transmitidos. Por ejemplo, al no garantizar nada
sobre la recepción del paquete, éste podría llegar dañado, en otro orden con
respecto a otros paquetes, duplicado o simplemente no llegar. Si se necesita
fiabilidad, ésta es proporcionada por los protocolos de la capa de transporte,
como TCP. Si la información a transmitir (datagramas) supera el tamaño
máximo "negociado" (MTU) en el tramo de red por el que va a circular podrá
ser dividida en paquetes más pequeños, y re ensamblada luego cuando sea
necesario. Estos fragmentos podrán ir cada uno por un camino diferente
dependiendo de cómo estén congestionadas las rutas en cada momento. Las
cabeceras IP contienen las direcciones de las máquinas de origen y destino
3. (direcciones IP), direcciones que serán usadas por los conmutadores de
paquetes (switches) y los enrutadores (routers) para decidir el tramo de red
por el que reenviarán los paquetes. Las direcciones IP son direcciones
numéricas compuestas por cuatro números enteros (4 bytes) entre 0 y 255, y
escritos en el formato xxx.xxx.xxx.xxx. Por ejemplo, 194.153.205.26 es una
dirección IP en formato técnico. Los equipos de una red utilizan estas
direcciones para comunicarse, de manera que cada equipo de la red tiene una
dirección IP exclusiva. El organismo a cargo de asignar direcciones públicas de
IP, es decir, direcciones IP para los equipos conectados directamente a la red
pública de Internet, es el ICANN (Internet Corporation for Assigned Names
and Numbers) que remplaza el IANA desde 1998 (Internet Assigned Numbers
Agency). El IP es el elemento común en la Internet de hoy. El actual y más
popular protocolo de red es IPv4. El IPv6 es el sucesor propuesto de IPv4;
poco a poco Internet está agotando las direcciones disponibles por lo que IPv6
utiliza direcciones de fuente y destino de 128 bits (lo cual asigna a cada
milímetro cuadrado de la superficie de la Tierra la colosal cifra de 670.000
millones de direcciones IP), muchas más direcciones que las que provee IPv4
con 32 bits. Las versiones de la 0 a la 3 están reservadas o no fueron usadas.
La versión 5 fue usada para un protocolo experimental. Otros números han sido
asignados, usualmente para protocolos experimentales, pero no han sido muy
extendidos.
HTTP (HyperText Transfer Protocol)
Desde 1990, el protocolo HTTP (Protocolo de transferencia de hipertexto) es
el protocolo más utilizado en Internet. Es el protocolo usado en cada
transacción de la Web (WWW). Fue desarrollado por el consorcio W3C y la
IETF, colaboración que culminó en 1999. 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,
4. httpd en equipos UNIX). HTTP define la sintaxis y la semántica que utilizan los
elementos software de la arquitectura web (clientes, servidores, proxies) para
comunicarse. Es un protocolo orientado a transacciones y sigue el esquema
peticiónrespuesta entre un cliente y un servidor. Al cliente que efectúa la
petición (un navegador o un spider) se lo conoce como "user agent" (agente del
usuario). A la información transmitida se la llama recurso y se la identifica
mediante una cadena de caracteres denominada dirección URL. Los recursos
pueden ser archivos, el resultado de la ejecución de un programa, una consulta
a una base de datos, la traducción automática de un documento, etc. La
comunicación entre el navegador y el servidor se lleva a cabo e n dos etapas: •
El navegador realiza una solicitud HTTP • El servidor procesa la solicitud y
después envía una respuesta HTTP En realidad, la comunicación se realiza en
más etapas si se considera el procesamiento de la solicitud en el servidor.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna información
sobre conexiones anteriores. El desarrollo de aplicaciones web necesita
frecuentemente mantener estado. Para esto se usan las cookies, que es
información que un servidor puede almacenar en el sistema cliente. Esto le
permite a las aplicaciones web instituir la noción de "sesión", y también permite
rastrear usuarios, ya que las cookies pueden guardarse en el cliente por tiempo
indeterminado.
ARP (Address Resolution Protocol)
El ARP (Protocolo de resolución de direcciones) es un protocolo de nivel de red
responsable de encontrar la dirección hardware (Ethernet MAC) que
corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP
request) a la dirección de difusión de la red (broadcast (MAC = ff ff ff ff ff
ff)) que contiene la dirección IP por la que se pregunta, y se espera a que esa
máquina (u otra) responda (ARP reply) con la dirección Ethernet que le
corresponde. Cada máquina mantiene una caché con las direcciones traducidas
para reducir el retardo y la carga. ARP permite a la dirección de Internet ser
independiente de la dirección Ethernet, pero esto sólo funciona si todas las
máquinas lo soportan. En Ethernet, la capa de enlace trabaja con direcciones
físicas. El protocolo ARP se encarga de traducir las direcciones IP a
5. direcciones MAC (direcciones físicas).Para realizar ésta conversión, el nivel de
enlace utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como
una dirección física MAC. ARP se utiliza en 4 casos referentes a la
comunicación entre 2 hosts: • • • • Cuando 2 hosts están en la misma red y uno
quiere enviar un paquete a otro. Cuando 2 host están sobre redes diferentes y
deben usar un gateway/router para alcanzar otro host. Cuando un router
necesita enviar un paquete a un host a través de otro router. Cuando un router
necesita enviar un paquete a un host de la misma red. El protocolo RARP
(Protocolo de Resolución de Dirección Inversa) realiza la operación inversa y es
mucho menos utilizado. Es un tipo de directorio inverso de direcciones lógicas y
físicas. En realidad, el protocolo RARP se usa esencialmente para las
estaciones de trabajo sin discos duros que desean conocer su dirección física.
El protocolo RARP le permite a la estación de trabajo averiguar su dirección IP
desde una tabla de búsqueda entre las direcciones MAC (direcciones físicas) y
las direcciones IP alojadas por una pasarela ubicada en la misma red de área
local (LAN). Para poder hacerlo, el administrador debe definir los parámetros
de la pasarela (router) con la tabla de búsqueda para las direcciones MAC/IP.
A diferencia del ARP, este protocolo es estático. Por lo que la tabla de
búsqueda debe estar siempre actualizada para permitir la conexión de nuevas
tarjetas de interfaz de red. Este protocolo tiene varias limitaciones. Se
necesita mucho tiempo de administración para mantener las tablas importantes
en los servidores. Esto se ve reflejado aun más en las grandes redes, lo que
plantea problemas de recursos humanos, necesarios para el mantenimiento de
las tablas de búsqueda y de capacidad por parte del hardware que aloja la
parte del servidor del protocolo RARP. Efectivamente, este protocolo permite
que varios servidores respondan a solicitudes, pero no prevé mecanismos que
garanticen que todos los servidores puedan responder, ni que respondan en
forma idéntica. Por lo que, en este tipo de arquitectura, no podemos confiar en
que un servidor RARP sepa si una dirección MAC se puede conectar con una
dirección IP, porque otros servidores ARP pueden tener una respuesta
diferente. Otra limitación del protocolo RARP es que un servidor sólo puede
servir a una LAN.
6. FTP (File Transfer Protocol)
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. Este protocolo 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
SMTP (Simple Mail Transfer Protocol)
El protocolo SMTP (Protocolo simple de transferencia de correo) es un
protocolo de la capa de aplicación. Es un protocolo de red basado en texto
utilizado para el intercambio de mensajes de correo electrónico entre
computadoras u otros dispositivos (PDA's, teléfonos móviles, etc.). Está
definido en el RFC 2821 y es un estándar oficial de Internet que realiza la
transferencia de correo de un servidor a otro mediante una conexión punto a
punto. Éste es un protocolo que funciona en línea, encapsulado en una trama
TCP/IP. El correo se envía directamente al servidor de correo del destinatario.
El protocolo SMTP funciona con comandos de textos enviados al servidor
SMTP (al puerto 25 de manera predeterminada). A cada comando enviado por
el cliente (validado por la cadena de caracteres ASCII CR/LF, que equivale a
presionar la tecla Enter) le sigue una respuesta del servidor SMTP compuesta
por un número y un mensaje descriptivo. SMTP se basa en el modelo cliente-
servidor, donde un cliente envía un mensaje a uno o varios receptores. La
comunicación entre el cliente y el servidor consiste enteramente en líneas de
texto compuestas por caracteres ASCII. El tamaño máximo permitido para
estas líneas es de 1000 caracteres. Las respuestas del servidor constan de un
código numérico de tres digitos, seguido de un texto explicativo. El número va
7. dirigido a un procesado automático de la respuesta por autómata, mientras que
el texto permite que un humano interprete la respuesta. En el protocolo SMTP
todas las órdenes, réplicas o datos son líneas de texto, delimitadas por el
carácter <CRLF>. Todas las réplicas tienen un código numérico al comienzo de la
línea. En el conjunto de protocolos TCP/IP, el SMTP va por encima del TCP.
POP (Post Office Protocol)
Se utiliza el Post Office Protocol (POP3) en clientes locales de correo para
obtener los mensajes de correo electrónico almacenados en un servidor
remoto. La mayoría de los suscriptores de los proveedores de Internet
acceden a sus correos a través de POP3. POP3 está diseñado para recibir
correo, no para enviarlo; le permite a los usuarios con conexiones intermitentes
ó muy lentas (tales como las conexiones por módem), descargar su correo
electrónico mientras tienen conexión y revisarlo posteriormente incluso
estando desconectados. Cabe mencionar que la mayoría de los clientes de
correo incluyen la opción de dejar los mensajes en el servidor, de manera tal
que, un cliente que utilice POP3 se conecta, obtiene todos los mensajes, los
almacena en la computadora del usuario como mensajes nuevos, los elimina del
servidor y finalmente se desconecta. En contraste, el protocolo IMAP permite
los modos de operación conectado y desconectado. Los clientes de correo
electrónico que utilizan IMAP dejan por lo general los mensajes en el servidor
hasta que el usuario los elimina directamente. Esto y otros factores hacen que
la operación de IMAP permita a múltiples clientes acceder al mismo buzón de
correo. La mayoría de los clientes de correo electrónico soportan POP3 ó
IMAP; sin embargo, solo unos cuantos proveedores de internet ofrecen IMAP
como valor agregado de sus servicios. Los clientes que utilizan la opción dejar
mensajes en el servidor por lo general utilizan la orden UIDL ('Unique
IDentification Listing). La mayoría de las órdenes de POP3 identifican los
mensajes dependiendo de su número ordinal del servidor de correo. Esto
genera problemas al momento que un cliente pretende dejar los mensajes en el
servidor, ya que los mensajes con número cambian de una conexión al servidor a
otra. Por ejemplo un buzón de correo contenía 5 mensajes en la última
conexión, después otro cliente elimina el mensaje número 3, el siguiente
8. usuario se topará con que los últimos dos mensajes están decrementados en
uno. El UIDL proporciona un mecanismo que evita los problemas de numeración.
El servidor le asigna una cadena de caracteres única y permanente al mensaje.
Cuando un cliente de correo compatible con POP3 se conecta al servidor utiliza
la orden UIDL para obtener el mapeo del identificador de mensaje. De esta
manera el cliente puede utilizar ese mapeo para determinar qué mensajes hay
que descargar y cuáles hay que guardar al momento de la descarga. Al igual que
otros viejos protocolos de internet, POP3 utilizaba un mecanismo de firmado
sin cifrado. La transmisión de contraseñas de POP3 en texto plano aún se da.
En la actualidad POP3 cuenta con diversos métodos de autenticación que
ofrecen una diversa gama de niveles de protección contra los accesos ilegales
al buzón de correo de los usuarios. Uno de estos es APOP, el cual utiliza
funciones MD5 para evitar los ataques de contraseñas. Mozilla, Eudora, Novell
Evolution así como Mozilla Thunderbird implementan funciones APOP.
TELNET
El protocolo Telnet es un protocolo de Internet estándar que permite conectar
terminales y aplicaciones en Internet. El protocolo proporciona reglas básicas
que permiten vincular a un cliente (sistema compuesto de una pantalla y un
teclado) con un intérprete de comandos (del lado del servidor). El protocolo
Telnet se aplica en una conexión TCP para enviar datos en formato ASCII
codificados en 8 bits, entre los cuales se encuentran secuencias de
verificación Telnet. Por lo tanto, brinda un sistema de comunicación orientado
bidireccional (semidúplex) codificado en 8 bits y fácil de implementar. El
protocolo Telnet se basa en tres conceptos básicos: • • • El paradigma Terminal
virtual de red (NVT); El principio de opciones negociadas; Las reglas de
negociación. Éste es un protocolo base, al que se le aplican otros protocolos del
conjunto TCP/IP (FTP, SMTP, POP3, etc.). Las especificaciones Telnet no
mencionan la autenticación porque Telnet se encuentra totalmente separado de
las aplicaciones que lo utilizan (el protocolo FTP define una secuencia de
autenticación sobre Telnet). Además, el protocolo Telnet no es un protocolo de
transferencia de datos seguro, ya que los datos que transmite circulan en la
red como texto sin codificar (de manera no cifrada). Cuando se utiliza el
9. protocolo Telnet para conectar un host remoto a un equipo que funciona como
servidor, a este protocolo se le asigna el puerto 23. Excepto por las opciones
asociadas y las reglas de negociación, las especificaciones del protocolo Telnet
son básicas. La transmisión de datos a través de Telnet consiste sólo en
transmitir bytes en el flujo TCP (el protocolo Telnet especifica que los datos
deben agruparse de manera predeterminada —esto es, si ninguna opción
especifica lo contrario— en un búfer antes de enviarse. Específicamente, esto
significa que de manera predeterminada los datos se envían línea por línea).
Cuando se transmite el byte 255, el byte siguiente debe interpretarse como un
comando. Por lo tanto, el byte 255 se denomina IAC (Interpretar como
comando). Los comandos se describen más adelante en este documento.