Puerto/Puertos TCP/IP: qué es, cómo funciona
Los puertos TCP/IP son canales virtuales que permiten que múltiples aplicaciones o servicios se comuniquen a través de una red utilizando el protocolo TCP/IP. El modelo TCP/IP es la base de la conectividad en Internet y se compone de dos protocolos principales: el Protocolo de Control de Transmisión (TCP) y el Protocolo de Internet (IP).
¿En qué consiste el uso de puertos TCP/IP?
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.
¿Qué es 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.
¿Qué son las asignaciones predeterminadas?
Existen miles de puertos (codificados en 16 bits, es decir que se cuenta con 65.536 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 1.023 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 1.024 al 49.151 son los puertos registrados. Los puertos del 49.152 al 65.535 son los puertos dinámicos y/o privados.
A continuación se indican algunos de los puertos conocidos más utilizados:
Puerto | Servicio o aplicación |
---|---|
21 | FTP |
23 | Telnet |
25 | SMTP |
53 | Sistema de nombre de dominio |
63 | Whois |
70 | Gopher |
79 | Finger |
80 | HTTP |
110 | POP3 |
119 | NNTP |
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 1.023 (rango de valores relacionado con servicios conocidos).
Del lado del cliente, el sistema operativo elige el puerto entre aquellos 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 1.023, ya que este rango de valores representa a los puertos conocidos.