Wenn firewalls nicht akzeptieren eingehende verbindungen standardmäßig wie p2p-Netzwerke arbeiten?
Wenn firewalls blockieren alle eingehenden verbindungen standardmäßig wie p2p-Technologien arbeiten? Wie torrents, wie Sie eine Verbindung zu jeder der Aktien einer Datei und die Informationen von Ihnen? Geht es durch einen relay-server oder so?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht alles, was über BitTorrent, bin ich über die Allgemeinen P2P-Konnektivität Techniken. In der Regel Kunden in einem P2P-Netzwerk rendezvous auf einer gemeinsamen Signalisierungs-server (z.B. SIP, XMPP -, tracking-server, web-site) im Austausch von IP-Adressen,andere meta-Daten und Nachrichten bootstrap direkte verbindungen. Dann verwenden Sie eine der folgenden Methoden unten, um zu bekommen, eine Kommunikations-session zu gehen:
Beide Seiten versuchen, eine Verbindung zu einander gleichzeitig - im Fall, dass eine Seite nicht akzeptieren können eingehende verbindungen, aber erlaubt ist, um ausgehende verbindungen. Dies ist der Fall für die firewall-Szenario.
Loch Stanzen (in Verbindung mit oben). Relais sind nicht erforderlich, pro se, aber nicht helfen, versichern die Verbindung, wenn beide peers hinter der Netzwerk-Geräte, die schwierig zu durchqueren ist. Es gibt sowohl UDP Hole Punching sowie TCP Hole Punching Techniken. Mehr info hier.
Relais, einschließlich DREHEN Server, bereitgestellt werden kann, wird in einem P2P-Netzwerk, wenn direkte Verbindung nicht möglich ist. Alle Ihre Lieblings-video-call-Anwendungen bereitstellen relais für diese Szenarien, aber Ihr bestes tun, um peers direkt verbunden, damit die Kosten der Weiterleitung.
Bing für die folgenden Themen: STUN, TURN, ICE (Interactive Connectivity Establishment), libjingle, pjnath, libnice.
Wenn eine firewall (im Gegensatz zu NAT) beabsichtigt, um eingehende verbindungen zu blockieren (wobei ich glaube, dass Sie es normalerweise tun), es gibt nichts, was Sie dagegen tun können. Sie können versuchen, alle lochen Sie möchten. Dies wird erreicht, indem nur die Umsetzung eines symmetrischen NAT, d.h. jeder pin-Loch ist offen, die speziell für ip -, port -, Vierbettzimmer (source, destination port und IP).
BitTorrent ist wahrscheinlich nicht aufhören zu arbeiten, nur weil Sie nicht eingehende verbindungen empfangen, es wird nur die Durchführung etwas schlechter. Chancen sind, dass es zumindest einige Leute auf den Schwarm, die verbindungen annehmen, und Sie nur eine Verbindung zu Ihnen herstellen.
Diese ist eine alte Erklärung, wie die Wesen hinter einer Firewall meist nur bedeutet schlechtere Leistung.
EDIT:
Die kurze Antwort auf das "warum" ist, dass die Mehrheit der Kollegen sind nicht hinter einer Firewall (nur NATs).
Für die Nachwelt:
Kurze Antwort ist, es ist getan über https://en.wikipedia.org/wiki/Hole_punching_(Vernetzung)
Wenn Sie eine Verbindung zu google.com von deiner Maschine (die die meisten wahrscheinlich sitzt hinter einem router und NAT -) Ihr Maschinen IP-Adresse und NAT ' ed port-Nummer erhalten, sendet auf google-Servern. Google verwendet diese Verbindung eine info zu senden, Suchergebnisse zu Ihrer Maschine.
Können Sie denken, von den google-Servern ähnlich einem Knoten in dem p2p-Netzwerk. Google waren in der Lage zu 'erreichen', die Sie von Ihren Servern, obwohl der router nicht akzeptieren eingehende Verbindung. Es ist, weil Sie nicht initiieren Sie die Verbindung (Sie nicht wissen, Ihre ip -: NATedport Kombination, um die Verbindung herzustellen). Aber Ihre Maschine kann ausgehende verbindungen und zum senden/veröffentlichen Sie Ihre ip -: NATedport combo an die Außenwelt.
So dass beide Knoten in der p2p-senden Sie Ihre ip -: NATedport combo zu einer Drittanbieter-Website, und tauschen diese Informationen und starten Sie den Anschluss (wer bekam die info zuerst) zu einer anderen.
Lassen
F = # Firewall-Knoten
O = # Knoten mit öffnen Sie den eingehenden port
T = F + O = Gesamtanzahl der Knoten,
P = O /T = Anteil des gesamten Knoten mit ports öffnen,
Cf = max # verbindungen Firewall-Knoten haben können, und
Co = max # verbindungen jedes Knoten öffnen kann.
Dann,
Cf = O, ∵ firewalled Knoten kann nur eine Verbindung zu offenen Knoten
Co = T - 1, ∵ offenen Knoten kann eine Verbindung zu allen anderen Knoten (und einmal alle Firewall-Knoten haben, die ersten, die mit Ihnen verbunden)
so
Co /Cf = (T - 1) /O = 1 /P - 1 /O.
Wenn T ist groß,
Co /Cf ≈ 1 /P.
So, zum Beispiel, sagen, die Hälfte der Knoten nicht öffnen eingehender ports: P = ½. Sie dann
Co /Cf ≈ 2,
das bedeutet, dass die offenen nodes ~2× die Anzahl der verbindungen Firewall-Knoten (das heißt, Sie sind überfordert, aber auch bedeutet, dass Sie mehr Sichtbarkeit).
Somit ist es besser für bestimmte Knoten und für das gesamte Netzwerk zu haben P = 1; werden alle Knoten gleichermaßen sichtbar und gleichmäßig belastet.
Wenn P = 0, das Netzwerk funktioniert nicht bei allen ∵ niemand wird in der Lage sein, um verbindungen zu anderen peers.