Ihre Verwirrung beruht auf falschen Annahmen.
Das einzige Gerät, das diesen Routing-Mechanismus kennt, ist sicherlich Router-C selbst! Nicht einmal Computer-A oder Computer-B wissen davon Bescheid, oder?
Was, warum? Dann wurde der Router so konfiguriert, dass er diese Ports an diese IPs weiterleitet? Sie müssen den P2P-Client so einrichten, dass er einen bestimmten Port verwendet, und dann den Router entsprechend einrichten.
Aber wie soll Router-D wissen, dass er Pakete über Port 1000 sendet, und nicht Port 1001?
Weil Sie den P2P-Client so konfigurieren, dass er einen bestimmten Port verwendet (Standard oder Nicht-Standard für dieses Protokoll).
Die einzige Lösung, die ich mir vorstellen kann, ist, dass Router-D das Paket über alle Ports an Router-C sendet, sodass es an Computer-A weitergeleitet wird. Aber gibt es eine bessere Lösung?
Es ist viel einfacher als das. Wenn der Client eine Verbindung zu einem Peer herstellt, gibt er an, welchen Port er verwenden möchte, sodass der Peer die Daten an diesen Port sendet.
Hmm, aber Bittorrent ändert das Verhalten des Routers nicht richtig? Da einige Routing-Mechanismen dynamisch gewesen sein könnten, wie in superuser.com/a/187190/78897 gezeigt, wie kann Computer-A davon erfahren?
Der Client hat keinen direkten Einfluss auf den Router, der Router kann jedoch so konfiguriert / intelligent sein, dass er sich an das Verhalten des Clients anpasst. Sie können UPnP sowohl im Router als auch im Client aktivieren, um die Verbindung automatisch zu konfigurieren. Die meisten Router verfügen über Stateful-Inspection-Funktionen als Teil ihres Portweiterleitungsmechanismus .
Zusammenfassend bedeutet dies, dass eine Verbindung dynamisch an einem zufälligen Port hergestellt werden kann und der Router den Überblick über die Vorgänge behält, anstatt alles als zufällige, bedeutungslose Verbindungen zu betrachten. Auf diese Weise kann eine Verbindung nach Bedarf weitergeleitet werden, da es sich beispielsweise um eine Antwort auf diese andere gerade erfolgte Verbindung handelt .
Das Problem tritt auf, wenn Sie mehrere Systeme verwenden, die dasselbe Programm verwenden. Wenn mehrere Systeme an denselben Router angeschlossen sind, die gleiche IP-Adresse verwenden und dynamische Ports verwendet werden, wird dies schnell unüberschaubar. Selbst bei Stateful Inspection ist es schwierig oder sogar unmöglich, die korrekte Funktionsweise zu gewährleisten. In diesem Fall müssen statische Ports (Standard oder anderweitig) verwendet werden.
Wenn Sie ein Programm wie SmartSniff oder TCPView verwenden, um Ihre Verbindungen zu überwachen, werden Sie feststellen, dass die P2P-Verbindungen normalerweise den von Ihnen konfigurierten Port (oder die Standardeinstellung für den Client) als Ziel für eingehende Verbindungen haben und entweder die Standard- oder eine benutzerdefinierte / Zufälliger Port für die Quelle und umgekehrt für ausgehende Verbindungen.