2010-09-14 4 views
0

Je cherche un moyen simple de mettre en œuvre ce scénario:Transfert de fichiers/données entre deux sources arbitraires

Dites que j'ai deux machines dont j'aimerais partager les données. L'emplacement/les adresses de ces machines peuvent changer à tout moment. J'aimerais que les deux machines se connectent à un serveur central pour annoncer leur disponibilité. L'un des deux systèmes veut tirer un fichier de l'autre. Je sais que je peux demander au serveur de faire une demande au serveur, qui demande ensuite le fichier à la source, le tire, puis le transmet au demandeur. Cependant, cela semble inefficace du point de vue de la bande passante. Le fichier sera transféré deux fois. Y a-t-il un système en place où la source peut le diffuser directement dans l'évier? Sans être en mesure de garantir des choses comme le transfert de port si un système est derrière un pare-feu, etc. Je ne connais pas un moyen.

Merci.

+0

Avez-vous regardé des systèmes P2P comme BitTorrent? Cela me semble un peu similaire. –

+0

On dirait que BitTorrent utilise des connexions inversées. – dwelch

Répondre

2

Lorsque la machine A souhaite envoyer des données à la machine B, A envoie une requête au serveur central C. C demande B pour la permission. S'il est accepté, C donne l'adresse IP B et le port A. A tente de se connecter directement à B. En cas d'échec (c.-à-d. Si B se trouve derrière un routeur/pare-feu), alors A notifie C de la panne. C puis donne A IP et le port à B. B tente de se connecter directement à A (qui devrait pouvoir passer par le pare-feu/routeur B). Si l'une ou l'autre connexion est réussie, alors A a une connexion directe pour envoyer des données à B. Si les deux connexions échouent (c.-à-d. Si A est également derrière un pare-feu/routeur), alors C doit agir comme un proxy pour tous les transferts entre A et B.

+0

c'est une belle réponse –

Questions connexes