Puerto efímero

De Wikipedia, la enciclopedia libre

Un puerto efímero es un puerto de protocolo de transporte de corta duración para comunicaciones de Protocolo de internet (IP). Los puertos efímeros se asignan automáticamente desde un rango predefinido en la familia de protocolos de internet. Un puerto efímero es usado de manera típica por el protocolo de control de transmisión (TCP), el protocolo de datagramas de usuario (UDP) o el protocolo de transmisión de control de flujo (SCTP) y los utilizan en la asignación de puerto para el extremo del cliente de una comunicación cliente-servidor a un puerto bien conocido en un servidor.

En los servidores, los puertos efímeros también se pueden usar como asignación de puerto para una de las puntas en una comunicación. Esto se hace para continuar las comunicaciones con un cliente que inicialmente se conectó a uno de los puertos bien conocidos de escucha (de servicio del servidor). Las aplicaciones de Protocolo de transferencia de archivos (FTP) y de llamada a procedimiento remoto (RPC) son dos ejemplos que pueden comportarse de esta manera. Tenga en cuenta que el término "servidor" aquí incluye estaciones de trabajo que ejecutan servicios de red que reciben conexiones iniciadas desde otros clientes (como por ejemplo, Protocolo de escritorio remoto).

Las asignaciones son temporales y solo son válidas durante la sesión de comunicación. Después de la finalización (o agotamiento del tiempo de espera) de la sesión de comunicación, los puertos estarán disponibles para su reutilización.[nota 1]​ Dado que los puertos se utilizan por solicitud, también se denominan puertos dinámicos.

Rango numérico[editar]

La Internet Assigned Numbers Authority (IANA) sugiere el rango desde 49152 hasta 65535 (215+214 hasta 216−1) para los puertos dinámicos o puertos privados.[1]

Muchos núcleos Linux utilizan el rango de puertos desde 32768 a 61000.[nota 2]FreeBSD ha utilizado el rango de puertos de la IANA desde la versión 4.6. Versiones previas, incluyendo Berkeley Software Distribution (BSD), usa los puertos 1024 a 5000 como puertos efímeros.[2][3]

Los sistemas operativos Microsoft Windows desde XP usan el rango numérico de puertos que van desde 1025–5000 como puertos efímeros por defecto.[4]Windows Vista, Windows 7 y Windows Server 2008 utilizan por defecto el rango señalado por la IANA.[5]Windows Server 2003 usa el rango 1025–5000 por defecto, hasta que fue emitida la actualización de seguridad MS08-037 emitida en 2008, después de la cual al ser instalada utiliza el rango de la IANA.[6]​ Windows Server 2008 con Exchange Server 2007 instalado tiene por defecto el rango 1025–60000.[5]​ Adicionalmente al rango por defecto, todas las versiones de Microsoft Windows (desde Windows 2000) tienen la opción de especificar un rango personalizado que esté ubicado entre 1025 y 65535.[7]

Características de configuración[editar]

Si se utiliza cierto software en el servidor que utilice rangos de puertos personalizados no efímeros para iniciar algunas conexiones adicionales, debe garantizarse mediante la configuración que este rango de puertos personalizados y el rango de puertos efímeros no se superpongan.

Véase también[editar]

Notas[editar]

  1. La mayoría de las implementaciones pueden simplemente incrementar el último número de puerto utilizado hasta que se agote el intervalo de puertos efímero y se reinicie el ciclo.
  2. El rango numérico efectivo se puede acceder en la ruta /proc file system at node /proc/sys/net/ipv4/ip_local_port_range

Referencias[editar]

  1. Joe Touch; Eliot Lear; Allison Mankin; Markku Kojo; Kumiko Ono; Martin Stiemerling; Lars Eggert; Alexey Melnikov; Wes Eddy; Alexander Zimmermann; Brian Trammell; Jana Iyengar; Allison Mankin; Michael Tuexen; Eddie Kohler; Yoshifumi Nishida (2 de agosto de 2019). «Service Name and Transport Protocol Port Number Registry» (html). IANA (en inglés). Archivado desde el original el 5 de agosto de 2019. Consultado el 4 de agosto de 2019. «Port numbers are assigned in various ways, based on three ranges: System Ports (0-1023), User Ports (1024-49151), and the Dynamic and/or Private Ports (49152-65535); the difference uses of these ranges is described in [RFC6335].» 
  2. UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI [Programación de red UNIX, volumen 1, segunda edición: API de red, sockets y XTI] (en inglés). Prentice Hall. 1998. pp. 42-43. ISBN 0-13-490012-X. 
  3. Mike Gleason (2001). «The Ephemeral Port Range». Consultado el 4 de agosto de 2019. «note that the Linux 2.4 kernel will default the range of 32768 through 61000 if adequate kernel memory is available». 
  4. «The Cable Guy - December 2005 | Windows TCP/IP Ephemeral, Reserved, and Blocked Port Behavior» (html). Microsoft Technet blog (en inglés). 1 de diciembre de 2005. Archivado desde el original el 31 de octubre de 2007. Consultado el 4 de agosto de 2019. «The maximum value of an ephemeral TCP or UDP port number that is assigned by Windows Sockets in Microsoft Windows XP or Windows Server 2003 to an application is controlled by the MaxUserPort registry setting, which has a default value of 5000. Ephemeral ports begin with port number 1025. Therefore, by default, Windows XP or Windows Server 2003 assigns an application that performs a wildcard bind a number from 1025 to 5000.» 
  5. a b «The default dynamic port range for TCP/IP has changed in Windows Vista and in Windows Server 2008» (html). Microsoft Support (en inglés). 24 de julio de 2010. Archivado desde el original el 4 de junio de 2011. Consultado el 4 de agosto de 2019. «To comply with Internet Assigned Numbers Authority (IANA) recommendations, Microsoft has increased the dynamic client port range for outgoing connections in Windows Vista and in Windows Server 2008. The new default start port is 49152, and the default end port is 65535. This is a change from the configuration of earlier versions of Windows that used a default port range of 1025 through 5000.» 
  6. «You experience issues with UDP-dependent network services after you install DNS Server service security update 953230 (MS08-037)» (html) (en inglés). Archivado desde el original el 14 de septiembre de 2008. Consultado el 4 de agosto de 2019. 
  7. «When you try to connect from TCP ports greater than 5000 you receive the error 'WSAENOBUFS (10055)'» (html). Microsoft Help and Support (en inglés). 21 de diciembre de 2005. Archivado desde el original el 8 de mayo de 2006. Consultado el 4 de agosto de 2019. «This parameter controls the maximum port number that is used when a program requests any available user port from the system. Typically , ephemeral (short-lived) ports are allocated between the values of 1024 and 5000 inclusive.» 

Enlaces externos[editar]