sábado, 25 de octubre de 2008

TCP/IP

El uso de puertos

Diversos programas TCP/IP pueden ejecutarse simultáneamente en Internet (por ejemplo, pueden abrirse diferentes navegadores de manera simultánea o navegar por páginas HTML mientras se descarga un archivo de un FTP). Cada uno de estos programas funciona con un protocolo. A veces el equipo debe poder distinguir las diferentes fuentes de datos.

Por lo tanto, para facilitar este proceso, a cada una de estas aplicaciones puede serle asignada una dirección única en equipo, codificada en 16 bits: un puerto (por consiguiente, la combinación de dirección IP + puerto es una dirección única en el mundo denominada socket).

De esta manera, la dirección IP sirve para identificar de manera única un equipo en la red mientras que el número de puerto especifica la aplicación a la que se dirigen los datos. Así, cuando el equipo recibe información que va dirigida a un puerto, los datos se envían a la aplicación relacionada. Si se trata de una solicitud enviada a la aplicación, la aplicación se denomina aplicación servidor. Si se trata de una respuesta, entonces hablamos de una aplicación cliente.

La función de multiplexación

El proceso que consiste en poder enviar información desde varias aplicaciones a través de una conexión se denomina multiplexación. De la misma manera, la tarea de administrar poniendo en paralelo (por lo tanto compartiendo entre varias aplicaciones) el flujo de datos se denomina demultiplexación.

Estas operaciones se pueden realizar gracias a un puerto, es decir, un número relacionado con un tipo de aplicación que, combinado con una dirección IP, permite determinar de manera única una aplicación que se está ejecutando en un determinado equipo.

Asignaciones predeterminadas


Existen miles de puertos (codificados en 16 bits, es decir que se cuenta con 65536 posibilidades). Es por ello que la IANA (Internet Assigned Numbers Authority [Agencia de Asignación de Números de Internet]) desarrolló una aplicación estándar para ayudar con las configuraciones de red.

  • Los puertos del 0 al 1023 son los "puertos conocidos" o reservados. En términos generales, están reservados para procesos del sistema (daemons) o programas ejecutados por usuarios privilegiados. Sin embargo, un administrador de red puede conectar servicios con puertos de su elección.
  • Los puertos del 1024 al 49151 son los "puertos registrados".
  • Los puertos del 49152 al 65535 son los "puertos dinámicos y/o privados".

A continuación se indican algunos de los puertos conocidos más utilizados:

PuertoServicio o aplicación
21FTP
23Telnet
25SMTP
53Sistema de nombre de dominio
63Whois
70Gopher
79Finger
80HTTP
110POP3
119NNTP

Por lo tanto, un servidor (un equipo conectado que ofrece servicios como FTP, Telnet, etc.) cuenta con números de puerto fijos a los cuales el administrador de red conecta los servicios. Entonces, los puertos del servidor generalmente se encuentran entre 0 y 1023 (rango de valores relacionado con servicios conocidos).

Del lado del cliente, el sistema operativo elige el puerto entre aquéllos que están disponibles de forma aleatoria. Por lo tanto, los puertos del cliente nunca incluirán los puertos que se encuentran entre 0 y 1023, ya que este rango de valores representa a los puertos conocidos.

No hay comentarios: