سؤال

تحية،

كيف يمكن تحديد من الحزم التي تم التقاطها باستخدام SharppCap إذا كانت الحزمة هي حزمة HTTP أم لا؟

وهل يمكننا تحديد حزم FRPM TCP إذا كانت الحزمة HTTP أم لا؟

هل كانت مفيدة؟

المحلول

بالنسبة الى RFC2616 - بروتوكول نقل النص التشعبي - HTTP/1.1:

يشار إلى إصدار رسالة HTTP بواسطة حقل HTTP-Version في السطر الأول من الرسالة

لذلك ، يمكنك فحص الحزم والمسح الضوئي لنص إصدار HTTP في رؤوس الرسائل ، و/أو الحقول الأخرى المعروفة لبروتوكول HTTP. على الرغم من أن هذه الطريقة قد لا تكون دقيقة بنسبة 100 ٪ إذا تم تقسيم الرسالة إلى حزم متعددة ، فمن المحتمل أن تكون جيدة بما يكفي ، على الأقل كقطعة أولى.

نصائح أخرى

أنا المؤلف/المشرف sharppcap/packet.net.

لدي بعض الفصول التي تؤدي tcp إعادة التجميع و http التحليل المستخدم في تطبيق مراقبة الشبكة المعقد لتحديد ومتابعة http sessions. هذه هي وحدة تم اختبارها بالكامل وتعليقها جيدًا.

وهي متاحة للترخيص إما على مستوى الثنائي أو المصدر.

تحرير: لماذا التصويت هذا لأسفل؟ استغرق الأمر مئات الساعات لتطوير الكود والاختبارات ، وهو عبارة عن حل تم إعادة استخدامه. إنه بالتأكيد يستحق النظر قبل إعادة تنفيذ نفس الوظيفة.

يبدو أنك تنظر إلى جزء TCP واحد. إذا جاء ذلك من بداية الرسالة ، فسيحتوي على إصدار HTTP في السطر الأول ، ولكن إذا كنت تقوم فقط بسحب حزم عشوائية من الشبكة وتأمل أن تتمكن - لا يوجد شيء في شظايا TCP التي تشير إلى ما هو فيه. الطريقة الوحيدة لمعرفة هي أن ننظر إلى المحادثة بأكملها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top