公開手法
判定の仕組み
すべてブラウザ内。 レポート共有を押すまで端末からデータは出ません。以下は完全な論理です。
なぜ違うのか
Speedtest は近いサーバーを1つ測ります。このテストは近い経路、遠い経路、使っているアプリを確認し、何が動いて何が動かないかを示します。
Speedtest
My ISP Sucks
1回のテスト範囲
近いサーバー1つ
1回のテスト範囲
近い経路、遠い経路、あなたのアプリ
下り、上り、ping
あり
下り、上り、ping
あり
動画、ゲーム、クラウド
数値から推定
動画、ゲーム、クラウド
そのサービスを直接確認
何が動いて何が動かないか
示さない
何が動いて何が動かないか
示す
原因
特定しない
原因
Wi‑Fi、ISP、または一つのサービス
送れるもの
数値
送れるもの
苦情文
Ookla および Speedtest とは関係ありません。
このテストを実行1 · 何を測るか
端末から外へ四層:
ローカルGW (preflight)
最寄 Cloudflare PoP へ連続10回 HEAD(各600ms)。損失とジッター。≥2タイムアウトまたはσ>30ms → 不安定。
国内ノード (near)
国コード一致の国内 AWS S3。低スコア=国内ISPや経路。
国際ノード (far)
世界16の AWS S3。near良好でfar高=国際GW問題。
プロファイルサービス (profile)
配信/ゲーム/techへ15–25回 HEAD。pingでは見えないピアリングや遮断を検出。
2 · ノード健全度
0(完璧)〜1(破綻)。near/far平均は別々。
score = 0.7 × (packetLoss / 100)
+ 0.3 × clamp((actualMs − expectedMs) / (expectedMs × 3), 0, 1)
expectedMs = max(10, distanceKm / 50) ← speed-of-light RTT baseline例 — テルアビブ → 北バージニア(9 500 km)
expectedMs = max(10, 9 500 ÷ 50) = 190 ms
actualMs = 219 ms, packetLoss = 0 %
score = 0 + 0.3 × clamp((219 − 190) / (190 × 3), 0, 1) = 0.015 → 健全
nearScore < 0.25
Near: 健全
farScore > 0.35
Far: 規則6を発動
farScore > 0.45
Far: 劣化 (5b)
3 · サービス外れ値
outlier if: status = "fail"
OR status = "slow" AND latencyMs ≥ cohortMedian × 2.5
slow = probe latency above 1 000 ms
ok under that line is not an outlier例
Netflix 95 ms ✓ YouTube 88 ms ✓ Twitch 1 240 ms
cohortMedian = 88 ms → 1 240 ≥ 88 × 2.5 (220) → Twitch は外れ値
4 · 規則チェーン
最初の一致が勝ち。結果ページの DevTools → Console で確認。
オフライン
connectivity = fail, and no other check reached the internet
→ down / local_issue
ローカル経路が不安定
Wi-Fi or cellular AND (preflight unstable OR jitter > 40 ms) AND farScore < 0.40
→ local_issue
DNS 障害
device is online AND dns = fail
→ isp_issue
特定サービス外れ値
core healthy AND 1 ≤ outliers ≤ 40 % of services
→ service_issue
大半のサービス劣化
core healthy AND badServiceFraction ≥ 50 %
→ isp_issue (peering)
国際トラフィック阻害
preflight loss = 0 AND nearScore < 0.25 AND farScore > 0.45 AND ≥ 3 far nodes
→ isp_issue (gateway)
コア / far 劣化
any test = fail OR farScore > 0.35
→ isp_issue
軽度劣化
any test = warn (no harder rule fired)
→ local_issue or isp_issue (medium)
問題なし
→ healthy
5 · プラン達成
ratio = measuredDown / promisedDown ≥ 0.80 → "As advertised" ✓ ≥ 0.50 → "Underdelivering" ~ < 0.50 → "Far below plan" ✗
注釈のみ — 責任判定は変えない。
6 · プライバシー
すべてのプローブはブラウザ内。 レポート共有.
共有内容:判定・スコア・ISP・国・媒体。 IPは保存しません。