blob: 90774c9c9f82947831166d28c1c92c766e346c4b [file] [log] [blame] [view]
Davide Pesavento0b6e1db2025-04-19 19:23:11 -04001# ndnget
2
3**ndnget** is a consumer program that fetches the segments (Data packets) of a named object,
4optionally discovering the latest version of the object, and then writes the content of the
5retrieved object to the standard output.
6
7## Version discovery in ndnget
8
9If a version component is present at the end of the user-specified NDN name, the provided version
10number will be used, without any version discovery process. Otherwise, discovery Interest(s) will
11be sent out to fetch metadata of the solicited content from which the Data version will be resolved.
12For more information about the packet format and naming conventions of Interest and Data packets
13used for version discovery in ndnget, please refer to:
14[Realtime Data Retrieval (RDR) protocol](https://redmine.named-data.net/projects/ndn-tlv/wiki/RDR).
15
16## Interest pipeline types in ndnget
17
18* `fixed`: maintains a fixed-size window of Interests in flight; the window size is configurable
19 via a command line option and defaults to 1.
20
21* `aimd` : adjusts the window size via additive-increase/multiplicative-decrease (AIMD).
22 By default, it uses a Conservative Window Adaptation, that is, the congestion window
23 will be decreased at most once per round-trip-time.
24
25* `cubic`: adjusts the window size similar to the TCP CUBIC algorithm.
26 For details about both aimd and cubic please refer to:
27 [A Practical Congestion Control Scheme for Named Data
28 Networking](https://conferences2.sigcomm.org/acm-icn/2016/proceedings/p21-schneider.pdf).
29
30The default Interest pipeline type is `cubic`.
31
32## Usage examples
33
34To retrieve the latest version of a published object, the following command can be used:
35
36 ndnget /localhost/demo/gpl3
37
38To fetch a specific version of a published object, you can specify the version number at the end
39of the name. For example, if the version is known to be 1449078495094, the following command
40will fetch that exact version of the object (without version discovery):
41
42 ndnget -Nt /localhost/demo/gpl3/v=1449078495094
43
44For more information, run the programs with `--help` as argument.