Warum benötigen P2P-Verbindungen keine offenen Ports?

Warum benötigen P2P-Verbindungen keine offenen Ports?

Ich meine, wenn jemand eine Datei von mir herunterlädt, bedeutet das nicht, dass ich der Host bin und er eine Verbindung zu mir herstellt?

Oder verbinde ich mich mit ihm?

So oder so braucht einer von uns einen offenen Port, oder?

In meinem Router ist kein offenes Port-Routing zu meinem Computer vorhanden. Wie kann ich also Verbindungen akzeptieren?

Antwort1

Wenn Ihr Router UPnP unterstützt, ist es möglich, dass die von Ihnen verwendete P2P-Anwendung Ports auf dem Router öffnet, ohne dass Sie offene Ports manuell konfigurieren müssen.

Wikipedia UPnP

Andernfalls ist es möglich, dass Ihre Anwendung einen Prozess namens NAT-Traversal verwendet, der bei P2P-Anwendungen und Remote-Desktop-Anwendungen wie GoToMyPC oder Hamachi üblich ist. Diese Technologie ist für die Verwendung über Network Address Translation konzipiert, das als Firewall gilt, aber auch ein Mittel ist, um ein privates Netzwerk zu haben, das eine einzelne IP-Adresse im Internet gemeinsam nutzt (die Ihr Router verwendet).

Wikipedia NAT-Traversal

Antwort2

Bei Protokollen wie BitTorrent fungiert die offene Seite immer als Host, solange auf einer der beiden Seiten der Verbindung die Portweiterleitung aktiviert ist. Wenn beide Seiten offen sind, kann jedes Ende der „Host“ sein. Wenn beide Seiten geschlossen sind, benötigen Sie eine dritte Partei mit einer offenen Verbindung, um die Verbindung auszuhandeln. So funktioniert es beispielsweise bei Skype (die dritte Partei wird Supernode genannt).

Hier ist ein guter BlogbeitragErläuterung, wie Skype Supernodes verwendet und wie es damit Firewalls umgeht.

Antwort3

Ich würde einen offenen Port mit einer Telefonnummer vergleichen.

Stellen Sie sich vor, Sie hätten eine Telefonanlage zum Wählen, aber keine Telefonnummer zum Empfangen von Anrufen.

Damit zwei Parteien miteinander sprechen können (oder eine ständig spricht), ist es egal, wer tatsächlich wählt. Wichtig ist, dass mindestens einer von beiden eine Telefonnummer hat, dann ruft der andere Partner ihn einfach an.

Wenn keiner von beiden eine Telefonnummer hat, wird in manchen Systemen ein Supernode verwendet, ein Freund, der zwei Anrufe, einen von jedem von ihnen, entgegennimmt und sie zusammenführt. Dies ist die einzige Möglichkeit zu sprechen, wenn keiner der beiden Teilnehmer eine Telefonnummer hat. Das Problem ist, dass das Gespräch dann auf die Qualität der Telefonleitung dieses Supernode-Freunds beschränkt ist.

Ich hoffe, dass diese Analogie das Verständnis der drei möglichen Szenarien erleichtert.

verwandte Informationen