Au départ ça a été conçu comme ça, et les RFC ont conservé cette idée poussiéreuse.
Mais cette idée s'est auto-détruite :
1) les ports<1024 sont consacrés aux serveurs
2) les OS de la famille Unix réservent ces ports à root
2b) les lusers (lame users, utilisateurs normaux) n'y ont donc plus accès
3) les lusers utilisent les ports>1024 pour les serveurs
4) des allocations de ports célèbres sont faites >1024
5) le principe du 1) est défait
il n'y a jamais eu 1). Tu confonds serveur et service et système.
A départ il n'y avait meme 1024 mais que les 256 premiers ports de well-known d'ailleurs (0-255) ( voir la rfc790 de 1981 ou FTP est appelé "New File Transfer" et le web n'existe pas ).
Par la suite cela a été étendu a 1024 puis redéfini en 1994 par la rfc1700 elle meme rendu obsolete en 2002 par une base en ligne (rfc3232).
A un moment IANA ne s'occupait que de <1024 puis c'est monté au <49152. Les pratiques actuellement en vigueur sont définies dans la rfc6335 de 2011, donc assez récente. Il n'y a pas de "conservation d'idées poussiéreuses". Ca évolue et s'adapte aux usages et pratiques.
4) non plus. tout les "ports célèbres" sont <1024
On dirait que tu confond 'serveur' au sens applicatif/fonctionnalité (comme un serveur web ou ftp) et 'serveur' au sens de tcp/udp, a savoir l' "écoute" (listen(2)) sur un port tcp ou udp. C'est ce deuxième sens que l'IANA et les RFC utilisent et d'ailleurs le mot 'server' n'est pas employé mais "service".
Le sens est simple:
0-1023: ports systèmes assignés par l'IANA (system ports)
1024-49151: ports enregistrés assignés par l'IANA (registered ports)
49152-65535: port éphémères non gérés par l'IANA (dynamic ports)
Tout autre mot genre 'celebre, serveur, etc' est a éviter car induit a confusion et n'a plus de sens.
Le but est simple:
fournit un référentiel commun et universel de nommage et un abritrage pour interopérabilité.
Ce sont des 'recommendations', n'importe qui est libre d’appelé 'web' son protocol qui utilise le port tcp '999' mais il ne sera pas reconnu et compris par les autres.
l'IANA s'occupe du nommage et de l'orthographe précise ("web" ou pas "Web" ou pas 'oueb') et la correspondance entre nom et numéro port via des procédures d'attributions.
La distinction entre "system ports" (<1024) et "registered ports" (1024-49151) est juste que les procédures et contraintes d'attribution sont différentes et plus souples pour >1024. L'aspect système/root n'est pas une considération de l'IANA mais un héritage du passé de la famille Unix (qui elle a conservé des idées poussiéreuses). C'est propre a l'implèmentation et cela l'IANA s'en tape.
bref c'est simple et pas compliqué si distingue correctement les choses et si on se met a jour niveau RFC a prendre en compte.