여러분 안녕하세요, 또 업데이트 시간이에요

  • Index
  1. 네트워크 상태 2) SSU 상태 3) 베이지안 기반 피어 프로파일링 4) Q 상태 5) ???
    1. Net status

지난주 0.5.0.6 릴리스는 우리가 관찰하던 netDb 문제를 해결한 것으로 보입니다(야호). 사이트와 서비스는 0.5.0.5 때보다 훨씬 더 신뢰할 수 있게 되었지만, 가동 후 며칠이 지나면 사이트나 서비스에 접속할 수 없게 되는 문제가 있었다는 보고가 일부 있습니다.

    1. SSU status

0.6 버전의 UDP 코드가 상당히 진전되었고, 첫 번째 커밋 묶음은 이미 CVS에 반영되었습니다. 아직 실제로 사용할 수 있는 단계는 아니지만, 기본적인 기반은 갖춰져 있습니다. 세션 협상은 잘 동작하고 반신뢰성 메시지 전달(semireliable message delivery)도 예상대로 수행됩니다. 그래도 여전히 해야 할 일이 많고, 작성해야 할 테스트 케이스와 디버그해야 할 특이한 상황들이 남아 있지만, 분명한 진전입니다.

만약 일이 잘 진행된다면, 다음 주에 방화벽/NAT을 명시적으로 설정할 수 있는 사람들만을 대상으로 알파 테스트를 진행할 수도 있습니다. 릴레이 핸들러를 추가하고, routerInfo가 더 빨리 만료되도록 netDb를 튜닝하며, 게시할 릴레이를 선정하기 전에 먼저 전반적인 동작을 다듬고 확정하고 싶습니다. 또한 이번 기회를 활용해 대대적인 테스트를 진행할 예정인데, 현재 여러 가지 핵심적인 queueing(대기열) 요인을 다루고 있기 때문입니다.

    1. 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.webphttp://dev.i2p.net/~jrandom/oldspeed.webp 에 올라와 있습니다

(용어 정리: IB=인바운드 tunnel 홉, OB=아웃바운드 tunnel 홉이며, 약간의 정정을 거친 뒤, “ground truth”(실제값) 측정치는 반대가 아니라 아웃바운드 tunnel 1홉과 인바운드 tunnel 0홉으로 얻어졌다)

    1. Q status

Aum도 Q에서 많은 진전을 이루고 있으며, 가장 최근에는 웹 기반 클라이언트 인터페이스 작업을 진행하고 있습니다. 다음 Q 빌드는 새로운 기능이 대거 포함되어 있어 하위 호환되지 않겠지만, 전할 소식이 더 생기면 Aum에게서 더 많은 정보를 들을 수 있을 거라 확신합니다 :)

    1. ???

일단 지금은 이 정도입니다(회의 시작 전에 마무리해야 해서요). 아, 여담이지만 예정했던 것보다 더 일찍 이사를 하게 될 것 같아서, 제가 어디로 가게 되든 이동 중에는 로드맵의 일부 일정이 다소 변동될 수도 있습니다. 어쨌든, 몇 분 후에 채널에 잠깐 들러서 새로운 아이디어로 저희를 좀 괴롭혀 주세요!

=jr