Lorsque vous utilisez une application de messagerie instantanée comme Live Messenger ou le client de bureau pour Google Talk, les ordinateurs peuvent transférer des fichiers entre les autres. Je ne peux pas dire avec certitude, mais je suis assez certain que les données transférées entre ordinateurs ne se déroulent pas via les serveurs IM de Microsoft ou de Google, mais les deux ordinateurs avec le logiciel de messagerie instantanée communiquent directement les uns avec les autres. Je me demande si ou comment cette connexion directe entre les clients est établie et comment je voudrais mettre en œuvre quelque chose de similaire moi-même. P>
J'ai une expérience de travail avec des réseaux personnels, mais je ne comprends qu'une relation client-serveur, où le serveur est toujours à l'écoute (et les ports ne sont pas bloqués par un pare-feu) et le client apporte une demande au serveur chaque fois que des données sont nécessaires. . P>
5 Réponses :
Si je mettais en œuvre cela, je regarderais quelques options. P>
Demandez au pare-feu d'envoyer un port donné à un PC à l'intérieur du réseau. Cela vous permettra de vous connecter à un serveur du monde extérieur. P> li>
avoir le (s) client (s) derrière le pare-feu se connecte à un serveur visible en dehors du pare-feu. P> Li> ol>
En bref, au moins une partie de la conversation doit être visible (le serveur) à l'autre (s) afin de pouvoir se connecter. Indépendamment de la manière dont une fois qu'une connexion est faite, le client et le serveur seront capables de communiquer sans aucun problème. P>
Il existe une méthode utilisée par de nombreux clients appelés "Pin Holing": P>
J'envoie un paquet UDP à vous, ce qui pique un trou dans mon pare-feu (permettant aux paquets UDP, supposé être des réponses de mon pare-feu, à envoyer par vous et reçu par moi). Ce paquet est rejeté par votre pare-feu. P>
Vous envoyez un paquet UDP à moi, piquer un trou dans votre pare-feu. Ce paquet devrait me joindre, à quel point je peux envoyer un autre pour vous joindre à vous et nous pouvons communiquer, à travers nos pare-feu, sur UDP. P>
N'est-ce pas une réponse valide à la question?
Faites ce que la plupart des chevaux de Troie font: P>
Connexion inversée forte> p> blockQuote> EDIT: P>
Avec deux machines derrière des pare-feu, vous auriez besoin d'une sorte de troisième "proxy" p> blockQuote>
La connexion inversée ne fonctionnera pas dans la situation qu'il décrive.
J'ai utilisé un programme appelé hamachi qui est un peu comme un VPN par pair à égal (réseau virtuel à réseau). Ensuite, j'ai écrit les applications du serveur client comme c'est. Il s'agissait d'un moyen rapide d'obtenir la fonctionnalité de la connexion sur Internet sans la supercherie nécessaire pour traiter des routeurs NAT. P>
Si vous devez le faire "correctement", l'une des méthodes courantes est perforation de trou UDP a >. Lorsque vous envoyez une demande de demande Web, votre pare-feu sait attendre des données de retour en réponse. L'astuce est que le client A et le client B Contactez un serveur sur Internet. Le serveur transmet des détails sur le client de demande A apporté au client B et et inversement. Une fois la connexion initiale établie, elles peuvent continuer à communiquer même si le serveur principal n'est plus là. P>
Merci, c'est ce que je cherchais.
Quelqu'un d'autre à la recherche d'une très bonne explication de la perforation sur le trou UDP Consultez cet article: H-online.com/security/how-skype-co-get-Round-FireWalls - / ...
Si les deux clients sont derrière un pare-feu qui n'a pas été pendé et qu'aucun logiciel VPN n'est utilisé, ils communiquent via un serveur tiers. Période. P>