ما هو بروتوكول QUIC؟ وكيف يسرّع HTTP/3 اتصالات الإنترنت؟
قد تفتح صفحة ويب وتحمّل صورًا وملفات في الوقت نفسه، بينما يتنقل هاتفك بين شبكة Wi-Fi وشبكة الجوال. حتى لا يؤدي فقدان حزمة بيانات واحدة إلى تعطيل بقية الطلبات، طُوّر بروتوكول QUIC ليقدم طريقة حديثة وآمنة لنقل البيانات عبر الإنترنت. ويُستخدم QUIC أساسًا مع HTTP/3، لكنه ليس مرادفًا له.
يعمل QUIC فوق UDP، ويجمع آليات النقل الموثوق والتشفير وتعدد التدفقات في تصميم واحد. ومن أبرز مزاياه تقليل زمن إنشاء الاتصال، وعزل بعض آثار فقدان الحزم بين التدفقات، ودعم انتقال الاتصال إلى مسار شبكة جديد عند تغيّر عنوان الجهاز أو شبكته.
ما هو بروتوكول QUIC؟
QUIC بروتوكول نقل عام صُمم لتبادل البيانات بين العميل والخادم بزمن استجابة منخفض، مع توفير تدفقات متعددة وآليات للتحكم في التدفق والازدحام والتعامل مع فقدان الحزم. واسم QUIC اسم للبروتوكول وليس اختصارًا لعبارة تقنية.
نُشر الإصدار الأول في مواصفة RFC 9000 الصادرة عن فريق مهام هندسة الإنترنت. ولا يحل QUIC محل بروتوكول الإنترنت IP؛ بل تُغلّف حزم QUIC عادة داخل مخططات بيانات UDP، ثم تنتقل عبر IP كغيرها من حركة الشبكة.
إذا أردت فهم موقع بروتوكولات النقل ضمن بنية الإنترنت، يمكنك مراجعة شرح نموذج TCP/IP وطبقاته الأربع.
ما علاقة QUIC ببروتوكولي UDP وTCP؟
يوفر UDP نقل مخططات البيانات دون إنشاء اتصال موثوق بالمعنى الذي يقدمه TCP؛ فهو لا يضمن وحده وصول كل البيانات أو ترتيبها. أما QUIC فيستخدم UDP كوسيلة نقل أساسية، ثم يضيف فوقه آليات لتأكيد الاستلام وإعادة الإرسال والتحكم في الازدحام وترتيب البيانات داخل كل تدفق.
في النموذج التقليدي، يستخدم HTTP/2 عادة TCP مع TLS. أما HTTP/3 فينقل دلالات HTTP فوق QUIC، ولذلك لا يعني استخدام QUIC أن TCP اختفى من الإنترنت؛ فكثير من الاتصالات والخدمات ما زالت تستخدم TCP.
ولفهم الفرق بين الطبقات والنماذج، يمكنك أيضًا قراءة شرح نموذج OSI.
كيف يعمل QUIC خطوة بخطوة؟
يمكن تبسيط دورة الاتصال إلى المراحل الآتية، مع ملاحظة أن تفاصيل الحزم والتفاوض أكثر دقة في المواصفة التقنية:
- بدء الاتصال: يرسل العميل حزم QUIC الأولية إلى الخادم عبر UDP، ويبدأ التفاوض على معلمات النقل ومفاتيح التشفير.
- تأمين الاتصال: يدمج QUIC آلية المصافحة الخاصة بـTLS 1.3، بحيث يتفق الطرفان على مفاتيح التشفير ويتحقق العميل من هوية الخادم وفق الشهادات الرقمية.
- إنشاء التدفقات: يمكن للاتصال الواحد أن يحمل عدة تدفقات مستقلة، مثل تدفق لملف HTML وآخر لصورة وثالث لملف JavaScript.
- إدارة النقل: يتابع البروتوكول الإقرارات وفقدان الحزم والتحكم في التدفق والازدحام، ثم يعيد إرسال البيانات التي تحتاج إلى ذلك.
- تغيير المسار عند الحاجة: يمكن للاتصال استخدام معرّفات اتصال تسمح بالتحقق من مسار شبكة جديد ومتابعة الاتصال عند انتقال العميل بين بعض الشبكات.
ما الفرق بين TCP وQUIC وHTTP/3؟
| العنصر | وظيفته | ما الذي يميزه؟ |
|---|---|---|
| TCP | بروتوكول نقل موثوق قائم على الاتصال | يوفر ترتيبًا موحدًا للبايتات وإعادة الإرسال والتحكم في الازدحام |
| QUIC | بروتوكول نقل آمن يعمل فوق UDP | يدعم تدفقات متعددة، ويستخدم TLS 1.3، ويدعم انتقال الاتصال بين مسارات الشبكة |
| HTTP/3 | إصدار من بروتوكول HTTP | ينقل دلالات HTTP فوق QUIC بدل TCP |
بعبارة مختصرة: TCP وQUIC يؤديان دورًا في طبقة النقل، بينما HTTP/3 بروتوكول تطبيق يستخدم QUIC. ويشرح معيار RFC 9114 كيفية نقل HTTP عبر QUIC.
لماذا قد يحسّن QUIC سرعة تحميل الصفحات؟
1. تقليل زمن إنشاء الاتصال
يجمع QUIC التفاوض على معلمات النقل ومصافحة التشفير ضمن عملية اتصال متكاملة، بدل الاعتماد على مصافحة TCP ثم التفاوض على TLS كمرحلتين منفصلتين. وقد يقلل ذلك عدد الرحلات ذهابًا وإيابًا اللازمة قبل بدء تبادل بيانات التطبيق، بحسب ظروف الشبكة وحالة الاتصال.
2. عزل التدفقات عن بعضها
في اتصال TCP واحد، قد يؤدي فقدان جزء من البيانات إلى حجب تسليم البيانات اللاحقة إلى التطبيق حتى يصل الجزء المفقود، حتى لو كانت البيانات اللاحقة تخص طلبًا آخر في اتصال HTTP/2 نفسه. أما QUIC فيحافظ على ترتيب البيانات داخل كل تدفق على حدة؛ لذلك لا يلزم أن يؤدي فقدان حزمة تخص تدفق صورة إلى إيقاف تسليم البيانات المكتملة في تدفق آخر.
هذا لا يعني أن فقدان الحزم أو ازدحام الشبكة لا يؤثران في الاتصال إطلاقًا؛ إذ تظل التدفقات مشاركة في موارد الاتصال وآليات التحكم في الازدحام. الميزة الأساسية هي تقليل حجب التدفقات بعضها بسبب ترتيب النقل المشترك.
3. دعم الانتقال بين الشبكات
قد ينتقل الهاتف من شبكة Wi-Fi إلى شبكة الجوال ويتغير عنوان IP الخاص به. يستطيع QUIC استخدام معرّفات الاتصال وآليات التحقق من المسار الجديد للمساعدة على استمرار الجلسة بدل الاضطرار دائمًا إلى إنشاء اتصال جديد. لكن نجاح الانتقال يعتمد على دعم الطرفين وسياسات الشبكة، ولا يضمن بقاء كل جلسة في جميع الحالات.
مثال عملي: تحميل صفحة أثناء الانتقال من Wi-Fi إلى شبكة الجوال
تخيّل أنك تفتح صفحة تحتوي على نص وصور وملفات تنسيق وبرامج نصية. ينشئ المتصفح اتصالًا واحدًا مع خادم يدعم HTTP/3، ثم تُنقل موارد الصفحة عبر تدفقات متعددة. إذا فقدت حزمة تخص صورة، يمكن أن تستمر البيانات المكتملة في تدفق النص أو التنسيق بالوصول دون انتظار ترتيب تلك الصورة.
إذا غادرت المنزل وانتقل الهاتف إلى شبكة الجوال، فقد يساعد معرّف الاتصال في التعرف إلى الجلسة بعد التحقق من المسار الجديد. والنتيجة المحتملة هي تقليل إعادة الاتصال والانقطاعات الملحوظة، لا ضمان تحميل فوري أو سرعة أعلى في كل شبكة.
كيف يحمي QUIC البيانات؟ وما المقصود بـ0-RTT؟
يستخدم QUIC الإصدار TLS 1.3 لتأمين الاتصال، بما يوفر التشفير وحماية سلامة البيانات والتحقق من هوية الخادم. وتشرح مواصفة RFC 9001 طريقة دمج TLS مع QUIC.
يدعم QUIC أيضًا استئناف بعض الاتصالات باستخدام بيانات مبكرة تُعرف باسم 0-RTT، ما يسمح بإرسال بيانات تطبيق قبل اكتمال المصافحة الجديدة. لكن هذه البيانات قد تكون عرضة لإعادة التشغيل (Replay) في ظروف معينة؛ لذلك لا ينبغي استخدام 0-RTT لطلبات تؤدي إلى عمليات لا يمكن تكرارها بأمان، مثل تنفيذ عملية شراء أو تحويل مالي، إلا إذا صُمم التطبيق لمعالجة هذا الخطر.
هل QUIC أسرع دائمًا؟ وما أبرز قيوده؟
لا. قد يقدم QUIC تحسنًا واضحًا في الشبكات ذات زمن التأخير المرتفع أو فقدان الحزم أو عند الانتقال بين الشبكات، لكن النتيجة تعتمد على جودة الاتصال وقدرة الجهاز والخادم وطريقة تنفيذ البروتوكول.
- دعم الخادم والمتصفح: يجب أن يدعم الطرفان QUIC وHTTP/3 حتى يستفيدا منهما.
- سياسات الشبكة: قد تحجب بعض الشبكات حركة UDP أو تقيّدها، فيلجأ المتصفح إلى بروتوكول بديل مثل HTTP/2.
- استهلاك الموارد: قد يختلف الحمل على المعالج والذاكرة بحسب التنفيذ وعدد الاتصالات.
- التوافق والمراقبة: تحتاج بعض أدوات الشبكات والجدران النارية إلى دعم مناسب لفهم حركة QUIC وإدارتها.
- اختلاف النتائج: قد لا يظهر تحسن ملحوظ في اتصال سريع ومستقر أو في موقع لا يملك موارد كثيرة للتحميل المتوازي.
توضح وثائق وثائق HTTP/3 الرسمية أن HTTP/3 يستخدم QUIC، وتعرض متطلبات تفعيله على خوادمها. كما يمكنك فهم دور ترجمة أسماء النطاقات قبل بدء الاتصال عبر مقال شرح بروتوكول DNS وطبقة التطبيقات.
أسئلة شائعة حول QUIC
هل QUIC هو نفسه UDP؟
لا. يستخدم QUIC مخططات بيانات UDP لنقل حزم البروتوكول، لكنه يضيف آليات موثوقية وتدفقات وتشفير وتحكم في الازدحام لا يوفرها UDP وحده.
هل QUIC هو نفسه HTTP/3؟
لا. QUIC بروتوكول نقل، أما HTTP/3 فهو إصدار من HTTP يعمل فوق QUIC. ويمكن استخدام QUIC في تطبيقات أخرى أيضًا.
هل يستبدل QUIC بروتوكول TCP بالكامل؟
لا. يستمر TCP في خدمة تطبيقات كثيرة، ويمكن للمتصفحات والخوادم استخدام HTTP/2 فوق TCP عندما لا يتوفر HTTP/3 أو يتعذر إنشاء اتصال QUIC.
هل QUIC مشفر افتراضيًا؟
يعتمد QUIC الإصدار الأول على TLS 1.3 لحماية الاتصال. ومع ذلك، لا يغني التشفير عن حماية التطبيق نفسه أو إدارة الصلاحيات والتحقق من المدخلات.
الخلاصة
يقدم QUIC نموذج نقل حديثًا يعمل فوق UDP ويجمع التشفير وتعدد التدفقات والتحكم في النقل ضمن اتصال واحد. ويستفيد HTTP/3 من هذه الخصائص لتقليل بعض أسباب التأخير وتحسين التعامل مع فقدان الحزم والتنقل بين الشبكات. ومع ذلك، لا يضمن QUIC سرعة أعلى دائمًا؛ فالفائدة الفعلية تتوقف على دعم الخادم والعميل وظروف الشبكة وطريقة التنفيذ.
المصادر والمراجع
[1] IETF RFC Editor – RFC 9000: QUIC: A UDP-Based Multiplexed and Secure Transport
[2] IETF RFC Editor – RFC 9001: Using TLS to Secure QUIC