Die kurze Antwort lautet nein, das ist nicht die Grenze.
Ein TCP-Port-Feld ist 2x Byte groß und enthält eine Menge von 65536. Diese Anzahl begrenzt die Anzahl der Adressen, die ein Server haben kann. Dies beschränkt die Anzahl der Clients jedoch nicht auf ~ 64 KB. Jedes TCP-Paket verfügt über zwei Portfelder, eines für das Ziel und eines für die Quelle (sowie zwei IP-Adressen).
Eine bestimmte TCP-Verbindung ist ein Tupel aus Quelle und Ziel mit jeweils IP-Adresse und Portnummer. Das Ziel (die Serverseite) bleibt fest, aber die Quelladresse (die Clientseite) kann sowohl über den Port als auch über die IP-Adresse variieren.
Erwägen:
- Server IP - 100.0.0.1 (behoben)
- Server Port - 80 (behoben)
- Client-IP - 0.0.0.0 - 255.255.255.255 (32-Bit-Bereich)
- Client-Port - 0 - 65535 (16-Bit-Bereich)
Ja, ein Client (oder ein Büro) mit einer einzelnen IP-Adresse kann nur 65535 Mal gleichzeitig eine Verbindung zu Ihrem Server herstellen. Wenn dieser Client (oder dieses Büro) jedoch mehrere IPv4-Adressen hat, kann er viele Vielfache davon mehr verbinden.
In der Regel werden auf vielen Clientgeräten Millionen von IP-Adressen verwendet. Wenn diese nur einen einzigen Quellport für die Verbindung mit Ihrem einzelnen Server-Port verwenden, können Sie bereits das Potenzial erkennen, über die 65536-Nummer hinauszugehen.
Die theoretische mathematische Grenze des IP / TCP-Protokolls beträgt 2 ^ 32 * 2 ^ 16. Praktisch ist die Anzahl der IP-Adressen geringer - Sie müssten für einige reservierte IP-Blöcke subtrahieren. Praktisch gesehen ist die Anzahl der clientseitigen Ports geringer, da auf einem typischen Clientcomputer mehrere Anwendungen ausgeführt werden, die eine Verbindung zu anderen Servern herstellen, wodurch der TCP-Portpool reduziert wird. Dieser Pool wird jedoch selten aufgebraucht - sobald eine TCP-Sitzung die Portnummer beendet hat ist wieder im Pool verfügbar.
Hinweis: Bei IPv6 steigt die Anzahl der IP-Adressen erheblich an, das Feld Port für TCP bleibt jedoch gleich groß.