كيفية إنشاء أخطاء إطار Ethernet في البرنامج بشكل موثوق؟

StackOverflow https://stackoverflow.com/questions/6329583

سؤال

السؤال:

أنا أختبر قسمًا من برنامج اكتشاف أعطال الكبلات ، وأود إنشاء أعطال كبلات على كابل cat5 بشكل موثوق وقابل للتكرار.

في الوقت الحالي ، أستخدم كبلًا غير مجدول بطول متر ، وأقوم بتلويح الكبل يدويًا بجوار مصدر طاقة ، لكن لا يمكنني اكتشاف أي أخطاء في التطبيق (أنا أقرأ عدادات أخطاء Ethernet من Ethernet ASIC .) لا يمكنني معرفة ما إذا كان هذا بسبب عدم حدوث أخطاء ، أو بسبب وجود خلل في اكتشاف البرامج / الأجهزة.

هل هناك طريقة للقيام بذلك في البرنامج؟

سأوافق على كتابة شيء ما بلغة ذات مستوى أعلى ، مثل Java أو Python ، وكملاذ أخير ، سأكون على استعداد لتجميعه معًا في لغة C ، لكنني أفضل حقًا عدم إعادة كتابة برنامج تشغيل Ethernet تمامًا لإصلاح خطأ محتمل.

[EDIT]: أريد إنشاء أعطال الكبل - وليس اكتشافها.

[EDIT]: لقد قمت بنقل ملفات كبيرة عبر FTP و SCP بدون مشاكل مع الكابل المعالج ، ولا أرى أي أخطاء تظهر أثناء فحص حركة المرور باستخدام wireshark

[EDIT]: راجع أيضًا سؤال مشابه في لغة python .

الحل:

حسنًا ، بعد قضاء أكثر من يوم في القتال مع لغة سي ، هذا هو حل الثعبان.

قم أولاً بتعطيل الختام الاختباري التلقائي لبطاقة Ethernet:

Genacodicetagpre

بعد ذلك ، أرسل إطارك المراوغ من بيثون: Genacodicetagpre

من قال أن الأمر يجب أن يكون معقدًا ...

ملاحظة: أنا أحب بايثون.

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

المحلول

إذا كنت تعمل في لغة C ، فيمكنك إرسال إطار Ethernet خام باستخدام رمز علامة التشفير العام ، وتمريره بمؤشر إلى مخزن مؤقت أولي أنشأته بنفسك (على سبيل المثال ، باتباع تخطيط الإطار في wikipedia ).

لقد مضى وقت طويل منذ أن فعلت ذلك ، لذا لن أحاول كتابة مقتطف رمز تمثيلي ...

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