Comment est le port source pour HTTP déterminé? Est-il jamais de collision en NAT?

Je sais que lorsqu'une requête HTTP, les paquets sont envoyés à partir d'un ordre apparemment aléatoire de haute-port de numéro (p. 4575) sur le client pour le port 80 sur le serveur. Puis le serveur envoie la réponse à la même élevées port, le routeur sait pour la route que pour l'ordinateur client, et tout est complet.

Ma question est: Comment est le port de retour (4575 dans cet exemple) est-il établi? Est-il aléatoire? Si oui, dans quelle fourchette? Existe-il des contraintes sur elle? Ce qui se passe, par exemple, si deux ordinateurs dans un réseau local d'envoyer des requêtes HTTP avec le même port source pour le même site web? Comment le routeur savoir lequel de route de l'ordinateur? Ou peut-être que cette situation est assez rare que personne n'a pris la peine de se défendre contre elle?

  • Je serai heureux d'entendre le downvoters expliquer pourquoi ils n'aiment pas cette question.
  • Je n'ai pas downvote - mais ma conjecture est que c'est vraiment "pas une question de programmation" - au moins sur la surface.
  • Même si elle n'est pas une question de programmation, il peut être très utile, notamment pour obtenir une idée générale. D'ailleurs peut être utile lors de l'écriture de scripts ou tout autre code personnalisé
InformationsquelleAutor Ram Rachum | 2013-03-29