on master help sign in
ames.md: fix relative links
6500ce0Matilde Park
tutorials/arvo/ames.md+10−10
@@ -135,25 +135,25 @@ The 32-bit header is given by the following data, presented in order:
135 - 2 bits: the bit width of the receiver address encoded as a 2-bit enum,
135 - 2 bits: the bit width of the receiver address encoded as a 2-bit enum,
136 - 1 bit: whether the packet is encrypted or not,
136 - 1 bit: whether the packet is encrypted or not,
137 - 4 bits: unused.
137 - 4 bits: unused.
138−
138+
139 Every packet sent between ships is encrypted except for self-signed attestation packets from 128-bit comets.
139 Every packet sent between ships is encrypted except for self-signed attestation packets from 128-bit comets.
140−
140+
141#### Body
141#### Body
142
142
143The body is of variable length and consists of three parts in this order:
143The body is of variable length and consists of three parts in this order:
144
144
145 - The `@p` of the sending ship,
145 - The `@p` of the sending ship,
146 - The `@p` of the receiving ship,
146 - The `@p` of the receiving ship,
147− - The payload, which is the [`+jam`](@/docs/reference/libary/2p.md#jam) (i.e. serialization) of the noun `[origin content]`.
147+ - The payload, which is the [`+jam`](@/docs/reference/library/2p.md#jam) (i.e. serialization) of the noun `[origin content]`.
148−
148+
149 `origin` is the IP and port of the original sender if the packet was proxied
149 `origin` is the IP and port of the original sender if the packet was proxied
150 through a relay and null otherwise. `content` is a noun that is either an encrypted ack or an
150 through a relay and null otherwise. `content` is a noun that is either an encrypted ack or an
151 encrypted message fragment, unless it is a comet attestation packet in which
151 encrypted message fragment, unless it is a comet attestation packet in which
152 case it is unencrypted. `content` is always 1kB in size or less.
152 case it is unencrypted. `content` is always 1kB in size or less.
153−
153+
154 The sender and receiver live outside of the jammed data section to simplify
154 The sender and receiver live outside of the jammed data section to simplify
155 packet filtering for the interpreter.
155 packet filtering for the interpreter.
156−
156+
157### Packeting
157### Packeting
158
158
159When Ames has a message to be sent it must first determine how many packets are
159When Ames has a message to be sent it must first determine how many packets are
@@ -163,7 +163,7 @@ bigger than a kilobyte it will split it into packets whose payloads are 1 kB or
163less. It then numbers each one - this is message 17, packet 12, this is message
163less. It then numbers each one - this is message 17, packet 12, this is message
16417, packet 13, etc., so that when the receiver receives these packets it knows
16417, packet 13, etc., so that when the receiver receives these packets it knows
165which number they are. Finally it encrypts each individual packet and enqueues
165which number they are. Finally it encrypts each individual packet and enqueues
166−them to be sent along their stated flow.
166+them to be sent along their stated flow.
167
167
168Network packets aren't always received in order, so this numbering is important
168Network packets aren't always received in order, so this numbering is important
169for reconstruction, and also packets may get lost. So Ames does transmission
169for reconstruction, and also packets may get lost. So Ames does transmission
@@ -175,7 +175,7 @@ until it does. The logic for determining how many packets to send or re-send at
175As each packet in a message is received, Ames decrypts it and stores the message fragment. Once it's received every packet for a message, Ames concatenates the fragments back into a single large atom and uses `+cue` to deserialize that back into the original message noun.
175As each packet in a message is received, Ames decrypts it and stores the message fragment. Once it's received every packet for a message, Ames concatenates the fragments back into a single large atom and uses `+cue` to deserialize that back into the original message noun.
176
176
177
177
178−
178+
179### Acks and Nacks
179### Acks and Nacks
180
180
181In this section we discuss acks and nacks. In Ames, an "ack", short for "acknowledgment", is a small packet attesting that a piece of information (either a packet or a whole message) was received. Ames makes use of
181In this section we discuss acks and nacks. In Ames, an "ack", short for "acknowledgment", is a small packet attesting that a piece of information (either a packet or a whole message) was received. Ames makes use of
@@ -241,12 +241,12 @@ This means all re-sends of an ack packet will be bitwise identical to each other
241Each datum in this noun is an atom with the aura `@ud` or an aura that nests
241Each datum in this noun is an atom with the aura `@ud` or an aura that nests
242under `@ud`.
242under `@ud`.
243
243
244−Here, `our-life` refers to the [`life`](@/docs/glossary/breach), or revision
244+Here, `our-life` refers to the [`life`](@/docs/glossary/breach.md), or revision
245number, of the acking ship's networking keys, and `her-life` is the `life` of
245number, of the acking ship's networking keys, and `her-life` is the `life` of
246the ack-receiving ship's networking keys. `bone` is an opaque number identifying
246the ack-receiving ship's networking keys. `bone` is an opaque number identifying
247the flow. `message-num` denotes the number of the
247the flow. `message-num` denotes the number of the
248message in the flow identified by `bone`. `fragment-num` denotes the number of
248message in the flow identified by `bone`. `fragment-num` denotes the number of
249−the fragment of the message identified by `message-num` that is being acked.
249+the fragment of the message identified by `message-num` that is being acked.
250
250
251A message (n)ack is a different kind of ack that is obtained by encrypting the
251A message (n)ack is a different kind of ack that is obtained by encrypting the
252`+jam` of the following noun:
252`+jam` of the following noun: