무엇을 측정하나요?
대형 CDN에는 수백 개의 지점(POP, 데이터 센터)이 있습니다. 어느 지점이 응답하느냐에 따라 그 CDN 위의 모든 사이트 속도가 정해지며, 가장 가까운 지점이라는 보장도 없습니다.
페이지는 브라우저에서 CDN마다 작은 파일을 사이트를 열 때처럼 요청하고, 어느 지점이 응답했는지 읽습니다. 그리고 그 지점까지의 거리, 왕복 시간, 그 거리에서 가능한 최솟값을 보여 줍니다.
이 사이트로는 아무것도 보내지 않습니다. 요청은 브라우저에서 각 CDN으로 바로 갑니다.
지점은 어떻게 읽나요?
CDN마다 응답에 지점을 적는 방식이 다릅니다:
Cloudflare: /cdn-cgi/trace의 colo(HKG).
Amazon CloudFront: Server-Timing의 cdn-pop 또는 X-Amz-Cf-Pop(NRT57-P11).
Akamai: Akamai-Request-BC, 도시 이름으로 적힘(JP_13_TOKYO).
Fastly: X-Served-By(cache-nrt-…-NRT).
Azure Front Door: X-Azure-Ref(…C1TYO…).
Bunny: Server 헤더(BunnyCDN-JP1-…).
Wikimedia: X-Cache. 캐시 서버 번호가 데이터 센터를 나타냅니다.
브라우저는 응답이 허용할 때만 이 정보를 읽을 수 있어서, CDN마다 읽기를 허용하는 공개 파일로 측정합니다. Google, Alibaba Cloud, Tencent EdgeOne, Wangsu, Gcore, CDN77은 허용하지 않아 시간만 잽니다.
왜 먼 지점에 연결되나요?
CDN은 거리로 배정하지 않습니다. Cloudflare, Akamai 등은 같은 주소를 여러 곳에서 동시에 알리거나(애니캐스트) DNS 리졸버 위치에 따라 응답하며, 실제 경로는 통신사가 고릅니다.
중국 본토에서는 흔한 일입니다. Cloudflare 무료·저가 요금제 사이트는 많은 통신사에서 미국 서부 등 먼 지점으로 연결됩니다. 그 경로가 더 싸기 때문입니다. 유료 요금제와 China Network(JD Cloud와 운영)는 홍콩이나 중국 본토 지점이 응답합니다.
프록시나 VPN도 지점을 바꿉니다. CDN에는 프록시 주소가 보이고, 그 위치에 맞춰 배정됩니다.
최소 왕복 시간이란?
광섬유 안에서 빛은 1밀리초에 약 200 km를 가므로, 거리 d의 왕복은 d ÷ 100밀리초보다 빠를 수 없습니다. 실제 경로는 직선의 1.5~2배입니다. 왕복 시간이 그 두 배에 40 ms를 더한 값보다 훨씬 길면 '돌아서 감'으로 표시합니다. 경로가 우회하거나 혼잡한 구간에서 기다리는 것입니다.
'가장 가깝지 않음'은 무슨 뜻인가요?
모든 지점을 공개하는 CDN(Cloudflare, Bunny, Wikimedia)은 나와 가장 가까운 지점을 찾습니다. 응답한 지점이 그보다 1,000 km 이상, 그리고 두 배 이상 멀면 표시합니다. 고장이 아니라 CDN이나 통신사가 다른 경로를 고른 것입니다.
사이트 확인은 어떻게 하나요?
도메인을 입력하면 이 사이트의 Worker가 Cloudflare DNS로 조회해(로컬이나 변조된 응답의 영향을 받지 않음) CNAME이 가리키는 곳에서 CDN을 알아냅니다. 사이트의 /cdn-cgi/trace로 Cloudflare인지 확인하고, 사이트가 허용하면 favicon 응답 헤더에서 지점을 읽습니다. 마지막으로 사이트까지의 시간을 잽니다.
도메인은 이 사이트의 Worker와 Cloudflare DNS로 전송되며, 둘 다 저장하지 않습니다.
내 위치는 어디서 오나요?
IP 주소로 Cloudflare가 추정한 위치입니다(이 사이트는 Cloudflare에서 동작합니다). 보통 도시 단위로 맞지만 수백 km 어긋날 수 있고, 프록시를 쓰면 프록시 위치가 됩니다. '정확한 위치 사용'을 누르면 브라우저 위치를 쓰며, 페이지 안에서만 사용됩니다.
내 데이터를 수집하나요?
아니요. 요청은 브라우저에서 각 CDN으로 바로 가며, CDN은 다른 사이트처럼 내 IP 주소를 봅니다. 이 사이트는 아무것도 저장하지 않습니다. 공유 링크에는 지점과 왕복 시간이 들어가고, 도시, 좌표(약 10 km 단위), 통신사는 체크했을 때만 들어갑니다. IP 주소는 절대 들어가지 않습니다. 코드는 GitHub에 공개되어 있습니다.