سؤال

لقد كتبت برنامج C بسيط للغاية للقيام بتقاط الحزمة باستخدام PCAP. الشيء هو أنه لا يلتقط سوى مجموعة فرعية صغيرة من نشاط الشبكة الخاص بي. (أعتقد أن النمط هو أنه لا يلتقط سوى اتصالات TCP جديدة.)

على سبيل المثال ، يلتقط مجموعة من الحزم عندما أقوم بطلب الحصول على متصفح أو مع WGET ، أو عندما أبدأ عميل X-Chat IRC الخاص بي والاتصال.

ومع ذلك ، عندما أترك عميل IRC الخاص بي يعمل ، لا يلتقط الحزم المقابلة للرسائل النصية. وبالمثل ، فإنه لا يلتقط بث ARP على شبكتي المنزلية ، أو حزم ping عندما أقوم بتطوير موقع ويب.

أتساءل لماذا يتم التقاطها فقط على هذه المجموعة الفرعية الصغيرة من الحزم التي أرسلها/أستقبلها. ها هو الكود الخاص بي. أنا ممتن لأي ردود فعل.

شفرة: http://pastebin.com/qdhry6jm

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

المحلول

تم التصليح. عندما أقوم بتغيير قيمة المهلة الخاصة بي من -1 إلى شيء آخر يعمل (أي أنها تلتقط جميع أنشطة الشبكة). لا أعرف حقًا ما الذي يحدث هناك (لم أفكر في الأمر كثيرًا بعد) ، لذا إذا كان هناك شخص ما يرجع إلى Holla.

نصائح أخرى

ما هى المحتمل يحدث هو أنك تعمل على منصة حيث تتصرف المهلة بالطريقة التي تعمل بها مع BPF (*BSD ، OS X) ، Solaris ، أو Windows مع WinPCAP ، حيث لا تقوم آلية التقاط الحزم الأساسية التي يستخدمها PCAP باستخدام الحزم على الفور ، لكن المخزن المؤقت مجموعة من الحزم ويسلمها إلى PCAP إما عندما يملأ المخزن المؤقت أو عندما تنتهي المهلة ، ويتم تفسير -1 على أنها "لا مهلة" أو "فترة طويلة جدًا".

في هذه الحالة ، إذا وصلت كمية كافية من الحزم لملء المخزن المؤقت ، كما قد يكون الأمر كذلك إذا قمت بحصولك على HTTP ، وعودة رد كبير بما فيه الكفاية ، أو إذا كانت جلسة IRC تتضمن الكثير من الحزم للاتصال ، فستظهر الحزم لأعلى ، ولكن في حالة وصول الحزم العرضية فقط ، مثل حزم ARP على شبكة هادئة في الغالب ، ستبقى الحزم في المخزن المؤقت حتى تصل حزم كافية لملء المخزن المؤقت ، والتي قد تستغرق وقتًا طويلاً إلى أجل غير مسمى ، أو في فترة طويلة جدًا تنتهي ، والتي يمكن أن تستغرق بعض الوقت.

إن خفض المهلة (يستخدم TCPDUMP 1000 ، أي 1 ثانية ، ويستخدم Wireshark 100 ، أي 1/10 ثانية) يعني أن الحزم ستظهر في غضون فترة زمنية قصيرة بشكل معقول ، حتى إذا لم تصل الحزم الكافية لملء المخزن المؤقت.

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