2016-04-17 21 views
0

In meinem Network Programming Klasse zum Download, bekam ich ein Thema wie folgt aus:Gebäude Netzwerk-Topologie-Datei von mehreren Servern


Lasst uns sagen, dass es Netzwerk-Topologie mit der Konfiguration wie unten:

enter image description here

Die S1, S2, S3 enthält die gleiche Datei DATA.dat.


Entwurf das Protokoll und Code ein Server-Programm, das auf Servern S1, S2 installieren, S3 und ein Client-Programm auf dem Client C installieren, um laden Sie die Datei Data.dat von Servern S1, S2, S3 in den gleichen Zeit, und die heruntergeladene Datei ist nicht beschädigt.

Netzwerkkonfiguration:

  • Bandbreite zwischen Server und Router nicht bekannt ist (in Bereich 100 kbps ~ 1000kbps)
  • Bandbreite zwischen Client C und Router 10 Mbps.
  • Packet Verlustrate ist nicht bekannt.

Ich habe keine Ahnung über die Art und Weise, diese zu lösen. Ich hoffe, Sie könnten mir ein paar Stichworte geben, um das zu lösen. Vielen Dank

+0

Sie sollten über Peer-to-Peer-Protokolle lesen. – o9000

Antwort

0

Ihr Protokoll sollte zuerst Meta-Informationen über den Download finden. Diese Informationen müssen eine Liste von Servern, Dateilänge und einen Hash enthalten (md5, rc4 oder ähnlich, um zu überprüfen, ob die Datei beim Beenden nicht beschädigt ist).

Das Protokoll muss die Möglichkeit haben, die Datei per Chunk herunterzuladen. Auf diese Weise können Sie sich einmal mit mehreren Servern verbinden und verschiedene Chunks parallel herunterladen. Eine typische Chunk-Größe könnte 1 MB betragen (und der letzte Chunk wird kleiner).