Wie funktioniert BitTorrent nur mit ausgehenden Verbindungen?

18

Welcher Mechanismus erlaubt BitTorrent , nur mit ausgehenden Verbindungen zu arbeiten?

Das heißt, ohne Portweiterleitung.

Brian's BitTorrent FAQ und Guide sagt:

BitTorrent funktioniert normalerweise in einer NAT-Umgebung (Network Address Translation) einwandfrei, da es nur mit ausgehenden Verbindungen funktionieren kann.

Arbeiten in diesem Fall andere Peers als Rendezvous-Server?

Peter Mortensen
quelle

Antworten:

8

Soweit ich weiß, funktioniert dies mit umgekehrten Verbindungen. Grundsätzlich stellt Ihr Client eine ausgehende Verbindung her, die von der Remote-Maschine offengehalten wird, und pumpt Daten über dieselbe Verbindung.

Wenn dies von allen verwendet würde und niemand Ports einrichten würde, würde dies höchstwahrscheinlich fehlschlagen. Wenn ich Bittorent mit deaktivierten Ports verwendet habe, bekomme ich entsetzliche Geschwindigkeiten, aber es funktioniert, weshalb ich denke, dass es so funktioniert.

William Hilsum
quelle
Warum würde diese Methode zu niedrigeren Geschwindigkeiten führen, als wenn die Ports weitergeleitet würden?
Gsingh2011
@ gsingh2011 Es gibt viele Gründe ... Das häufigste bei BT ist, dass es Sie möglicherweise über andere Personen weiterleitet. Daher kann Ihre Download-Geschwindigkeit durch die Upload-Geschwindigkeit anderer Personen begrenzt werden.
William Hilsum
Für Tracker ist dies richtig und kein Problem. aber zum Download ist dies nicht wahr. weil der Bit-Torrent-Download-Mechanismus von anderen Peers heruntergeladen werden muss. Andere Peers können sich hinter einem NAT befinden (wie Sie). Also, wie wenig Torrent funktioniert hinter einem NAT?
SMMousavi
4
Dies ist eine Teilantwort in Bezug auf allgemeine NAT-Traversal-Techniken. Die wahre Frage ist: Woher weißt du, dass jemand Dateiblöcke von dir herunterladen möchte, da du keine uneingeschränkte Verbindung akzeptierst? Daher gibt es nur eingeschränkte Möglichkeiten: Entweder werden Sie vom Tracker gewarnt, oder Sie stellen eine aktive Verbindung zu mehreren Tracker-Clients her, um Peeringsitzungen zu initiieren (sodass diese zu einem bestimmten Zeitpunkt nach Downloads fragen können), oder Sie akzeptieren nur Anforderungen von Peers, die Sie aktiv herunterladen von, oder diese Peers fungieren als Rendez-Vous-Punkte. Welcher Vorschlag wird also im Torrent-Client implementiert?
KrisWebDev
5

BitTorrent arbeitet mit einer P2P-Verbindung. Daher muss es eine Möglichkeit geben, eine direkte Verbindung zum Peer herzustellen. Wie Sie wissen, bricht NAT P2P zum Arbeiten. Aber es gibt eine Lösung dafür. Die meisten (wie ich alle kenne) basieren auf dem STUN-Protokoll.

Jeder Client erhält seine öffentliche IP-Adresse und seine temporäre Portnummer (UDP) über den STUN-Server. Der STUN-Server hilft dem Client, das Vorhandensein von NAT und die von NAT zugewiesene öffentliche IP + temporäre Portnummer zu erkennen. Anschließend versucht der Client, mithilfe der Stanzlochtechnik eine direkte Verbindung zu einem anderen Peer herzustellen (siehe Wikipedia ).

Wenn Sie UPnP aktiviert haben, gibt es auch eine andere Lösung.

Weitere Informationen finden Sie unter NAT Traversal auf Wikipedia .

SMMousavi
quelle
1

Normalerweise stellen die Benutzer eine Verbindung zu Ihnen her, um Daten von Ihnen anzufordern, und Sie stellen eine Verbindung zu Benutzern her, die Daten von ihnen anfordern.

Wenn eingehende Verbindungen nicht möglich sind, bittet Ihr Client auch aktiv darum, Daten an andere Personen weiterzugeben (und kann dies auch tun, wenn eingehende Verbindungen möglich sind).

Auf diese Weise laden Sie nicht so viel hoch, aber für öffentliche Tracker ist das kein großes Problem.

Jeffrey Aylesworth
quelle