Project

General

Profile

Actions

Protocol core-core Version 3 » History » Revision 63

« Previous | Revision 63/73 (diff) | Next »
Greg Burri, 04/05/2011 10:03 PM


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.

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.

Updated by Greg Burri about 13 years ago · 63 revisions