aria2的控制文件*.aria2的技术说明

2024-03-27 13:48
文章标签 技术 说明 控制 aria2

本文主要是介绍aria2的控制文件*.aria2的技术说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Technical Notes

This document describes additional technical information of aria2. The expected audience is developers.

本文档描述了aria2的其他技术信息。预期的受众是开发人员。

Control File (*.aria2) Format

The control file uses a binary format to store progress information of a download. Here is the diagram for each field:

控制文件使用二进制格式来存储下载的进度信息。下面是每个字段的图:

 0                   1                   2                   30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---+-------+-------+-------------------------------------------+
|VER|  EXT  |INFO   |INFO HASH ...                              |
|(2)|  (4)  |HASH   | (INFO HASH LENGTH)                        |
|   |       |LENGTH |                                           |
|   |       |  (4)  |                                           |
+---+---+---+-------+---+---------------+-------+---------------+
|PIECE  |TOTAL LENGTH   |UPLOAD LENGTH  |BIT-   |BITFIELD ...   |
|LENGTH |     (8)       |     (8)       |FIELD  | (BITFIELD     |
|  (4)  |               |               |LENGTH |  LENGTH)      |
|       |               |               |  (4)  |               |
+-------+-------+-------+-------+-------+-------+---------------+
|NUM    |INDEX  |LENGTH |PIECE  |PIECE BITFIELD ...             |
|IN-    |  (4)  |  (4)  |BIT-   | (PIECE BITFIELD LENGTH)       |
|FLIGHT |       |       |FIELD  |                               |
|PIECE  |       |       |LENGTH |                               |
|  (4)  |       |       |  (4)  |                               |
+-------+-------+-------+-------+-------------------------------+^                                                       ^|                                                       |+-------------------------------------------------------+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 in host byte order. aria2 1.4.1 can read both versions and only writes a control file in version 1 format. version 0 support will be disappear in the future version.
应为版本0(0x0000)或版本1(0x0001)。 在版本1中,所有多字节整数以网络字节顺序(大字节序)保存。 在版本0中,所有多字节整数以主机字节顺序保存。 aria2 1.4.1可以读取这两个版本,并且只写入版本1格式的控制文件。 版本0支持将在以后的版本中消失。

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.
如果LSB为1(即),aria2将检查保存的!InfoHash和当前下载的信息是否相同。如果它们不相同,则抛出异常。这被称为“infoHashCheck”扩展。 EXT[3]&1 == 1

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.
位于此字段后面的InfoHash的长度。 如果启用了“infoHashCheck”扩展,如果此值为0,则抛出异常。 对于http / ftp下载,此值应为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.

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.

这篇关于aria2的控制文件*.aria2的技术说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852317

相关文章

Linux内核定时器使用及说明

《Linux内核定时器使用及说明》文章详细介绍了Linux内核定时器的特性、核心数据结构、时间相关转换函数以及操作API,通过示例展示了如何编写和使用定时器,包括按键消抖的应用... 目录1.linux内核定时器特征2.Linux内核定时器核心数据结构3.Linux内核时间相关转换函数4.Linux内核定时

Java之ServerSocket使用及说明

《Java之ServerSocket使用及说明》本文介绍了Java中ServerSocket类的使用方法,包括创建ServerSocket对象、绑定端口、监听连接请求、接受连接、关闭连接等常用方法,还... 目录前言常用方法使用案例1.实现TCP2.实现UDP总结前言Java中的ServerSocket

Java Exception与RuntimeException使用及说明

《JavaException与RuntimeException使用及说明》:本文主要介绍JavaException与RuntimeException使用及说明,具有很好的参考价值,希望对大家有所... 目录简介ExceptionRuntimeException自定义异常选择继承Exception(受检异常)

python协程实现高并发的技术详解

《python协程实现高并发的技术详解》协程是实现高并发的一种非常高效的方式,特别适合处理大量I/O操作的场景,本文我们将简单介绍python协程实现高并发的相关方法,需要的小伙伴可以了解下... 目录核心概念与简单示例高并发实践:网络请求协程如何实现高并发:核心技术协作式多任务与事件循环非阻塞I/O与连接

MySQL中存储过程(procedure)的使用及说明

《MySQL中存储过程(procedure)的使用及说明》存储过程是预先定义的SQL语句集合,可在数据库中重复调用,它们提供事务性、高效性和安全性,MySQL和Java中均可创建和调用存储过程,示例展... 目录概念示例1示例2总结概念存储过程:在数据库中预先定义好一组SQL语句,可以被程序反复调用。

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入