Los números de puerto se indican mediante una palabra, 2 bytes (16 bits), por lo que existen 65535. Podemos usar cualquiera de ellos para cualquier protocolo, no obtante existe un organo, la IANA, encargado de la asignación de los mismos, el cual creó tres categorías:
- Los puertos inferiores al 1024; son puertos reservados para el sistema operativo y usados por "protocolos bien conocidos", si queremos usar uno de estos puertos tendremos que arrancar el servicio que los use teniendo permisos de administrador.
- Los comprendidos entre 1024 (0400 en hexadecimal) y 49151 (BFFF en hexadecimal); son denominados "registrados" y pueden ser usados por cualquier aplicación, existe una lista publica en la web del IANA donde ver que protocolo usa cada uno de ellos.
- Los comprendidos entre los números 49152 (C000 en hexadecimal) y 65535 (FFFF en hexadecimal); son denominados dinamico o privados porque son los usados por el sistema operativo cuando una aplicación tiene que conectarse a un servidor y por tanto necesita un puerto por donde salir.