Wie funktioniert Skype ohne port-Weiterleitung?
Ich bin der Gestaltung einer p2p - Anwendung, die arbeitet auf port 30000. Mein router ist nicht UPnP so muß ich einen port an den router. Aber Skype eine andere p2p-Anwendung funktioniert ohne port-Weiterleitung auf meinem pc. Wenn ich es analysieren mit wireshark habe ich gefunden über UDP-port 48980, 58544. Ich bin mit c++.
Gibt es eine Bibliothek in python hier was bedeutet es für Nat-PnP-Router. Ist es möglich, programmgesteuert darauf, den port zu router unabhängig von der Art der router und das Betriebssystem. Was sollte der Ansatz in c++ oder einer anderen Sprache.
InformationsquelleAutor der Frage Xinus | 2009-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Skype funktioniert auf sehr interessante Weise. Von dem, was ich gelesen habe (und das ist eine Weile her) funktioniert es wie folgt:
Benutzer und IPs.
sprechen Skype Benutzer B Benutzer A sendet eine
Netzwerk-Paket an Nutzer B die IP-Adresse
und auf eine Antwort wartet. (Benutzer B wird niemals das Paket).
Kombination, auf die er wartet
für eine Antwort
um eine Antwort senden zu
angegebenen port Eine Verbindung hergestellt wird.
Dies ist wahrscheinlich zu stark vereinfacht ist, aber zuletzt habe ich geprüft, das ist, wie es funktioniert. (Jemand korrigiert mich wenn ich falsch Liege).
InformationsquelleAutor der Antwort rein
Es ist sehr gut beschrieben in diesem Artikel Wie-Skype-Co-get-Runde-firewalls
InformationsquelleAutor der Antwort Martin Beckett
UDP hole punching ist (einer) der Wege, wie die traverse durch die NAT.
InformationsquelleAutor der Antwort nothrow
Verwenden Sie einen zwischengeschalteten server, und initiieren Sie die Kommunikation von der client-Seite. Als Yossarian erwähnt, von diesem Punkt eine Möglichkeit ist UDP hole punching. Je nach Art der Anwendung (und ob es wirklich P2P oder nicht) Sie halten könnte, die go-between-server die ganze Zeit.
InformationsquelleAutor der Antwort Joe
Skype verwendet einen anderen Kollegen als Zwischenpunkt, wenn eine direkte Verbindung nicht möglich ist.
also Peer A möchte eine Verbindung zu peer B peer B hat alle ports geschlossen, dann ist die Kommunikation initiiert durch peer C die ports öffnen.
InformationsquelleAutor der Antwort
Haben einige Erfahrung in der Umsetzung von P2P-Anwendungen und erhalten Sie die Arbeit hinter NAT-Routern.
Skype verwendet den UDP-hole-punching hinter NAT-Routern. Ich habe einen Artikel geschrieben und gemacht ein Demo-video, um anderen zu helfen implementieren ähnliche Anwendungen. Auch links zu nützlichen Bibliotheken, das die meisten der basisarbeiten libutp, hier.
>>> UDP-hole-punching Demo-video und nützliche Bibliotheken.
InformationsquelleAutor der Antwort Rakesh Gopal