Create section for bittorrent book chapters
type: documentation
This commit is contained in:
parent
2ba24bb985
commit
83ee172b72
|
@ -3,7 +3,8 @@ Summary
|
||||||
|
|
||||||
[Intermodal](./introduction.md)
|
[Intermodal](./introduction.md)
|
||||||
|
|
||||||
- [BitTorrent BEP Support](./bep-support.md)
|
- [Bittorrent](./bittorrent.md)
|
||||||
- [Alternatives & Prior Art](./prior-art.md)
|
- [BEP Support](./bittorrent/bep-support.md)
|
||||||
- [BitTorrent References](./bittorrent-references.md)
|
- [Alternatives & Prior Art](./bittorrent/prior-art.md)
|
||||||
- [UDP Tracker Protocol](./udp-tracker-protocol.md)
|
- [UDP Tracker Protocol](./bittorrent/udp-tracker-protocol.md)
|
||||||
|
- [References](./bittorrent/references.md)
|
||||||
|
|
4
book/src/bittorrent.md
Normal file
4
book/src/bittorrent.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Bittorrent
|
||||||
|
==========
|
||||||
|
|
||||||
|
This page intentionally left blank.
|
|
@ -1,5 +1,5 @@
|
||||||
Alternatives & Prior Art
|
Alternatives & Prior Art
|
||||||
------------------------
|
========================
|
||||||
|
|
||||||
| Name | UI | Language | Notes |
|
| Name | UI | Language | Notes |
|
||||||
|-----------------------------------------------------------------------------------|-------------------------|------------|-------------------------------------------------------------------------------------------------------------------------------------------|
|
|-----------------------------------------------------------------------------------|-------------------------|------------|-------------------------------------------------------------------------------------------------------------------------------------------|
|
|
@ -1,5 +1,5 @@
|
||||||
BitTorrent References
|
References
|
||||||
---------------------
|
==========
|
||||||
|
|
||||||
| URL | Description |
|
| URL | Description |
|
||||||
|:------------------------------------------------------------|:--------------------------------------------------------------------------------------------------|
|
|:------------------------------------------------------------|:--------------------------------------------------------------------------------------------------|
|
||||||
|
@ -8,3 +8,4 @@ BitTorrent References
|
||||||
| https://wiki.theory.org/index.php/Main_Page | Wiki with lots of information about all aspects of the BitTorrent protocol and implementations. |
|
| https://wiki.theory.org/index.php/Main_Page | Wiki with lots of information about all aspects of the BitTorrent protocol and implementations. |
|
||||||
| https://archive.org/details/2014_torrent_archive_organized) | Massive 158 GiB archive containing 5.5 million torrents, assembled in 2014. |
|
| https://archive.org/details/2014_torrent_archive_organized) | Massive 158 GiB archive containing 5.5 million torrents, assembled in 2014. |
|
||||||
| https://github.com/internetarchive/dweb-transport | Github repository hosting The Internet Archive's distributed web and BitTorrent-related software. |
|
| https://github.com/internetarchive/dweb-transport | Github repository hosting The Internet Archive's distributed web and BitTorrent-related software. |
|
||||||
|
| https://libtorrent.org/udp_tracker_protocol.html | UDP tracker protocol description. |
|
|
@ -1,5 +1,5 @@
|
||||||
Bittorrent UDP-tracker protocol
|
UDP Tracker Protocol
|
||||||
===============================
|
====================
|
||||||
|
|
||||||
This description of the UDP tracker protocol is adapted from
|
This description of the UDP tracker protocol is adapted from
|
||||||
[this page](https://libtorrent.org/udp_tracker_protocol.html) by Arvid Norberg.
|
[this page](https://libtorrent.org/udp_tracker_protocol.html) by Arvid Norberg.
|
||||||
|
@ -24,6 +24,15 @@ table.
|
||||||
When a message is followed by a structure labeled _repeating:_, the rest of the
|
When a message is followed by a structure labeled _repeating:_, the rest of the
|
||||||
message is zero or more of that structure.
|
message is zero or more of that structure.
|
||||||
|
|
||||||
|
Fields with type `[T; N]` are `N` instances of values of type `T` with no extra
|
||||||
|
padding.
|
||||||
|
|
||||||
|
Fields with type `[T; NAME]` are `NAME` instances of values of type `T` with no
|
||||||
|
extra padding, where `NAME` is an integer field of the same message.
|
||||||
|
|
||||||
|
Files with type `[T]` are zero or more instances of values of type `T` with no
|
||||||
|
extra padding, which make up any trailing bytes of the message.
|
||||||
|
|
||||||
|
|
||||||
Actions
|
Actions
|
||||||
-------
|
-------
|
||||||
|
@ -48,11 +57,11 @@ Events
|
||||||
Error
|
Error
|
||||||
------
|
------
|
||||||
|
|
||||||
| size | name | description |
|
| type | name | description |
|
||||||
|------|----------------|-------------------------------------------|
|
|------|----------------|-------------------------------------------|
|
||||||
| i32 | action | |
|
| i32 | action | |
|
||||||
| i32 | transaction_id | |
|
| i32 | transaction_id | |
|
||||||
| i8[] | error_string | rest of packet is string describing error |
|
| [i8] | error_string | rest of packet is string describing error |
|
||||||
|
|
||||||
Connect
|
Connect
|
||||||
-------
|
-------
|
||||||
|
@ -117,7 +126,7 @@ Scrape
|
||||||
|
|
||||||
### Request
|
### Request
|
||||||
|
|
||||||
| size | name |
|
| type | name |
|
||||||
|------|----------------|
|
|------|----------------|
|
||||||
| i64 | connection_id |
|
| i64 | connection_id |
|
||||||
| i32 | action |
|
| i32 | action |
|
||||||
|
@ -125,20 +134,20 @@ Scrape
|
||||||
|
|
||||||
_repeating:_
|
_repeating:_
|
||||||
|
|
||||||
| size | name |
|
| type | name |
|
||||||
|----------|-----------|
|
|----------|-----------|
|
||||||
| [i8; 20] | info_hash |
|
| [i8; 20] | info_hash |
|
||||||
|
|
||||||
### Response
|
### Response
|
||||||
|
|
||||||
| size | name |
|
| type | name |
|
||||||
|------|----------------|
|
|------|----------------|
|
||||||
| i32 | action |
|
| i32 | action |
|
||||||
| i32 | transaction_id |
|
| i32 | transaction_id |
|
||||||
|
|
||||||
_repeating:_
|
_repeating:_
|
||||||
|
|
||||||
| size | name | description |
|
| type | name | description |
|
||||||
|------|------------|----------------------------------------------|
|
|------|------------|----------------------------------------------|
|
||||||
| i32 | complete | peers in swarm that have finished downloding |
|
| i32 | complete | peers in swarm that have finished downloding |
|
||||||
| i32 | downloaded | times torrent has been downloaded |
|
| i32 | downloaded | times torrent has been downloaded |
|
||||||
|
@ -167,11 +176,11 @@ The packet will have authentication information appended to it.
|
||||||
where `packet` is the bytes of the packet, less the final 8 bytes that are
|
where `packet` is the bytes of the packet, less the final 8 bytes that are
|
||||||
`passwd_hash`.
|
`passwd_hash`.
|
||||||
|
|
||||||
| size | name | description |
|
| type | name |
|
||||||
|-------|-----------------|-----------------------------------|
|
|------------------------|-----------------|
|
||||||
| i8 | username_length | |
|
| i8 | username_length |
|
||||||
| i8[] | username | length given by `username_length` |
|
| [i8; `username_length` | username |
|
||||||
| u8[8] | passwd_hash | |
|
| [u8; 8] | passwd_hash |
|
||||||
|
|
||||||
### Request String
|
### Request String
|
||||||
|
|
||||||
|
@ -181,10 +190,10 @@ torrent is allowed to be tracked by a tracker for instance. It could also be
|
||||||
used to authenticate users by generating torrents with unique tokens in the
|
used to authenticate users by generating torrents with unique tokens in the
|
||||||
tracker URL for each user. The extension body has the following format:
|
tracker URL for each user. The extension body has the following format:
|
||||||
|
|
||||||
| size | name | description |
|
| type | name |
|
||||||
|------|----------------|----------------------------------|
|
|------------------------|----------------|
|
||||||
| i8 | request_length | |
|
| i8 | request_length |
|
||||||
| i8[] | request_string | length given by `request_length` |
|
| [i8; `request_length`] | request_string |
|
||||||
|
|
||||||
`request_string` is the string that comes after the hostname and port in the
|
`request_string` is the string that comes after the hostname and port in the
|
||||||
UDP tracker URL. Typically this starts with "/announce" The bittorrent client
|
UDP tracker URL. Typically this starts with "/announce" The bittorrent client
|
Loading…
Reference in New Issue
Block a user