Project

General

Profile

Protocol core-core Version 3 » History » Revision 64

Revision 63 (Greg Burri, 04/05/2011 10:03 PM) → Revision 64/73 (Greg Burri, 04/05/2011 11:48 PM)

h1. Protocol core-core 

 This page describes the protocol used by D-LAN for network communication between cores. 

 See source:application/Protos/core_protocol.proto for message details. 

 !network_protocol.png! 

 h2. Parameters 

 Most parameters will be stored as constants in their component. The given values below are just for illustrate with an example, they will be defined in a empiric manner later. 

 |_.Name|_.Value |_.Unit|_.Explanation/Comments| 
 | _ChunkSize_ | 67108864 | [Byte] | (64 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 * 64 / 50 = 5 second | 
 | _SwitchToAnotherPeerFactor_ | 1.5 | - | During the recheck of the peers to choose a better one the download rate of the candidate must be above the current * 1.5. | 
 | _DownloadRateValidTime_ | 1500 / _LanSpeed_ = 30 s | [s] | 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. |  
 | _IMAliveFrequency_ | 10 s | [s] | The message _IMAlive_ is sent each 10s. | 
 | _NbDownloadThread_ | 3 | - | Number of concurrent downloading thread. | 
 | _BufferSize_ | 65535 | [Byte] | (64 KiB). This buffer is used when reading or writing a file. | 
 | _TCPSocketBufferSize_ | 65535 | [Byte] | (64 KiB). Used when data are received. See _QAbstractSocket::setReadBufferSize_. | 
 | _TCPPeerConnectionKeepAlive_ | 60 | [s] | (1 min). There's can be one or more connection to a certain peer, these connections are kept alive for a period of time. For each known peer there is a pool of connection.    |