어느 구간이 문제인지 어떻게 알아내나요?
페이지가 여러 경로를 동시에 측정해요: 가장 가까운 Cloudflare 지점, 도쿄·프랑크푸르트·버지니아의 클라우드 리전, 고른 서비스, 그리고 공개 STUN 서버로 가는 UDP. 5초마다 비교해서, 모두 함께 나빠지면 내 쪽(와이파이, 공유기, 회선), 가까운 곳은 정상인데 먼 곳만 나빠지면 장거리 경로, 서비스 하나만 나빠지면 그 서비스, 웹은 정상인데 UDP만 손실되면 게임과 통화가 끊긴다고 판단해요.
모든 판단에 근거와 신뢰도를 함께 보여 줘요.
프록시를 켜도 정확한가요?
구간을 나눠서 봐요. 중국 본토에서 프록시를 켰다면, 프록시를 거치지 않는 중국 내 사이트로 내 회선을, 프록시를 거친 가장 가까운 Cloudflare 지점으로 프록시 서버까지 가는 구간을, 먼 클라우드 리전으로 그 너머를 재요. 셋을 비교하면 회선인지, 서버까지인지, 그 너머인지 알 수 있어요. 프록시 앱이 TUN이나 fake-ip 모드면 UDP도 프록시를 거칠 수 있어서, 판단에 신뢰도를 함께 표시해요.
UDP 손실은 어떻게 재나요?
웹 페이지는 UDP를 직접 보낼 수 없어서, 공개 STUN 서버(Cloudflare, Google, 중국 본토에서는 Xiaomi와 Bilibili도)에 내 공인 주소를 물어봐요. 한 번 물어보는 게 UDP 왕복 한 번이에요. 요청이 손실되면 브라우저가 250 ms 뒤에 다시 보내서 응답이 늦어져요. 이렇게 늦은 응답을 세어 손실률을 추정해요. 서버에서 일부러 2%, 5%, 10%를 버려 확인해 보니 각각 1~2%, 4~5%, 8~9%로 나왔어요.
서버당 1분에 약 80번 응답하므로, 정확한 비율을 보려면 몇 분 이상의 데이터가 필요해요.
몇 번째 홉이 문제인지는 왜 알 수 없나요?
웹 페이지는 ICMP를 보낼 수도, traceroute를 할 수도 없어서, 경로를 구간으로 나눠 판단할 뿐 어느 라우터인지까지는 짚을 수 없어요. 그래도 와이파이와 회선, 장거리 경로, 프록시, 상대 서비스 중 어디인지라는 대부분의 궁금증에는 답할 수 있어요.
「진단」과 「계속 모니터링」은 어떻게 다른가요?
진단은 2분 동안 측정하고 20초 뒤에 잠정 판단을 보여 줘요. "지금 끊기는지, 어디가 문제인지"에 답해요. 모니터링은 「중지」를 누를 때까지 계속돼요. 구간마다 5초에 한 칸씩 기록하고, 10초 넘게 나빠지면 이벤트로 남겨요. 오프라인, 네트워크 종류나 공인 주소의 변화도 기록해요. 문제가 생겼다 말았다 할 때는 모니터링을 켠 채 다른 일을 하다가 돌아와 기록을 보면, 어느 구간이 언제, 얼마나 나빴는지 알 수 있어요. 백그라운드 탭에서도 계속 측정해요.
「공유기」 줄은 어떻게 생기나요?
측정을 시작하면 페이지가 흔한 주소 몇 개에서 집 공유기를 찾고, 찾으면 「공유기」 줄을 추가해요. 그러면 내 쪽 문제를 다시 둘로 나눌 수 있어요: 공유기까지도 나빠졌다면 와이파이나 집 안 네트워크, 공유기는 정상인데 그 너머가 나빠졌다면 회선 연결이에요. Chrome은 먼저 이 페이지가 로컬 네트워크에 접근해도 되는지 묻고, 허용해야 측정해요. 다른 브라우저는 아직 지원하지 않아서 이 줄이 없어요.
내 데이터를 업로드하나요?
아니요. 모든 요청은 브라우저에서 측정 대상 사이트와 STUN 서버로 바로 가고, 결과는 이 페이지에만 남았다가 닫으면 사라져요.
결과를 공유하면 링크에는 판단, 숫자, 구간별 상태만 들어가고 IP 주소는 들어가지 않아요. 국가와 Cloudflare 지점은 체크했을 때만 들어가요.