Project

General

Profile

Actions

Protocol core-core Version 3 » History » Revision 19

« Previous | Revision 19/73 (diff) | Next »
Greg Burri, 07/08/2009 09:54 AM


Protocols

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

Core <-> Core

see source:protos/network_protocol.proto.

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 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.

Core <-> GUI

Updated by Greg Burri over 15 years ago · 19 revisions