1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# Authenticated document peer: direct versus Pure
This experiment uses the real `editor.pure` document app over the same TLS
1.3/TCP transport and `pure-doc/1` wire format. `direct-peer.c` is a
research-only server that parses the same authored program and calls the same
store and evaluator directly. `pure-document-server` is the selected product
server build without its native client commands. The baseline is limited to
the tested synchronous document workflow: it has no Pure work tickets,
admission/lifetime contract, cross-domain forwarding, or cancellation.
Both servers passed the existing `check_document_peer.py` suite: mutual TLS
identity, ALPN, source identity, external Python and native C clients, version
conflicts, one-byte replacement of a 1 MiB value, fragmented/invalid/truncated
frames, deadlines, and restart. The direct and Pure server builds passed the
same suite under ASan/UBSan. These checks do not establish full feature or
security equivalence under concurrent clients or failure networks.
To run the selected product checks on Linux AArch64:
```sh
make -C prototypes/connections check-document-peer
make -C prototypes/connections check-document-server
```
The first command checks the existing combined client/server executable; the
second checks the server-only code ceiling and runs the same peer scenarios
with the native C client from the combined executable. Both need permission
to bind a local TCP port. The server-only executable and budget are optional;
the default core and CLI do not link TLS.
To reproduce the read comparison:
```sh
python3 research/experiments/005-direct-document-peer/run.py \
--body-bytes 8192 --reads 1024 --pairs 6 \
--output research/experiments/005-direct-document-peer/results/local-8k.json
python3 research/experiments/005-direct-document-peer/run.py \
--body-bytes 1048576 --reads 64 --pairs 4 \
--output research/experiments/005-direct-document-peer/results/local-1m.json
```
The runner compiles both servers from source. Each trial creates and reads a
real stored document, then times repeated full reads on one authenticated,
persistent Python TLS connection. It verifies every response and the final
stored file hash. TLS handshake, certificate creation, file creation, and the
first cache-warming read are outside the timed batch. The server process RSS
is recorded before and after. Fresh stores and alternating order reduce some
order effects but do not control CPU frequency, OpenSSL or Python overhead,
network behavior beyond local loopback, or host scheduling. The JSON files
contain all individual samples, source hashes, compiler and OpenSSL versions.
The short `before-nodelay` and `after-nodelay` artifacts repeat exactly 32
authenticated 8 KiB reads through each server, differing only in the common
TLS transport's TCP_NODELAY option. This intervention supports a Nagle/delayed
ACK explanation for the prior ~44 ms per-request stall; no packet trace was
captured, so that exact kernel interaction remains an inference. The longer
post-change runs are for direct-versus-Pure cost, not a claim of Internet or
Kitex/QUIC performance.
See [the result report](../../../docs/research/055-authenticated-peer-transport-cost.md).
|