طلب HTTP البطيء وTTFB في PCAP: إثبات ما إذا كان التأخير هو DNS أو TCP أو TLS أو وقت الخادم
كيفية تشخيص طلبات HTTP البطيئة في عمليات التقاط الحزم عن طريق فصل تأخير DNS ومصافحة TCP ومصافحة TLS وتحميل الطلب ومعالجة الخادم ووقت البايت الأول.
"موقع الويب بطيء" و"يستغرق طلب واجهة برمجة التطبيقات 10 ثوانٍ" لا يعد تشخيصًا. يمكن أن يؤدي التقاط الحزمة إلى تقسيم التأخير إلى مراحل: "بحث DNS، ومصافحة TCP، ومصافحة TLS، وتحميل الطلب، ومعالجة الخادم، وتنزيل الاستجابة، وإعادة الإرسال، وسلوك العميل." غالبًا ما يكون الوقت حتى البايت الأول هو العبارة التي يبحث عنها المستخدمون. في أدلة الحزم، لا يعد TTFB مجالًا سحريًا واحدًا. إنه جدول زمني.
بناء الجدول الزمني للطلب
بالنسبة لطلب HTTP أو HTTPS، افحص:
- بدء استعلام DNS
- وقت استجابة DNS
- مزامنة TCP
- إكمال مصافحة TCP
- مرحبًا عميل TLS
- خادم TLS مرحبًا وشهادة
- تم إرسال بايتات طلب HTTP
- بايت الاستجابة الأولى
- استكمال الاستجابة الكاملة
- إعادة الإرسال أو إعادة التعيين
إذا استغرق DNS خمس ثوانٍ، فهذا يعني أن الخادم ليس بطيئًا بعد. إذا كانت مصافحة TCP سريعة ولكن بايت الاستجابة الأولى متأخرة، فقد تكون المشكلة هي معالجة الخادم أو التبعية الأولية. إذا توقف TLS قبل HTTP، فركز على سلوك الشهادة أو التشفير أو SNI أو الصندوق الأوسط.
يحتاج HTTP عبر TLS إلى حدود دقيقة
في عمليات التقاط HTTPS، قد تكون الحمولة مشفرة، لكن التوقيت لا يزال مهمًا. يمكنك في كثير من الأحيان تحديد:
- بداية الاتصال
- مدة المصافحة
- بيانات التطبيق المشفرة من العميل
- أول بيانات التطبيق المشفرة من الخادم
- فقدان الحزمة أو إعادة الإرسال
- إغلاق الاتصال أو إعادة تعيينه
حتى بدون فك تشفير المحتوى، يمكن أن يُظهر الالتقاط ما إذا كان التأخير قد حدث قبل إرسال الطلب أو بعده.
انتبه لإعادة الإرسال
يمكن أن يأتي بطء HTTP من فقدان الحزمة. إذا ظهرت عمليات إعادة إرسال TCP أو ACKs مكررة أثناء تحميل الطلب أو تسليم الاستجابة، فقد لا يكون الخادم هو المالك الأساسي. يمكن أن تبدو الاستجابة الكبيرة مع فقدان المسار من الخادم إلى العميل بمثابة زمن استجابة خلفي للمستخدمين.
يجب أن يفصل التقرير:
- الوقت قبل أن يترك الطلب العميل
- يبدو أن خادم الوقت قيد المعالجة
- الوقت المستغرق في إعادة إرسال الاستجابة
- سلوك نافذة التلقي من جانب العميل
يمنع هذا التمييز فرق الواجهة الخلفية من ملاحقة مشكلات الشبكة.
حيث تناسب جراحة PCAP
تكون جراحة PCAP مفيدة عندما يكون الالتقاط الأصلي كبيرًا جدًا أو حساسًا جدًا. يجب أن تحافظ عملية تسليم زمن استجابة HTTP المركزة على ما يلي:
- نافذة DNS
- مصافحة TCP
- مصافحة TLS إذا كانت موجودة
- توقيت الطلب/الاستجابة
- أدلة إعادة الإرسال
- إعادة تعيين أو التنبيهات
- الطوابع الزمنية الأصلية
إذا كانت هناك حاجة إلى إخفاء الهوية، فاحتفظ بالتوقيت وأحجام الحزم عندما يكون ذلك مهمًا. قد تؤدي إزالة الكثير من السياق إلى جعل تحليل TTFB مستحيلاً.
بالنسبة لعمليات البحث مثل "HTTP البطيء لطلب pcap" أو "الوقت لالتقاط حزمة البايت الأول" أو "زمن استجابة واجهة برمجة التطبيقات Wireshark"، تكون الإجابة عبارة عن مخطط زمني خطوة بخطوة، وليس تسمية لوم واحدة.