سؤال

هل من الممكن أن تصلك بيانات UDP تالفة؟أعلم أنه من الممكن أن تضيع.

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

المحلول

تستخدم حزم UDP المجموع الاختباري 16 بت.ليس من المستحيل أن تكون حزم UDP تالفة، لكن هذا غير محتمل إلى حد كبير.وعلى أية حال فهو ليس أكثر عرضة للفساد من بروتوكول TCP.

نصائح أخرى

أولاً، "المجموع الاختباري لـ IP" المشار إليه أعلاه هو فقط المجموع الاختباري لرأس IP.لا يحمي الحمولة.انظر RFC 791

ثانيًا، يسمح UDP بالنقل بدون مجموع اختباري، مما يعني أن المجموع الاختباري 16 بت مضبوط على 0 (أي لا شيء).انظر RFC 768.(تعني قيمة المجموع الاختباري المرسلة الصفرية أن جهاز الإرسال لم ينشئ أي مجموع اختباري)

ثالثًا، كما ذكر آخرون، يحتوي UDP على مجموع اختباري 16 بت، وهي ليست الطريقة الأفضل لاكتشاف خطأ متعدد البتات، ولكنها ليست سيئة.من المؤكد أنه من الممكن حدوث خطأ لم يتم اكتشافه، ولكن من غير المحتمل جدًا.

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

يمكن أيضًا تسليم حزم UDP خارج الترتيب، لذلك إذا كنت تصمم بروتوكولًا فوق UDP، فيجب عليك أن تأخذ ذلك في الاعتبار أيضًا.

الشكل الشائع من "الفساد" الذي يؤثر على المبرمجين المطمئنين هو الفساد اقتطاع مخطط البيانات.راجع "برمجة شبكة Unix" بواسطة ستيفنز لمزيد من المعلومات (صفحة 539 في الطبعة الثانية.)

يمكنك التحقق من علامة MSG_TRUNC...

اجابة قصيرة:نعم.

الإجابة التفصيلية:

منذ حوالي 7 سنوات (ربما 2011؟) وجدنا أن مخططات بيانات UDP تتغير عن غير قصد عندما يتم تبادل مخطط بيانات UDP بين جهاز كمبيوتر في الصين وجهاز آخر في كوريا.بالطبع، يتم أيضًا إعادة حساب المجموع الاختباري في رأس حزمة UDP فيما يتعلق بتغيير الحمولة.لم تكن هناك برامج ضارة في جهازي كمبيوتر.

لقد وجدنا أن التغيير غير المقصود لا يحدث إلا عندما تتطابق هذه الشروط:

  • تتشابه البايتات العديدة الأولى من مخططات البيانات مع مخطط البيانات السابق
  • يحدث هذا فقط عندما تنتقل مخططات بيانات UDP من دولة إلى أخرى

لا أعرف السبب بالضبط، لكن أعتقد أنه كذلك تقريبًا الصين الدرع الذهبي.

لذلك أضفنا خوارزمية تشويه مخطط البيانات إلى برنامج ProudNet وانتهت المشكلة.ليس من الصعب تنفيذه.ما عليك سوى تشفير أو تشويش البايتات القليلة الأولى من مخطط البيانات الخاص بك.

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