منهجية مفتوحة

كيف نصل إلى الحكم

كل شيء في المتصفح. لا تغادر البيانات جهازك حتى تضغط مشاركة التقرير. المنطق أدناه كامل — لا شيء مخفي.

لماذا هذا مختلف؟

يقيس Speedtest خادمًا قريبًا واحدًا. هذا الاختبار يفحص المسارات القريبة والبعيدة وتطبيقاتك، ثم يعرض ما يعمل وما لا يعمل.

Speedtest

My ISP Sucks

اختبار واحد يغطي

خادمًا قريبًا واحدًا

اختبار واحد يغطي

مسارات قريبة وبعيدة وتطبيقاتك

التنزيل والرفع والبنغ

نعم

التنزيل والرفع والبنغ

نعم

البث والألعاب والسحابة

تقدير من الرقم

البث والألعاب والسحابة

فحص تلك الخدمات

ما يعمل وما لا يعمل

لا يُعرض

ما يعمل وما لا يعمل

يُعرض

من المسؤول

لا يُسمّى

من المسؤول

واي فاي أو المزود أو خدمة

يمكنك إرسال

الرقم

يمكنك إرسال

شكوى

لا علاقة له بـ Ookla أو Speedtest.

ابدأ هذا الاختبار

1 · ماذا نفحص

أربع طبقات من جهازك إلى الخارج:

البوابة المحلية (preflight)

10 طلبات HEAD لأقرب نقطة Cloudflare (600 ملث). نقيس الفقد والاهتزاز. ≥ 2 مهلة أو σ > 30 ملث → المسار غير مستقر.

عقد داخل البلد (near)

AWS S3 في بلدك (برمز الدولة من IP). درجة منخفضة = مزود محلي أو توجيه.

عقد دولية (far)

16 منطقة AWS S3 عالمياً. درجة عالية مع near جيد = بوابة دولية.

نقاط الخدمات (profile)

15–25 HEAD للبث/الألعاب/التقنية. يكتشف peer والحظر الذي لا يراه الـ 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 كم)

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 يعرض كل قاعدة.

1

دون اتصال

connectivity = fail, and no other check reached the internet

→ down / local_issue

2

مسار محلي غير مستقر

Wi-Fi or cellular AND (preflight unstable OR jitter > 40 ms) AND farScore < 0.40

→ local_issue

3

DNS معطوب

device is online AND dns = fail

→ isp_issue

4

خدمة شاذة محددة

core healthy AND 1 ≤ outliers ≤ 40 % of services

→ service_issue

5

معظم الخدمات سيئة

core healthy AND badServiceFraction ≥ 50 %

→ isp_issue (peering)

5b

حظر المرور الدولي

preflight loss = 0 AND nearScore < 0.25 AND farScore > 0.45 AND ≥ 3 far nodes

→ isp_issue (gateway)

6

النواة / far متدهورة

any test = fail OR farScore > 0.35

→ isp_issue

6b

تدهور خفيف

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 · الخصوصية

كل الفحوصات في المتصفح. لا يُرسل شيء حتى تضغط مشاركة التقرير.

عند المشاركة: الحكم والدرجات والمزود والدولة والنوع. لا نخزّن عناوين IP.