Pourquoi n'y a-t-il que 65 535 ports et en aurons-nous jamais plus? [fermé]


20

Je comprends le raisonnement d'origine derrière 65535 ports par adresse IP: c'est le nombre le plus élevé qui peut être représenté par un nombre de 16 bits ou de 2 octets, et il n'était pas concevable que les ordinateurs puissent jamais épargner plus que pour quelque chose d'aussi banal que les ports, ou quelque chose comme ça. Les ports peuvent en fait avoir besoin de plus de 1 bit chacun, car chaque port peut être ouvert, bloqué, "furtif" ou autres, mais pour une raison quelconque, les gens disent toujours que les ports fonctionnent avec un nombre de 16 bits. Si j'ai une partie de ce problème, dites-le-moi.

Cependant, dans un monde où la plupart des ordinateurs sont 32 bits et ont plus qu'assez de mémoire / d'espace pour épargner quelques ports supplémentaires, pourquoi avons-nous encore autant de ports? Nous sommes en train de passer à HTML5, HTTP2.0, IPv6 et à d'autres versions définitivement différentes, alors pourquoi pas la même chose avec les ports? Beaucoup d'entre eux autorisent beaucoup plus de 16 bits; en fait, IPv6 autorise 16 octets ! Je comprends que beaucoup d'entre eux sont dans des années, voire des décennies, mais pourquoi tout le bavardage sur ces mises à niveau, et même pas un coup d'œil sur plus de ports (dont moi, un amateur, ai entendu parler)?

Les deux seules raisons que je peux voir pour conserver 65535 ports sont de laisser les grandes entreprises conserver leurs anciens systèmes hérités, ce qui n'est guère une bonne raison, et la montée des systèmes embarqués, dont beaucoup sont minuscules, avec des quantités minuscules d'espace, de mémoire, etc. , bientôt sur Internet, dont beaucoup font partie de l'Internet des objets. Avec ces systèmes embarqués, nous pourrions peut-être leur laisser moins de ports, et lorsqu'un gros ordinateur de bureau essaie de se connecter à un, on pourrait dire qu'il est doux, car le système embarqué bébé ne peut utiliser que ~ 65000 ports.

D'un autre côté, je peux penser à quelques bonnes raisons d'avoir plus de ports, la plupart ayant à voir avec NAT et d'autres systèmes où plus d'une adresse IP privée doit communiquer avec le reste de l'Internet en utilisant la même adresse IP publique, comme la montée des VM sur le même ordinateur, toutes utilisant la même adresse IP. Techniquement, chaque adresse IP de machine virtuelle possède 65 535 ports, mais en réalité, ils utilisent tous les ports de l'hôte. Dans de tels cas, ces systèmes pourraient manquer de ports assez rapidement. Un autre cas spécifique est le NAT de classe opérateur, où une adresse IP publique est traduite en plusieurs adresses IP privées, et au moins une de ces adresses privées est traduite en un autre ensemble d'adresses encore plus privées. Encore une fois, chaque adresse IP privée a techniquement son propre ensemble de 65 535 ports, mais c'est une illusion, comme lorsque les données sortent sur Internet public, ils utilisent les ports IP publics. Je ne suis pas sûr que nous ayons nécessairement besoin de NAT, en soi, mais nous aurons besoin de quelque chose comme ça pour conserver les adresses, même avec les quantités massives qu'IPv6 nous donnera. Lorsque nous avons des cas comme ceux-ci, pouvons-nous même nous permettre de ne pas avoir plus de 65 535 ports?

Alors, pourquoi n'avons-nous encore que 65 535 ports, et est-il prévu d'en autoriser davantage?

PS Je sais qu'il y a techniquement 65 536 ports par adresse IP, mais le port 0 n'est généralement pas utilisé pour quoi que ce soit.


Je pense que vous devez poser à l'IANA ces questions, elles contrôlent les ressources. Je pense que vous devez également lire le guide TCP / IP car une partie de votre compréhension semble défectueuse.
user9517 prend en charge GoFundMonica

1
Ouais, je me suis dit. J'ai essayé de dire autant que j'ai compris, mais comme vous pouvez le voir, je ne comprends pas tout.
trysis

7
Qu'est-ce qui est hors sujet dans cette question? Je me demandais juste.
trysis

1
J'ai également renoncé à poser des questions sur ces sites. Tout semble être hors sujet ces jours-ci ...
Nuno

IPv6 réduit la limitation des ports en offrant à un ordinateur un / 64 d'adresses à utiliser.
J.Money

Réponses:


28

Le port fait partie du protocole de couche 4 utilisé - TCP ou UDP , pour la plupart; ce n'est pas lié à l'adressage de la mémoire des ordinateurs réels, alors ne vous laissez pas confondre par l'adressage de la mémoire 32 ou 64 bits des systèmes d'exploitation modernes.

Les en-têtes de ces protocoles de couche 4 ont des structures spécifiquement définies , pour lesquelles exactement 16 bits sont utilisés pour les ports source et de destination. Sans modifications révolutionnaires de la compatibilité des protocoles de couche 4 dont dépend tout Internet, le nombre de ports ne peut pas être modifié. Même le nouveau SCTP a la contrainte 16 bits sur les ports.

Gardez à l'esprit que ces protocoles identifient le trafic en fonction non seulement du port de réception, mais également de l'IP de réception et du port et de l'IP d'envoi; vous êtes limité à 65535 ports TCP d'écoute (mais vous n'en avez pas beaucoup) et vous êtes limité à 65535 connexions à un service spécifique sur un système distant spécifique (plus faible en pratique, voir ports éphémères ), donc c'est rare pour exécuter dans la limite de ces protocoles, sauf si vous avez un système créant un grand nombre de connexions à un système distant spécifique.


3
Cela revient toujours à la rétrocompatibilité, n'est-ce pas? Pourquoi pouvons-nous passer à IPv6, qui autorise tellement plus d'adresses IP, c'est ridicule, mais nous ne pouvons pas avoir quelques ports de plus? C'est ma principale contrariété.
trysis

2
@trysis Right - passer d'IPv4 à IPv6 est une bonne comparaison avec ce qu'il faudrait pour passer à une version de TCP et à une version d'UDP avec plus de bits dans l'en-tête du port. Et si vous ne l'avez pas remarqué, le déploiement du protocole IPv6 dans le monde entier a été un processus lent et douloureux (où 1 à 2% du trafic mondial l'utilise). Pour IPv4, il y avait un besoin impérieux de se déplacer - répondre à l'épuisement. En revanche, le manque d'espace sur ces protocoles n'est pas un problème courant, il n'y a donc pas de besoin impérieux d'apporter les changements massifs qui seraient nécessaires pour y arriver.
Shane Madden

Oh, cela a plus de sens. Merci. Peut-être qu'un jour nous en ressentirons le besoin, mais je suppose que vous avez raison de dire que ce besoin n'est pas là maintenant.
trysis

J'espère que si jamais nous rencontrons tous ces problèmes, nous pourrons trouver quelque chose de mieux que l'adressage de port basé sur des nombres entiers. Quelque chose comme les ports basés sur UUID serait génial. Ou les espaces de noms réels seraient encore plus descriptifs et élimineraient les risques de conflits entre les applications. Imaginez que vous définissiez un port vers l'avant pour l'espace de noms "com.windows.local.yourdomain.server001" ou quelque chose du genre.
njbair

donc si deux PC établissent ensemble 65 535 connexions ou similaire à un ensemble de PC en dehors du NAT, aucun des autres PC ne pourra accéder à itnernet. Ai-je raison?
Denis
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.