Project

General

Profile

Protocol core-core Version 3 » History » Revision 21

Revision 20 (Greg Burri, 07/08/2009 10:19 AM) → Revision 21/73 (Greg Burri, 07/08/2009 11:40 PM)

h1. Protocols 

 This page describes the protocols used by Aybabtu for network communication between cores and between core and GUI. 

 h2. Core <-> Core 

 h3. Notes pour plus tards 

 * Le message _HaveChunks_ doit être multicast et la réponse est un datagramme UDP. Il n'est pas possible de maintenir N-1 connexion TCP en permanence ou N est le nombre de peer. (à mesurer). 


 see source:protos/network_protocol.proto. 

 h3. Parameters 

 Most parameters will be stored as constants in their component. 

 |_.Name|_.Value |_.Unit|_.Explanation/Comments| 
 | _IMAliveFrequency_ | 0.1 | [Hz] | The message _IMAlive_ is sent each 10s. | 
 | _ChunkSize_ | 33554432 | [Byte] | (32 MB) | 
 | _LanSpeed_ | 52428800 | [Byte/s] | (50 MB/s) | 
 | _TimeRecheckChunkFactor_ | 4 | - | If the time to download a chunk exceeds _TimeRecheckChunkFactor_ * _ChunkSize_ / _LanSpeed_ the peers are rescanned to choose a better one (better download rate). For example : 4 * 32 / 50 = 2.6 second | 
 | _SwitchToAnotherPeerFactor_ | 1.5 | - | During the recheck of the peers to choose a better one the other download rate must be above the current * 1.5. | 
 | _DownloadRateValidTime_ | 1500 / _LanSpeed_ = 300 s | [s] | (5 min). The download rate of a peer is only valid during this time after its last update. After that its rate is set to the maximum. |  
 | _TimeBetweenChunksUpdate_ | 500 / _LanSpeed_ = 10 s | [s] | Each 10 s a daemon will scan the _NumberOfChunkToUpdate_ first chunks from the first queued downloads to know which peer has which chunk. | 
 | _NumberOfChunkToUpdate_ | 100 * _LanSpeed_ / _ChunkSize_ = 156 | - | The first 156 hash chunks (3 kB) will by send periodically to each peer. See message _HaveChunks_ in the proto file. | 
 | _FindTimeout_ | 15 | [s] | A search request is abandoned after 15 seconds from the start of the request. See message _Find_. | 
 | _GetHashesTimeout_ | 60 | [s] | Timeout for the message _GetHashes_. | 
 | _GetChunkTimeout_ | 10 | [s] | Timeout for the message _GetChunk_. | 
 | _HaveChunksTimeout_ | _TimeBetweenChunksUpdate_ = 10 | [s] | Timeout for the message _HaveChunks_. | 
 | _GetEntriesTimeout_ | 10 | [s] | Timeout for the message _GetEntries_. | 

 h2. Core <-> GUI