Aunque esta pregunta ya ha sido marcada como respondida, quería abordar algunas de las preguntas adicionales formuladas en el OP.
¿Son estos puertos objetos físicos?
No hay puertos no son objetos físicos.
Un número de puerto es un entero sin signo de 16 bits, lo que significa que el rango de puertos disponibles para usar es de 1 a 65535 (el número de puerto 0 está reservado y no se puede usar). Un proceso asocia sus canales de entrada o salida a través de enchufes de Internet, un tipo de descriptor de archivo, con un protocolo de transporte, un número de puerto y una dirección IP. Este proceso se conoce como enlace y permite enviar y recibir datos a través de la red.
¿Son algo integrado en parte de mi computadora? ¿Son incluso algo físico? O escrito en código? ¿Dónde está este código? ¿El sistema operativo? ¿Qué es realmente un puerto?
El software de red del sistema operativo tiene la tarea de transmitir datos salientes de todos los puertos de la aplicación a la red, y reenviar los paquetes de red entrantes a un proceso haciendo coincidir la dirección IP y el número de puerto del paquete.
Solo un proceso puede vincularse a una combinación de puerto y dirección IP específica utilizando el mismo protocolo de transporte. Las fallas comunes de la aplicación, a veces llamadas conflictos de puerto, ocurren cuando varios programas intentan vincularse a los mismos números de puerto en la misma dirección IP usando el mismo protocolo.
El párrafo anterior es clave para comprender por qué los puertos / protocolos se usan en redes. Si no tuviéramos una forma de especificar el protocolo, que transmite los datos a través de un número de puerto apon acordado, no podría hacer más de 1 cosa a la vez (verifique su correo electrónico y use la web) porque su computadora tendría no hay forma de diferenciar entre los datos de su cliente de correo electrónico y los datos del sitio web que está navegando.
¿Cuántos puertos hay?
Los números de puerto se asignan de varias maneras, según tres rangos:
Puertos conocidos / del sistema (0-1023): esta gama de puertos los utilizan los procesos del sistema que proporcionan tipos de servicios de red ampliamente utilizados (HTTP / 80, HTTPS / 443, Telnet / 21, SSH / 22)
Puertos registrados / de usuario (1024-49151): el rango de números de puerto de 1024 a 49151 son los puertos registrados. IANA los asigna para un servicio específico previa solicitud de una entidad solicitante. (Webmin / 10000, HTTP Proxy / 8080, Protocolo de escritorio remoto / 3389, etc.)
Puertos efímeros / dinámicos / privados (49152-65535): el rango 49152–65535 contiene puertos dinámicos o privados que no se pueden registrar con IANA. Este rango se utiliza para fines personalizados o temporales y para la asignación automática de puertos efímeros.
¿Puedo aumentar o disminuir el número de puertos?
Con respecto a poder aumentar el número de puertos disponibles, no puede asignar un puerto superior a 65535 debido a las matemáticas que permiten que la red funcione (binario), por lo que la respuesta a esta pregunta es no, no puede aumentar el número total de puertos disponibles puertos superiores a 65535.
¿Qué son los protocolos?
Dentro de la informática, un protocolo de comunicaciones es un sistema de reglas digitales para el intercambio de mensajes dentro o entre computadoras. Cuando los mensajes se intercambian a través de una red informática, el sistema de reglas se denomina protocolo de red. Un protocolo es básicamente un conjunto acordado de instrucciones / comandos / llamadas que dos dispositivos en red pueden comunicar. ¿Piensa si no hubiéramos acordado protocolos y servidores web que hubieran enviado datos aleatoriamente a los navegadores web que el navegador no sabía con qué hacer? Afortunadamente, tenemos HTTP y cada navegador web creado ha incorporado el software para que pueda comunicarse con cualquier servidor web que también hable el mismo idioma (HTTP).
Me imagino que son algún tipo de código ... ¿Puedes crear tu propio protocolo? ¿Qué idioma usas para crear un protocolo?
Sí, puedes crear tus propios protocolos. Los protocolos están escritos en una amplia variedad de idiomas. No soy un desarrollador de software, pero estoy bastante seguro de que, siempre que el idioma que esté utilizando tenga bibliotecas que le permitan escribir software que pueda comunicarse a través de TCP / IP (hay otros conjuntos de protocolos, pero TCP / IP es el más ampliamente utilizado) puede usar ese lenguaje para escribir un protocolo. El lenguaje de programación 'C' parece ser el más utilizado para escribir protocolos. Esto se debe al hecho de que muchos de los primeros protocolos de red se desarrollaron en UNIX en la década de 1970 y C resulta ser el lenguaje en el que está escrito UNIX.
¿Cómo se obtiene un puerto específico para ejecutar un protocolo específico?
Esto difiere bastante entre los sistemas operativos. Por ejemplo, para cambiar el número de puerto en el que se ejecuta el Protocolo de escritorio remoto en Windows, debe editar el registro. En Linux, muchos de los servicios de red se pueden configurar directamente desde un archivo .conf para un servicio de red en particular.
¿Cómo define o inventa un nuevo protocolo?
Vea https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ para una publicación de blog de alguien que recientemente ha desarrollado un nuevo protocolo de red y qué tipo de cosas tuvo que hacer por el camino.