كيف يعمل الإنترنت (من منظور تصميم الأنظمة)
كيف يعمل الإنترنت (من منظور تصميم الأنظمة)
قبل أن تتمكن من تصميم نظام موزّع يخدم ملايين المستخدمين، تحتاج إلى نموذج ذهني راسخ حول كيفية انتقال البيانات فعلياً عبر الإنترنت. هذا الدرس يزيل طبقة التجريد ويشرح الآليات الملموسة: عناوين IP، والحزم، والتوجيه، والرحلة الكاملة التي يقطعها الطلب من متصفح في لندن إلى مركز بيانات في فيرجينيا.
عناوين IP: مخطط العنونة في الإنترنت
كل جهاز متصل بالإنترنت يُعرَّف بـعنوان IP. النسختان المستخدمتان اليوم هما:
- IPv4 — 32 بتاً، يُكتب على شكل أربعة أرقام عشرية:
93.184.216.34. يوفر نحو 4.3 مليار عنوان فريد — وهو عدد استُنفد عام 2011. - IPv6 — 128 بتاً، يُكتب بمجموعات سداسية عشرية:
2606:2800:220:1:248:1893:25c8:1946. يوفر 3.4 × 1038 عنواناً — لا ينضب فعلياً.
داخل الشبكات الخاصة (شبكتك المنزلية، أو VPC في AWS، أو الشبكة المحلية للمكتب) تستخدم الأجهزة نطاقات IP خاصة مثل 10.0.0.0/8 و172.16.0.0/12 و192.168.0.0/16. تترجم بوابة NAT (ترجمة عناوين الشبكة) بين IPs الخاصة والعامة على الحدود — وهذا هو السبب في أن آلاف الأجهزة المنزلية تتشارك عنوان IP عاماً واحداً.
الحزم: كيف تنتقل البيانات
لا يرسل الإنترنت البيانات كتدفق متواصل. بل يقسّمها إلى قطع ذات حجم ثابت تُسمى حزماً (عادةً حتى 1500 بايت على شبكة إيثرنت — وهو الحد الأقصى لوحدة الإرسال MTU). تحمل كل حزمة:
- IP المصدر وIP الوجهة
- منفذ المصدر ومنفذ الوجهة (مثلاً 443 لـ HTTPS)
- رقم التسلسل (لإعادة التجميع بالترتيب)
- الحمولة — جزء البيانات الفعلي
- المجموع الاختباري — للكشف عن الأخطاء
صورة بحجم 1 ميغابايت تتحول إلى نحو 700 حزمة. قد تسلك كل حزمة مساراً فيزيائياً مختلفاً عبر الشبكة وتصل بصورة مستقلة — ثم تُعيد الوجهة تجميعها. يُسمى هذا شبكة تبديل الحزم، وهو ما يجعل الإنترنت متيناً: إذا فشل مسار ما، يُعيد الموجّه توجيه الحزم عبر مسار آخر.
رحلة الطلب: خطوة بخطوة
لنتتبع طلب GET https://api.example.com/users/42 من البداية حتى النهاية. يمر المسار بست نقاط متميزة على الأقل حتى لطلب API "بسيط".
إليك ما يحدث في كل مرحلة:
- حل DNS — يمتلك المتصفح اسم مضيف (
api.example.com) لكنه يحتاج إلى عنوان IP. يستعلم من محلّل DNS (يُغطى في الدرس الثاني). يُعيد المحلّل104.21.80.5. يضيف هذا عادةً 20–120 مللي ثانية عند التخزين المؤقت الفارغ. - اتصال TCP — يفتح نظام التشغيل اتصال TCP على المنفذ 443. بالنسبة لـ HTTPS يستلزم هذا مصافحة TLS (1–2 رحلات ذهاب وإياب، ~50–100 مللي ثانية على رابط عابر للمحيط الأطلسي).
- توجيه الحزم — تغادر حزمة TCP SYN الموجّه المنزلي. تُعيد بوابة NAT كتابة عنوان IP المصدر من الخاص (مثلاً
192.168.1.5) إلى عنوان IP العائلة العام. ثم تقفز الحزمة عبر نحو 10–20 موجّهاً، يستشير كل منها جدول توجيهه لتحديد القفزة التالية. يعتمد الوقت الكلي على المسافة الفيزيائية — يسير الضوء في الألياف بسرعة ~200,000 كم/ثانية، مما يضيف ~37 مللي ثانية تأخير حتمي بسبب سرعة الضوء وحده بين لندن وفيرجينيا. - موازن التحميل — تصل الحزمة إلى حافة مركز البيانات. يُنهي موازن التحميل اتصال TLS (يفك التشفير)، يقرأ طلب HTTP، ويُحيله إلى خادم تطبيق سليم عبر الشبكة الداخلية.
- خادم التطبيق — يعمل كودك، يستعلم من قاعدة البيانات، ويبني الاستجابة.
- الاستجابة — تعود الإجابة عبر المكدّس نفسه، مشفرةً من جديد، مُقسّمةً إلى حزم، وتُسلَّم إلى المتصفح.
التأخير والعرض الترددي والإنتاجية
ثلاثة أرقام يجب على كل مصمم أنظمة استيعابها:
- التأخير (Latency) — الوقت اللازم لحزمة واحدة للانتقال من المصدر إلى الوجهة. تهيمن عليه المسافة الفيزيائية (سرعة الضوء) والانتظار في كل قفزة. قيم نموذجية: نفس مركز البيانات <1 مللي ثانية، عبر البلاد 20–40 مللي ثانية، عابر للمحيط الأطلسي 70–100 مللي ثانية.
- العرض الترددي (Bandwidth) — الحجم الأقصى للبيانات في الوحدة الزمنية على رابط ما (مثلاً 10 جيجابت/ثانية للعمود الفقري، 100 ميجابت/ثانية للإنترنت المنزلي).
- الإنتاجية (Throughput) — حجم البيانات الفعلي المُسلَّم في الثانية، وهو دائماً ≤ العرض الترددي، ومحدود بـأبطأ رابط في السلسلة (قانون عنق الزجاجة) وخوارزمية التحكم في الازدحام في TCP.
L1 cache hit: ~1 نانو ثانية | RAM: ~100 نانو ثانية | قراءة SSD عشوائية: ~100 ميكرو ثانية | شبكة نفس مركز البيانات: ~0.5 مللي ثانية | عبر البلاد: ~30 مللي ثانية | عابر للمحيط الأطلسي: ~80 مللي ثانية | بحث HDD: ~10 مللي ثانية.
هذه الأرقام تُقرّر كل قرار تخزين مؤقت وتوزيع بيانات في تصميم الأنظمة.
نموذج OSI — لماذا يهم عملياً
ينظّم نموذج OSI (الترابط البيني للأنظمة المفتوحة) الشبكات في 7 طبقات. كمصمم أنظمة، تعمل أساساً مع الطبقات 3–7:
فهم الطبقة التي يعمل عندها مكوّن معيّن يُخبرك الكثير عن سلوكه. موازن تحميل الطبقة 4 يُوجّه بناءً على IP/المنفذ ولا يستطيع فحص ترويسات HTTP؛ أما موازن تحميل الطبقة 7 فيستطيع التوجيه بناءً على مسار URL أو ترويسة المضيف أو ملفات تعريف الارتباط — مما يُمكّن من نشر canary وتوجيه A/B والتخزين المؤقت المدرك للمحتوى.
CIDR والشبكات الفرعية وتصميم VPC
في بيئات السحابة تصمم مساحة عناوين IP الخاصة بك باستخدام تدوين CIDR (التوجيه بين النطاقات عديم الفئات). 10.0.0.0/16 يعني: الـ16 بتاً الأولى هي بادئة الشبكة، مما يمنحك 216 = 65,536 عنواناً. الشبكة الفرعية /24 تحمل 256 عنواناً (254 قابلة للاستخدام — عنوانا الشبكة والإذاعة محجوزان).
يفصل تصميم VPC الإنتاجي النموذجي المهام إلى شبكات فرعية:
- الشبكات الفرعية العامة (
10.0.1.0/24،10.0.2.0/24) — موازنات التحميل وبوابات NAT والمضيفون الحصن. تمتلك مسارات إلى بوابة الإنترنت. - الشبكات الفرعية الخاصة (
10.0.10.0/24،10.0.11.0/24) — خوادم التطبيقات وقواعد البيانات. حركة صادرة فقط عبر بوابة NAT؛ لا دخول من الإنترنت.
الخلاصة
- يعبر الطلب إلى خادم بعيد 10–20 قفزة توجيه ويشمل DNS ومصافحة TCP ومفاوضة TLS ومعالجة على مستوى التطبيق — كل مكوّن يُضيف تأخيراً.
- تنتقل البيانات كـحزم قد تسلك مسارات مختلفة؛ يُعيد TCP تجميعها بالترتيب.
- تفرض المسافة الفيزيائية حداً أدنى حتمياً لسرعة الضوء على التأخير — وهذا هو سبب وجود CDN والتخزين المؤقت على الحافة والنشر متعدد المناطق.
- العمل على الطبقة الصحيحة من OSI يُمكّنك من بناء بنية تحتية أذكى: موازنات تحميل الطبقة 7 تُمكّن التوجيه وإلغاء تحميل المصادقة والتخزين المؤقت بما لا تستطيعه موازنات الطبقة 4.
- في VPC السحابية، احتفظ دائماً بخدمات الواجهة الخلفية في شبكات فرعية خاصة واعرض الحافة فقط (موازنات التحميل، CDN) للعموم.