|
@@ -36,7 +36,6 @@ a download. Here is the diagram for each field::
|
|
|
Repeated in (NUM IN-FLIGHT) PIECE times
|
|
|
|
|
|
``VER`` (VERSION): 2 bytes
|
|
|
-
|
|
|
Should be either version 0(0x0000) or version 1(0x0001). In
|
|
|
version 1, all multi-byte integers are saved in network byte
|
|
|
order(big endian). In version 0, all multi-byte integers are saved
|
|
@@ -45,45 +44,36 @@ a download. Here is the diagram for each field::
|
|
|
be disappear in the future version.
|
|
|
|
|
|
``EXT`` (EXTENSION): 4 bytes
|
|
|
-
|
|
|
If LSB is 1(i.e. ``EXT[3]&1 == 1``), aria2 checks whether the saved
|
|
|
!InfoHash and current downloading one are the same. If they are not
|
|
|
the same, an exception is thrown. This is called "infoHashCheck"
|
|
|
extension.
|
|
|
|
|
|
``INFO HASH LENGTH``: 4 bytes
|
|
|
-
|
|
|
The length of InfoHash that is located after this field. If
|
|
|
"infoHashCheck" extension is enabled, if this value is 0, then an
|
|
|
exception is thrown. For http/ftp downloads, this value should be
|
|
|
0.
|
|
|
|
|
|
``INFO HASH``: ``(INFO HASH LENGTH)`` bytes
|
|
|
-
|
|
|
BitTorrent InfoHash.
|
|
|
|
|
|
``PIECE LENGTH``: 4 bytes
|
|
|
-
|
|
|
The length of the piece.
|
|
|
|
|
|
``TOTAL LENGTH``: 8 bytes
|
|
|
-
|
|
|
The total length of the download.
|
|
|
|
|
|
``UPLOAD LENGTH``: 8 bytes
|
|
|
-
|
|
|
The uploaded length in this download.
|
|
|
|
|
|
``BITFIELD LENGTH``: 4 bytes
|
|
|
-
|
|
|
The length of bitfield.
|
|
|
|
|
|
``BITFIELD``: ``(BITFIELD LENGTH)`` bytes
|
|
|
-
|
|
|
This is the bitfield which represents current download progress.
|
|
|
|
|
|
``NUM IN-FLIGHT PIECE``: 4 bytes
|
|
|
-
|
|
|
The number of in-flight pieces. These piece is not marked
|
|
|
'downloaded' in the bitfield, but it has at least one downloaded
|
|
|
chunk.
|
|
@@ -92,19 +82,15 @@ The following 4 fields are repeated in ``(NUM IN-FLIGHT PIECE)``
|
|
|
times.
|
|
|
|
|
|
``INDEX``: 4 bytes
|
|
|
-
|
|
|
The index of the piece.
|
|
|
|
|
|
``LENGTH``: 4 bytes
|
|
|
-
|
|
|
The length of the piece.
|
|
|
|
|
|
``PIECE BITFIELD LENGTH``: 4 bytes
|
|
|
-
|
|
|
The length of bitfield of this piece.
|
|
|
|
|
|
``PIECE BITFIELD``: ``(PIECE BITFIELD LENGTH)`` bytes
|
|
|
-
|
|
|
The bitfield of this piece. The each bit represents 16KiB chunk.
|
|
|
|
|
|
DHT routing table file format
|
|
@@ -140,28 +126,22 @@ they should be all zeros::
|
|
|
(NUM NODE) times.
|
|
|
|
|
|
``MGC`` (MAGIC): 2 bytes
|
|
|
-
|
|
|
It must be ``0xa1 0xa2``.
|
|
|
|
|
|
``FMT`` (FORMAT ID): 1 byte
|
|
|
-
|
|
|
The format ID should be ``0x02``.
|
|
|
|
|
|
``VER`` (VERSION): 2 bytes
|
|
|
-
|
|
|
The version number should be ``0x00 0x03``.
|
|
|
|
|
|
``MTIME``: 8 bytes
|
|
|
-
|
|
|
This is the time when aria2 saved the file. The value is the time
|
|
|
since the Epoch(1970/1/1 00:00:00) in 64 bits integer.
|
|
|
|
|
|
``LOCALNODE ID``: 20 bytes
|
|
|
-
|
|
|
Node ID of the client.
|
|
|
|
|
|
``NUM NODE``: 4 bytes
|
|
|
-
|
|
|
The number of nodes the routing table has. ``NUM NODE`` node
|
|
|
information follows.
|
|
|
|
|
@@ -170,14 +150,11 @@ stored in the following fields. They are repeated in ``NUM NODE``
|
|
|
times.
|
|
|
|
|
|
``PLEN`` (COMPACT PEER INFO LENGTH): 1 byte
|
|
|
-
|
|
|
The length of compact peer info. For IPv4 DHT, it must be 6. For
|
|
|
IPv6 DHT, it must be 18.
|
|
|
|
|
|
``COMPACT PEER INFO``: ``(PLEN)`` bytes
|
|
|
-
|
|
|
The address and port of peer in compact peer format.
|
|
|
|
|
|
``NODE ID``: 20 bytes
|
|
|
-
|
|
|
The node ID of this node.
|