aboutsummaryrefslogtreecommitdiffstats
path: root/docs/design
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-29 13:58:30 +0100
committereunhhu <[email protected]>2026-09-29 13:58:44 +0100
commit0bbc12658c63f5f5fce2683798d4ac08b1e26e08 (patch)
treeb589d0b4c2adac20ec2d5180b0cfe865995cf4a9 /docs/design
parent9791a1e70979ee4ba832851912f0de20301343a8 (diff)
downloadpure-0bbc12658c63f5f5fce2683798d4ac08b1e26e08.tar.gz
pure-0bbc12658c63f5f5fce2683798d4ac08b1e26e08.zip
Say what epochs cost a link, and what the search for it found (099)
Forward secrecy, 098's first task left: keys that leak later open only epoch 0. M2 after the epoch began and after a restart is as before it (p50 0.4 ms, p99 0.8 ms, the same CPU, no X25519 on restart). It costs a p50 of 0.7-1.0 ms more while ten thousand devices first meet and for about 40 s of accepts after, and a receiver that lost its memo now stalls 0.8 s and catches up in 7.7 s, not 0.2-0.7: it lost the epochs, and each sender opens one again. The search also found a packet more a device from each of M6's path probe and the security checks' challenge, and a load generator whose own pass over its devices was the floor of the latency it measured. 098's note that epochs narrow KCI to the first epoch was wrong; corrected.
Diffstat (limited to 'docs/design')
-rw-r--r--docs/design/011-pure-transport.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/docs/design/011-pure-transport.md b/docs/design/011-pure-transport.md
index c4df992..d3a327a 100644
--- a/docs/design/011-pure-transport.md
+++ b/docs/design/011-pure-transport.md
@@ -30,7 +30,12 @@ M6는 [097](../research/097-lossy-paths.md)에 있다. 처음에는 패킷 순�
보안 검사는 [098](../research/098-link-security.md)에 있다. 경로 위의 공격자가 할 수 있는 다섯 가지(변조, 재전송, 위장, 폭주,
그리고 모든 검사에서의 논스 재사용)를 결정적 검사로 만들었더니 구멍 여섯이 나왔다. 가장 무거운 것은 쉬던 보내는 이가 돌아올 때의
논스 재사용이었다. 모두 고쳐 통과한다. 새 주소는 CHALLENGE와 RESPONSE로 확인하고, 그 전에는 받은 바이트의 3배까지만 답한다.
-전방 비밀성(에폭 바꿈)은 아직 없다.
+
+에폭 바꿈(전방 비밀성)은 [099](../research/099-link-epochs.md)에 있다. 보내는 쪽이 임시 키를 OFFER로 내고 받는 쪽이 ACCEPT로
+받는다. 두 노드의 개인 키가 나중에 새도 run의 첫 에폭이 시작된 뒤의 것은 열리지 않는다. 받는 쪽은 수락한 에폭을 메모에 적어,
+다시 떠도 비대칭 연산 없이 잇는다. X25519 합의가 이 Pi에서 164 µs라 수락은 초당 256번으로 묶고 답을 보낸 뒤에 한다. M2의 정상
+상태와 재시작은 에폭 전과 같다. 값은 대량으로 처음 만난 뒤 약 40초의 지연(p50 +0.7 ms)과, 메모를 잃은 재시작의 7.7초 따라잡기다.
+이것을 재다가 M6와 보안 검사가 기기마다 패킷을 하나씩 더 보내던 것(+10k, +38k)을 찾아 없앴다.
2026-09-29에 링크를 `link/`로 뗐다([009](009-layout.md)). 프로토콜은 이제 소켓, 스레드, 시계가 없는 상태이고
(`link/link-protocol.h`), UDP와 스레드는 그 위의 층이다. 그래서 한 스레드가 링크 여럿을 들 수 있다. M2를 이 보내는 쪽으로