it-swarm.com.de

Warum gibt es nur 65.535 Häfen und werden wir jemals mehr haben?

Ich verstehe die ursprüngliche Begründung für 65.535 Ports pro IP-Adresse: Dies ist die höchste Zahl, die durch eine 16-Bit- oder 2-Byte-Zahl dargestellt werden kann, und es war nicht vorstellbar, dass Computer jemals mehr sparen könnten als das für etwas so Triviales wie Ports oder so etwas. Ports benötigen möglicherweise jeweils mehr als 1 Bit, da jeder Port offen, blockiert, "getarnt" oder andere sein kann. Aus irgendeinem Grund wird jedoch immer gesagt, dass Ports mit einer 16-Bit-Nummer arbeiten. Wenn ich einen Teil davon falsch habe, sag es mir auf jeden Fall.

In einer Welt, in der die meisten Computer 32-Bit-Computer sind und mehr als genug Speicherplatz für ein paar weitere Ports haben, warum haben wir dann immer noch so viele Ports? Wir sind dabei, auf HTML5, HTTP2.0, IPv6 und andere definitiv unterschiedliche Versionen umzusteigen. Warum also nicht dasselbe mit Ports? Viele davon erlauben viel mehr als 16 Bit; Tatsächlich erlaubt IPv6 16 Bytes! Ich verstehe, dass viele davon Jahre oder sogar Jahrzehnte entfernt sind, aber warum all das Geschwätz über diese Upgrades und nicht einmal ein Blick auf mehr Ports (von denen ich als Amateur gehört habe)?

Die einzigen zwei Gründe, die ich für die Beibehaltung von 65.535 Ports sehe, sind die Beibehaltung der alten Legacy-Systeme durch große Unternehmen, was kaum ein guter Grund ist, und der Aufstieg eingebetteter Systeme, von denen viele winzig sind, mit winzigem Speicherplatz, Speicher usw. , bald ins Internet kommen, viele als Teil des Internet der Dinge. Mit diesen eingebetteten Systemen könnten wir ihnen möglicherweise weniger Ports geben, und wenn ein großer Desktop-Computer versucht, eine Verbindung zu einem herzustellen, kann dies als sanft bezeichnet werden, da das eingebettete Baby-System nur ~ 65.000 Ports verwenden kann.

Andererseits kann ich mir ein paar gute Gründe vorstellen, mehr Ports zu haben, die meisten haben mit NAT und anderen Systemen, bei denen mehr als eine private IP-Adresse mit dem Rest kommunizieren muss) zu tun Das Internet verwendet dieselbe öffentliche IP-Adresse, wie der Aufstieg von VMs auf demselben Computer, die alle dieselbe IP-Adresse verwenden. Technisch gesehen hat jede VM IP-Adresse 65.535 Ports, in Wirklichkeit jedoch alle Verwenden Sie die Ports des Hosts. In solchen Fällen können diese Systeme relativ schnell keine Ports mehr haben. Ein weiterer spezieller Fall ist NAT auf Carrier-Ebene, bei dem eine öffentliche IP-Adresse in mehrere private IP-Adressen und mindestens eine dieser privaten Adressen übersetzt wird wird in einen anderen Satz von noch mehr privaten Adressen übersetzt. Auch hier hat jede private IP-Adresse technisch gesehen ihren eigenen Satz von 65.535 Ports. Dies ist jedoch eine Illusion, da die Daten, wenn sie ins öffentliche Internet gelangen, die Ports der öffentlichen IP verwenden Ich bin mir nicht sicher, ob wir an sich unbedingt NAT brauchen, aber wir werden so etwas brauchen o Adressen auch bei den enormen Mengen, die IPv6 uns geben wird, erhalten. Können wir es uns in solchen Fällen überhaupt leisten, nicht mehr als 65.535 Ports zu haben?

Warum haben wir immer noch nur 65.535 Ports und gibt es Pläne, mehr zuzulassen?

P.S. Ich weiß, dass es technisch 65.536 Ports pro IP-Adresse gibt, aber Port 0 wird normalerweise für nichts verwendet.

21
trysis

Der Port ist Teil des verwendeten Layer 4-Protokolls - TCP oder UDP , hauptsächlich; Es hängt nicht mit der Speicheradressierung der tatsächlichen Computer zusammen. Lassen Sie sich also nicht durch die 32- oder 64-Bit-Speicheradressierung moderner Betriebssysteme verwirren.

Die Header dieser Layer 4-Protokolle haben speziell definierte Strukturen , für die genau 16 Bit für die Quell- und Zielports verwendet werden. Ohne kompatibilitätsbrechende Änderungen an den Layer 4-Protokollen, von denen das gesamte Internet abhängt, kann die Anzahl der Ports nicht geändert werden. Sogar das neuere SCTP hat die 16-Bit-Einschränkung für Ports.

Beachten Sie, dass diese Protokolle den Datenverkehr nicht nur anhand des empfangenden Ports, sondern auch anhand der empfangenden IP sowie des sendenden Ports und der IP identifizieren. Sie sind auf 65535-Listening TCP-Ports) beschränkt (aber Sie haben nicht so viele), und Sie sind auf 65535-Verbindungen zu einem bestimmten Dienst auf einem bestimmten Remote-System beschränkt (in der Praxis niedriger) , siehe kurzlebige Ports ), daher ist es ungewöhnlich, dass diese Protokolle an ihre Grenzen stoßen, es sei denn, Sie haben ein System, das eine ganze Reihe von Verbindungen zu einem bestimmten Remote-System herstellt.

29
Shane Madden