En realidad, sería un cambio masivo tratar de hacer esto dentro de TCP.
Aquí está el formato de paquete TCP:
- ¿Puede un operador de sitio web redirigir una computadora específica a una IP diferente?
- ¿Qué sucede si cambio mi IP estática?
- ¿Cómo cambiar / falsificar una dirección MAC? Por qué
- ¿Por qué el ISP envía paquetes incluso cuando la navegación por Internet no está activada?
- ¿Qué es el filtrado de direcciones Mac?
Todos los sistemas operativos y todos los dispositivos de red compatibles con L4 que se encuentran en Internet o son parte de este usan este formato. El tamaño del encabezado es fijo, lo que permite un uso óptimo de los recursos de procesamiento y memoria.
Sin embargo, si miramos lo que se necesitaría … Primero, tendría que haber algún mecanismo de búsqueda para convertir esa cadena en algún valor, al igual que DNS hace hoy. Se habría implementado un servidor ampliamente distribuido, de alto rendimiento y alta disponibilidad en todo el mundo. Tendría que mantenerse y actualizarse cuando se introdujeran nuevos nombres de puertos, y alguien, o algún grupo, tendría que examinar, aceptar / rechazar nuevos nombres, la sintaxis completa y asegurarse de que esta base de datos se actualizara globalmente.
En teoría, podría cambiar los puertos de origen y destino de sus valores binarios de longitud fija actuales (0–65535), en un formato de longitud variable que contuviera el nombre_puerto. Eso sería sencillo si no tuviera que considerar la compatibilidad con versiones anteriores, pero eso significaría cambiar todos los puntos finales TCP y dispositivos de red con reconocimiento L4 en todo Internet simultáneamente. Eso podría tener implicaciones de rendimiento masivas ya que la tecnología de reenvío de paquetes está optimizada para campos de longitud fija en el encabezado para que el paquete pueda analizarse y actuar de manera eficiente.
Tendría que haber algún mecanismo de búsqueda para convertir esa cadena en algún valor, al igual que DNS hace hoy. Se habría implementado un servidor ampliamente distribuido, de alto rendimiento y alta disponibilidad en todo el mundo. Tendría que mantenerse y actualizarse cuando se introdujeran nuevos nombres de puertos, y alguien, o algún grupo, tendría que examinar, aceptar / rechazar nuevos nombres, la sintaxis completa y asegurarse de que esta base de datos se actualizara globalmente.
Alternativamente, la pila TCP en el sistema operativo podría tener que actualizarse para aceptar tanto el formato actual como el nuevo formato. Con el nuevo formato, tendría que crear una máquina de estado donde se solicita una resolución de nombre a la base de datos antes mencionada, y tratar con todas las situaciones en las que una respuesta tarda demasiado o se pierde, o el nombre_puerto no existe, y comunicarse adecuadamente a través de API con la aplicación de llamada. La pila TCP entonces solo enviaría paquetes formateados en el formato actualmente definido. Dado que TCP está bastante cerca de ser omnipresente, esto parece un cambio bastante grande de comportamiento y expectativas entre los puntos finales TCP.
Si esto fuera realmente importante de implementar, tendría más sentido para mí implementar esto como un calce por encima de TCP. La capa de calce resuelve el nombre_puerto en un número_puerto y puede almacenar en caché esta información, ya que realmente no cambia con frecuencia. Entonces, la pila TCP estándar se puede usar sin cambios.
No me parece que valga la pena, pero esa es solo mi opinión.