Un serveur TCP est-il limité à 65535 clients?


10

On pourrait penser que cela impose une limite stricte au nombre de clients qu'un seul ordinateur / application peut maintenir.

L'un pourrait superviser un serveur Web et être tenu de s'assurer qu'il peut évoluer à des niveaux d'utilisation projetés dépassant les ~ 65 000 connexions.

Pour les logiciels, il existe certaines considérations distinctes ( /programming/1575453/how-many-socket-connections-can-a-web-server-handle )


Une réponse vous a-t-elle aidé? Si c'est le cas, vous devez accepter la réponse afin que la question ne s'affiche pas indéfiniment, à la recherche d'une réponse. Alternativement, vous pouvez fournir et accepter votre propre réponse.
Ron Maupin

Réponses:


16

La réponse courte est non, ce n'est pas la limite.

Un champ de port TCP fait 2x octets et contient une quantité de 65536. Ce nombre limite la quantité d' adresses qu'un serveur peut avoir. Mais cela ne limite pas le nombre de clients à ~ 64 Ko. Chaque paquet TCP possède deux champs de port, un pour la destination et un pour la source (ainsi que deux adresses IP).

Une connexion TCP donnée est un tuple de la source et de la destination, chacun avec une adresse IP et un numéro de port. La destination (côté serveur) reste fixe, mais l'adresse source (côté client) peut varier à la fois sur le port ET sur l'adresse IP.

Considérer:

  • IP du serveur - 100.0.0.1 (fixe)
  • Port du serveur - 80 (fixe)
  • IP client - 0.0.0.0 - 255.255.255.255 (plage 32 bits)
  • Port client - 0 - 65535 (plage 16 bits)

Oui, un client (ou un bureau) avec une seule adresse IP ne peut se connecter à votre serveur que 65535 fois simultanément, mais si ce client (ou bureau) avait plusieurs adresses IPv4, il pourrait en connecter de nombreux multiples de plus.

En règle générale, des millions d' adresses IP sont utilisées sur de nombreux appareils clients, et si elles devaient utiliser un seul port source pour se connecter à votre port de serveur unique , vous pouvez déjà voir le potentiel d'aller au-delà du nombre 65536.

La limite mathématique théorique du protocole IP / TCP est de 2 ^ 32 * 2 ^ 16. Pratiquement, le nombre d'adresses IP est inférieur - vous devrez soustraire certains blocs IP réservés. En pratique également, le nombre de ports côté client est plus faible car un ordinateur client typique exécutera plusieurs applications se connectant à d'autres serveurs, ce qui réduit également le pool de ports TCP, mais ce pool est rarement utilisé - une fois qu'une session TCP a terminé le numéro de port est à nouveau disponible dans la piscine.

Remarque: Pour IPv6, le nombre d'adresses IP augmente considérablement, mais le champ Port pour TCP reste de la même taille.

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.