سؤال

أنا في فصل الرياضيات حول نظرية الترميز وعلينا القيام بمشروع لمدة مدة مدة مدة.

مشروعي هو عميل لديه خادم صدى ، والذي يوضح الأخطاء التي تم تقديمها في الرحلة من العميل إلى الخادم ، ثم العودة. واختبار مخططات تصحيح الأخطاء المختلفة للكفاءة ومدى ملاءمة هذه المهمة.

الترميز ليس مشكلة حقًا ، لقد تمكنت من صنع شيء من شأنه اكتشاف الأخطاء ، واطلب إعادة الإرسال إذا لم يتمكن من إصلاحها وما شابه.

المشكلة التي لديّ هي أنه حتى الآن ، بالنسبة لي أن أقدم أي نوع من الأخطاء بت ، يجب أن أفعل ذلك بشكل مصطنع - نظرًا لأن الطبقات الأخرى من نقل البيانات لها بروتوكولات تصحيح الخطأ الخاصة بها.

سؤالي: هل هناك طريقة للتغلب على هذا؟

ليس لدي أي فكرة عن كيفية القيام بهذا أو حتى من أين أبدأ.

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

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

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

المحلول

سأبدأ هنا مع JPCAP. يجب أن يتيح لك ذلك صياغة أي نوع من حزم الشبكة التي تريدها.

نصائح أخرى

يمكنك على الأقل تجنب مستوى واحد من الحماية باستخدام مخطط UDP بدلاً من TCP.

من المحتمل أن أقوم بتنفيذ واحدة أو أكثر من الفئات الفرعية من InputStream و/أو OutputStream وأرمزها لتشويش دفق البيانات الخاص بي بطرق مختلفة. هذا من شأنه أن يجعل من السهل إنشاء الكثير من حالات الاختبار المختلفة. ثم فقط ضع في اعتبارك رمز Java الخاص بك بحيث يكون الخطأ في تصحيح الأجزاء من الكود الخاص بك فقط رؤية إدخال عادي/ouputstream ولا يعرف كيف يتم معالجة البيانات.

على سبيل المثال ، اكتب واحدة أن كل بايت نات ، يغير قليلا بشكل عشوائي. وهلم جرا. ثم افتح مقبسًا ، ولف هذا الإدخال في الفئة الفرعية. (ستعمل تقنية مماثلة لصالح UDP ، فقط بدون الدفق!)

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

من المحتمل أن يكون التحول في الحزم في طبقات مختلفة من TCP/UDP باستخدام نوع من الأدوات الفاخرة أمرًا ممكنًا ، ولكن هناك نوعًا من التجول بعيدًا عن الرياضيات التي من المفترض أن تركز عليها حقًا في فصل الرياضيات! :-)

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