Comment Skype fonctionne sans la redirection de port?
Je suis en train de concevoir un p2p application qui fonctionne sur le port 30000. Mon routeur n'est pas UPnP j'ai donc nécessaire de transmettre un port de routeur. Mais Skype une autre application p2p fonctionne sans la redirection de port sur mon pc. Quand je l'ai analysée avec wireshark, j'ai trouvé son en utilisant le port UDP 48980, 58544. Je suis à l'aide de c++.
Il y a une bibliothèque python ici qui le fait pour Nat PnP routeurs. Est-il possible de transférer par programmation de port pour le routeur quel que soit le type de routeur et de système d'exploitation. Quelle doit être la méthode pour le faire en c++ ou tout autre langage.
Vous devez vous connecter pour publier un commentaire.
Skype fonctionne d'une manière très intéressante. De ce que j'ai lu (et c'est il y a un moment), il fonctionne comme suit:
les utilisateurs et les IPs.
parler à l'utilisateur B
les paquets de réseau de l'utilisateur, l'adresse IP de B
et attend une réponse. (utilisateur B ne reçoit jamais ce paquet).
combinaison sur laquelle il est en attente
pour une réponse
pour envoyer une réponse à l'utilisateur Un sur l'
port spécifié
C'est probablement plus simplifié, mais le dernier que j'ai vérifié, c'est la façon dont il fonctionne. (Quelqu'un me corrige si je me trompe).
Edit: fixe balle question
UDP perforation est (un) de façons de traverser le NAT.
Vous devez utiliser un serveur intermédiaire, et d'initier la communication par le client. Comme Yossarian mentionné, à partir de ce point une possibilité est UDP, la perforation. Selon le type d'application (et si c'est vraiment le P2P ou pas) vous pouvez conserver les aller-entre le serveur en place tout le temps.
Skype utilise un autre pairs comme point intermédiaire lors de la connexion directe n'est pas possible.
c'est à dire par les Pairs Un veut se connecter à des pairs B, mais par les pairs B a tous les ports fermés, la communication est initiée par les pairs C qui a ouvert les ports.
Avoir une certaine expérience dans la mise en œuvre des applications de P2P et de les amener à travailler derrière des routeurs NAT.
Skype utilise le protocole UDP, la perforation de travailler derrière des routeurs NAT. J'ai écrit un article et a fait une vidéo de Démonstration pour aider les autres à mettre en œuvre des applications similaires. Également fourni des liens vers des bibliothèques utiles que la plupart ne le travail de terrain comme libutp, ici.
>>> UDP perforation vidéo de Démonstration et utile Libs.