2008-09-22 14 views

Respuesta

418

El número de puerto es un entero sin signo de 16 bits, por lo 65535.

+138

"Oye, Jim, ¿cuántos puertos deberíamos apoyar?" "Solo haga 16 bits para una buena medida. Nadie tendrá más de unos cientos abiertos al mismo tiempo, como máximo". – JessieArr

+0

@JessieArr y ya que parece que está sacando una hoja del libro de bill gate con su famosa línea sobre RAM, que fue una afirmación hecha hace mucho tiempo de que 640 KB de RAM fácilmente serían suficientes en el futuro, y por supuesto que no es ... ¿También intentas sugerir que piensas que 16 bits/65536 no es suficiente? (¿Y cómo tener unos pocos cientos de puertos abiertos hace que los puertos 65536 no sean suficientes?) – barlop

+1

@barlop. Estaba sugiriendo que cuando crearon puertos por primera vez, una sola máquina con cientos de conexiones probablemente fue considerada como el peor de los casos. Pero hoy en día los servidores web, los dispositivos de red, etc. definitivamente pueden competir contra las limitaciones de recuento de puertos. Microsoft escribió un artículo interesante de Technet sobre cómo diagnosticarlo y evitarlo en entornos Windows: https://blogs.technet.microsoft.com/askds/2008/10/29/port-exhaustion-and-you-or-why-the -netstat-tool-is-your-friend/ – JessieArr

117

El número de puerto más grande es un unsigned short 2^16-1: 65535

Un puerto registrada es uno asignado por el Internet Corporación de Nombres y Números Asignados (ICANN) a un cierto uso. Cada puerto registrado está en el rango 1024-49151.

Desde el 21 de marzo de 2001, la agencia de registro es ICANN; antes de ese momento era IANA.

Los puertos con números inferiores a los de los puertos registrados se denominan puertos bien conocidos; puerto con números mayores que los de los puertos registrados se denominan puertos dinámicos y/o privados.

Source

58

lo que tengo entendido, sólo se debe utilizar un máximo de 49151, a partir de 49152 hasta 65535 están reservados para Ephemeral ports

+6

intervalo de puerto efímero varía según el sistema. Estoy ejecutando Ubuntu Linux con 3.19.0-43-kernel genérico. '$ cat/proc/sys/net/ipv4/ip_local_port_range' da como resultado la salida' 32768 \t 61000'. En cuanto a si uno debería o no debería usar un puerto en el rango de puerto efímero de un sistema, sospecho que la mayoría, si no todos, los sistemas operativos de red actuales pasarán por alto un puerto que ya está en uso. –

35

Sólo un seguimiento a smashery La respuesta de El rango de puertos efímeros (al menos en Linux, y sospecho que otros Unices también) no es fijo. Esto se puede controlar escribiendo a /proc/sys/net/ipv4/ip_local_port_range

La única restricción (en lo que respecta a IANA) es que los puertos por debajo de 1024 están designados como puertos bien conocidos. Los puertos de arriba son de uso gratuito. A menudo encontrará que los puertos por debajo de 1024 están restringidos al acceso de superusuario, creo que por esta misma razón.

3

por término numérico es 2^16 - 1 Rango de lo permitido es de 65.535

+3

Un rango significa de un número a otro. Decir "rango permitido es xxxx" donde xxxx es un número, es una tontería – barlop

2

gama permitido es de 1 a 65.535, siendo así más alto 65535

+0

¿dónde dice que 0 no está permitido y 1 es? – barlop

+1

@bartop RFC 793. – EJP

1

Numéricamente que debería ser 2^16 - 1 Rango de lo permitido es 65535.

7

acuerdo con RFC 793, el puerto es un unsigned int 16 bits.

Esto significa que el rango es de 0 - 65535.

Sin embargo, dentro de ese intervalo, los puertos 0 - 1,023 mil son generalmente reservados para fines específicos. Digo en general porque, además de puerto 0, por lo general hay ninguna aplicación de la reserva 0-1023. TCP/UDP implementaciones por lo general no hacen cumplir las reservas aparte de 0. Usted puede, si lo desea, correr hasta el puerto TLS de un servidor web en el puerto 80, o 25, o 65 535 en lugar de la norma 443. Del mismo modo, incluso aunque es la norma que los servidores SMTP escucha en el puerto 25, que se puede ejecutar en 80, 443, u otros.

más implementaciones de reserva 0 para un propósito específico - Asignación de puertos al azar.Entonces, en la mayoría de las implementaciones , decir "escuchar en el puerto 0" en realidad significa "no me importa qué puerto utilizo, solo dame un puerto aleatorio sin asignar para escuchar".

Por lo que cualquier limitación en la utilización de un puerto en el rango 0-65535, incluyendo el 0, el rango de reservas efímera etc, es aplicación (es decir, OS/conductor) específica, sin embargo, todos, incluyendo el 0, son puertos válidos en el RFC 793.

Cuestiones relacionadas