Ich bin festgefahren, mehr als 65536 ausgehende TCP-Verbindungen von einer Linux-Box (RedHat5) einzurichten.
Ich habe bereits ausgehende und akzeptierende Boxen konfiguriert, um genügend Dateideskriptoren zuzulassen.
Ich glaube nicht, dass es auf der akzeptierenden Seite ein Problem gibt - ich habe mehrere Zielboxen mit jeweils mehreren IP-Adressen und verwende mehrere Ports.
Auf der ausgehenden Seite glaube ich nicht, dass ich ein Limit pro IP-Adresse erreiche - ich verwende mehrere IP-Adressen und Ports (ich öffne Verbindungen von den Ports 30.000 bis 60.000 für jede von mehreren IP-Adressen).
Gibt es einen durch den Linux-Kernel einstellbaren Parameter, den ich vermisse? Oder eine grundlegende Grenze in TCP?
Der Fehler ist, dass meine App zum Öffnen der Verbindungen im Aufruf von connect () hängt.
Vielen Dank für jede Hilfe NickB
Antworten:
Hier ist ein Blog, in dem jemand> 1.000.000 Outbounds aus einer Box hat.
quelle
Das TCP-Protokoll verwendet nur 16 Bit für den Ziel- und den Quellport. Es wird nicht möglich sein, mehr als 65536 Ports gleichzeitig zu öffnen - auch nicht unter Linux.
quelle
In diesem Zusammenhang bedeutet eine "einzelne Schnittstelle" eine einzelne Netzwerkpflege mit einer einzelnen zugewiesenen IP-Adresse. Jede ausgehende TCP-Verbindung ist an einen separaten Port gebunden, sodass Ihr Beispiel nicht möglich ist.
quelle