كيفية إنشاء أخطاء إطار Ethernet في البرنامج بشكل موثوق؟
-
27-10-2019 - |
سؤال
السؤال:
أنا أختبر قسمًا من برنامج اكتشاف أعطال الكبلات ، وأود إنشاء أعطال كبلات على كابل cat5 بشكل موثوق وقابل للتكرار.
في الوقت الحالي ، أستخدم كبلًا غير مجدول بطول متر ، وأقوم بتلويح الكبل يدويًا بجوار مصدر طاقة ، لكن لا يمكنني اكتشاف أي أخطاء في التطبيق (أنا أقرأ عدادات أخطاء Ethernet من Ethernet ASIC .) لا يمكنني معرفة ما إذا كان هذا بسبب عدم حدوث أخطاء ، أو بسبب وجود خلل في اكتشاف البرامج / الأجهزة.
هل هناك طريقة للقيام بذلك في البرنامج؟
سأوافق على كتابة شيء ما بلغة ذات مستوى أعلى ، مثل Java أو Python ، وكملاذ أخير ، سأكون على استعداد لتجميعه معًا في لغة C ، لكنني أفضل حقًا عدم إعادة كتابة برنامج تشغيل Ethernet تمامًا لإصلاح خطأ محتمل.
[EDIT]: أريد إنشاء أعطال الكبل - وليس اكتشافها.
[EDIT]: لقد قمت بنقل ملفات كبيرة عبر FTP و SCP بدون مشاكل مع الكابل المعالج ، ولا أرى أي أخطاء تظهر أثناء فحص حركة المرور باستخدام wireshark
[EDIT]: راجع أيضًا سؤال مشابه في لغة python .
الحل:
حسنًا ، بعد قضاء أكثر من يوم في القتال مع لغة سي ، هذا هو حل الثعبان.
قم أولاً بتعطيل الختام الاختباري التلقائي لبطاقة Ethernet:
Genacodicetagpreبعد ذلك ، أرسل إطارك المراوغ من بيثون: Genacodicetagpre
من قال أن الأمر يجب أن يكون معقدًا ...
ملاحظة: أنا أحب بايثون.
المحلول
إذا كنت تعمل في لغة C ، فيمكنك إرسال إطار Ethernet خام باستخدام رمز علامة التشفير العام ، وتمريره بمؤشر إلى مخزن مؤقت أولي أنشأته بنفسك (على سبيل المثال ، باتباع تخطيط الإطار في wikipedia ).
لقد مضى وقت طويل منذ أن فعلت ذلك ، لذا لن أحاول كتابة مقتطف رمز تمثيلي ...