متى يتم تصحيح الأخطاء الأمامي فكرة جيدة للحزم؟

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

سؤال

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

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

المحلول

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

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

لن يكون فظيعا لكونني؟

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

أعتقد أنك بحاجة دائما بالفعل بعض الكمون، لتجنب غضب لذلك على سبيل المثال، قد تقول "دعونا نأخير القناة الصوتية بأكملها بواسطة 200 MSEC، لذلك يمكن أن تأخذ أي / كل حزمة من 0 إلى 200 MSEC لعبور الإنترنت، وتكون إعادة تجميعها وإرسالها عبر محول D-To-A نهاية أخرى. "

بالنظر إلى هذه الأرقام، فإن عدم وجود تصحيح خطأ للأمام قد يعني ذلك، في كل 200 مدة MSEC، يمكنك إرسال 10 حزم تحتوي كل منها على 20 msec من البيانات ... وإذا فقد المرء، فهذه فجوة (خلل) في الآخر نهاية.

في حين أن وجود بعض تصحيح الأخطاء الأمامي قد يعني ذلك، في كل 200 فترة MSEC، لا تزال ترسل 10 حزم ... تحتوي كل حزمة على 20 MSEC من البيانات، بالإضافة إلى 10 MSEC من البيانات التي تم إرسالها بالفعل في حزمة أخرى (أو، ربما أنت إرسال 30 حزم بدلا من 20). بعد ذلك، إذا فقدت أي علبة واحدة، فقد تم تسليم البيانات التي تقوم بتسليمها بشكل متكرر (نصف في كل من حزمتين أخريين)، مما يتجنب أي خلل في الإخراج فك التشفير.

نصائح أخرى

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

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

يعتمد على التطبيق.

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

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

إنها ليست مسألة "النفقات العامة"، فهي أكثر عن "التطبيق".

الإجابة البسيطة هي إذا كنت ترسل عبر رابط رابط عالي النطاق الترددي (يعني "المسافة الطويلة")، فإن تصحيح الأخطاء الأمامي منطقي. خلاف ذلك، ربما لا.

عندما يكون "سعر" إعادة الإرسال أعلى مما كنت على استعداد لدفعه.
يحتوي Satellite على مثيل وقت نشر طويل للغاية، من الأفضل إرسال عدد قليل من بايت آخرين لإرسال حزمة مرة أخرى.

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