여러분 안녕하세요, 또 업데이트 시간이에요
- Index
- 네트워크 상태 2) SSU 상태 3) 베이지안 기반 피어 프로파일링 4) Q 상태 5) ???
- Net status
지난주 0.5.0.6 릴리스는 우리가 관찰하던 netDb 문제를 해결한 것으로 보입니다(야호). 사이트와 서비스는 0.5.0.5 때보다 훨씬 더 신뢰할 수 있게 되었지만, 가동 후 며칠이 지나면 사이트나 서비스에 접속할 수 없게 되는 문제가 있었다는 보고가 일부 있습니다.
- SSU status
0.6 버전의 UDP 코드가 상당히 진전되었고, 첫 번째 커밋 묶음은 이미 CVS에 반영되었습니다. 아직 실제로 사용할 수 있는 단계는 아니지만, 기본적인 기반은 갖춰져 있습니다. 세션 협상은 잘 동작하고 반신뢰성 메시지 전달(semireliable message delivery)도 예상대로 수행됩니다. 그래도 여전히 해야 할 일이 많고, 작성해야 할 테스트 케이스와 디버그해야 할 특이한 상황들이 남아 있지만, 분명한 진전입니다.
만약 일이 잘 진행된다면, 다음 주에 방화벽/NAT을 명시적으로 설정할 수 있는 사람들만을 대상으로 알파 테스트를 진행할 수도 있습니다. 릴레이 핸들러를 추가하고, routerInfo가 더 빨리 만료되도록 netDb를 튜닝하며, 게시할 릴레이를 선정하기 전에 먼저 전반적인 동작을 다듬고 확정하고 싶습니다. 또한 이번 기회를 활용해 대대적인 테스트를 진행할 예정인데, 현재 여러 가지 핵심적인 queueing(대기열) 요인을 다루고 있기 때문입니다.
- Bayesian peer profiling
bla는 어떤 피어를 통해 tunnel 할지를 결정하는 방식에 대한 몇 가지 수정 작업을 꾸준히 진행해 왔고, bla는 회의에 참석하지는 못했지만 보고할 만한 흥미로운 데이터가 있습니다:
<+bla> 직접 노드 속도 측정을 수행했습니다: OB tunnels 길이 0, IB tunnels 길이 1, batching-interval = 0ms 를 사용하여 약 150개의 노드를 프로파일링했습니다 <+bla> 게다가, 나이브 베이지안 분류(naive Bayesian classification)를 사용해 매우 기초적이고 예비적인 속도 추정도 방금 해봤습니다 <+bla> 후자는 기본 expl. tunnel(탐색용 tunnel) 길이를 사용해 수행했습니다 <+bla> 내가 “ground truth"를 가진 노드 집합과 현재 측정에 포함된 노드 집합의 교집합은 117개 노드입니다 <+bla> 결과가 그렇게 나쁘진 않지만, 그렇다고 크게 인상적이진 않습니다 <+bla> http://theland.i2p/estspeed.webp 를 보세요 <+bla> 매우 느린/빠른 기본 구분은 그럭저럭 괜찮지만, 더 빠른 피어들 사이의 미세한 구분은 훨씬 더 개선될 수 있습니다 <+jrandom2p> 흠, 실제 값은 어떻게 계산된 거죠 - 그게 전체 RTT인가요, 아니면 RTT/길이인가요? <+bla> 일반적인 expl. tunnels를 사용하면, batching 지연을 방지하기가 사실상 불가능합니다 <+bla> 실제 값은 ground-truth 값입니다: OB=0 및 IB=1을 사용해 얻은 값이죠 <+bla> (그리고 variance=0, batching 지연 없음) <+jrandom2p> 그래도 여기서 보기엔 결과가 꽤 좋아 보이네요 <+bla> 추정된 타이밍은 길이 2 +/- 1인 실제 expl. tunnels로부터 베이지안 추론을 사용해 얻은 값입니다 <+bla> 이는 약 3시간 동안 기록된 3000개의 RTT(왕복 지연)에서 얻은 것입니다 (꽤 깁니다) <+bla> 현재로서는 피어 속도가 정적이라고 가정합니다. 가중치는 아직 구현하지 않았습니다 <+jrandom2p> 끝내주네요. 잘했어요, bla <+jrandom2p> 흠, 그럼 추정치는 실제값의 1/4와 같아야겠네요 <+bla> jrandom: 아니요: (일반적인 expl. tunnels을 사용해) 측정된 모든 RTT는 왕복 경로의 홉 수에 대해 보정되어 있습니다 <+jrandom2p> 아, 알겠어요 <+bla> 그 다음에야 베이지안 분류기를 학습시킵니다 <+bla> 현재로서는 측정된 홉당 시간(times-per-hop)을 10개 구간으로 나눕니다: 50, 100, …, 450 ms, 그리고 >500 ms의 추가 구간 <+bla> 예를 들어, 홉당 지연이 작을수록 더 큰 가중치를 줄 수 있고, 완전한 실패(>60000 ms)에도 마찬가지로 가중치를 줄 수 있습니다 <+bla> 그렇긴 하지만…. 추정된 타이밍의 65%가 실제 노드 시간으로부터 표준편차 0.5 이내에 들어옵니다 <+bla> 다만, 표준편차가 >60000 ms 실패에 크게 영향을 받기 때문에 이 부분은 다시 계산해야 합니다
추가 논의 후, bla가 기존 속도 계산기와의 비교 자료를 준비해 @ http://theland.i2p/oldspeed.webp 에 게시했습니다. 해당 PNG 파일들의 미러는 http://dev.i2p.net/~jrandom/estspeed.webp 및 http://dev.i2p.net/~jrandom/oldspeed.webp 에 올라와 있습니다
(용어 정리: IB=인바운드 tunnel 홉, OB=아웃바운드 tunnel 홉이며, 약간의 정정을 거친 뒤, “ground truth”(실제값) 측정치는 반대가 아니라 아웃바운드 tunnel 1홉과 인바운드 tunnel 0홉으로 얻어졌다)
- Q status
Aum도 Q에서 많은 진전을 이루고 있으며, 가장 최근에는 웹 기반 클라이언트 인터페이스 작업을 진행하고 있습니다. 다음 Q 빌드는 새로운 기능이 대거 포함되어 있어 하위 호환되지 않겠지만, 전할 소식이 더 생기면 Aum에게서 더 많은 정보를 들을 수 있을 거라 확신합니다 :)
- ???
일단 지금은 이 정도입니다(회의 시작 전에 마무리해야 해서요). 아, 여담이지만 예정했던 것보다 더 일찍 이사를 하게 될 것 같아서, 제가 어디로 가게 되든 이동 중에는 로드맵의 일부 일정이 다소 변동될 수도 있습니다. 어쨌든, 몇 분 후에 채널에 잠깐 들러서 새로운 아이디어로 저희를 좀 괴롭혀 주세요!
=jr