عندما يُقال "السرعة" في عالم البروكسي فالمقصود غالبًا هو زمن الاستجابة (latency) — لأن ما تشعر به في الاستخدام اليومي ليس عرض النطاق، بل زمن استجابة كل نقرة. هذا المقال يفكك التأخير إلى أجزائه.
التعريف
زمن الاستجابة (latency) هو إجمالي الوقت الذي يستغرقه الطلب للخروج منك والوصول إلى الهدف وعودة الرد (RTT — round trip time). يُقاس بالميلي ثانية ويتكوّن في اتصال عبر بروكسي من ثلاثة أجزاء:
إجمالي التأخير = [أنت ← البروكسي] + [زمن معالجة البروكسي] + [البروكسي ← الهدف]
الجزء 1: أنت ← البروكسي (الجغرافيا)
سرعة الضوء لا تقبل المساومة: من إسطنبول إلى فرانكفورت عبر الألياف ~25-35 ms، وإلى نيويورك ~65-90 ms هو الحد الأدنى الفيزيائي. لذلك فإن موقع البروكسي هو العامل الأكبر في تحديد التأخير. إذا كنت تعمل من تركيا فإن TR و DE المخارج تمنحك أدنى قاعدة ممكنة.
الجزء 2: زمن معالجة البروكسي (النوع والازدحام)
استقبال الخادم للطلب وتوجيهه يستغرق عادة 1-5 ms؛ وترتفع هذه القيمة عند الازدحام. الإضافات النموذجية بحسب النوع:
| النوع | إضافة المعالجة + المخرج | السبب |
|---|---|---|
| Datacenter | +1-10 ms | خروج مباشر عبر الشبكة الأساسية |
| ISP | +5-15 ms | بنية datacenter، مسار ISP |
| Residential | +30-150 ms | توجيه عبر خط منزلي حقيقي |
| Mobile | +40-120 ms | التأخير الطبيعي للشبكة الخلوية |
هذا الجدول ليس ترتيبًا للجودة: التأخير الذي يضيفه residential/mobile هو ثمن درجة الثقة التي يوفرها، وهو غير مهم في معظم المهام.
الجزء 3: البروكسي ← الهدف
الجزء الذي يُنسى كثيرًا: بُعد البروكسي عن الهدف. استخدام بروكسي في فرانكفورت أثناء scraping لموقع أمريكي يضيف ~90 ms إلى مسار [البروكسي ← الهدف]. القاعدة الذهبية: اختر البروكسي قريبًا من الهدف لا منك — خصوصًا في المهام كثيفة الطلبات حيث يتراكم الفارق أضعافًا.
متى يكون التأخير حرجًا؟
- حرج: التقاط الأسعار/المخزون اللحظي، سباقات المعاملات المتسلسلة، البوتات في الزمن الحقيقي.
- مهم: عمليات scraping بعشرات الآلاف من الطلبات يوميًا (100 ms لكل طلب = ساعات في اليوم).
- غير مهم: الفحوص الروتينية منخفضة الحجم، المهام الدفعية الليلية، التصفح اليدوي.
وصفة خفض التأخير
- اختر موقعًا قريبًا من الهدف (أكبر مكسب).
- خصّص المهام الحساسة للوقت datacenter/ISP، والمهام المحمية لـ residential.
- أعد استخدام الاتصالات (keep-alive)؛ لا تدفع تكلفة TCP handshake مع كل طلب.
- قِس: اختبار ping و مع دليل اختبار السرعة اجعل قراراتك مستندة إلى البيانات.