أين توجد مخططات البيانات إذا لم يستمع عميل إلى منفذ UDP؟

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

  •  22-09-2019
  •  | 
  •  

سؤال

لنفترض أن العميل يرسل عددًا من بيانات البيانات إلى خادم من خلال طلبي. إذا توقف طلبي على جانب الخادم عن العمل ولم يتمكن من تلقي أي بيانات بيانات ، لكن العميل لا يزال يستمر في إرسال المزيد من غرامات البيانات إلى الخادم من خلال بروتوكول UDP ، أين تذهب بيانات البيانات هذه؟ هل سيبقون في المخزن المؤقت لبيانات نظام التشغيل الخادم (أو شيء من هذا القبيل؟)

أطرح هذا السؤال لأنني أريد أن أعرف أنه إذا أرسل عميل 1000 مخطط بيانات (1K لكل منهما) إلى جهاز كمبيوتر عبر الإنترنت ، فهل ستمر بيانات بيانات 1000 عبر الإنترنت (استهلاك النطاق الترددي) حتى لو لم يكن أحد يستمع إلى هذه البيانات؟

إذا كانت الإجابة نعم ، كيف يمكنني إيقاف حدوث هذا؟ أعني إذا توقف الخادم عن العمل ، فكيف يمكنني استخدام UDP للتعرف على الحقيقة وتوقف أي إرسال آخر؟

شكرًا

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

المحلول

أطرح هذا السؤال لأنني أريد أن أعرف أنه إذا أرسل عميل 1000 مخطط بيانات (1K لكل منهما) إلى جهاز كمبيوتر عبر الإنترنت ، فهل ستمر بيانات بيانات 1000 عبر الإنترنت (استهلاك النطاق الترددي) حتى لو لم يكن أحد يستمع إلى هذه البيانات؟

نعم

إذا كانت الإجابة نعم ، كيف يمكنني إيقاف حدوث هذا؟ أعني إذا توقف الخادم عن العمل ، فكيف يمكنني استخدام UDP للتعرف على الحقيقة وتوقف أي إرسال آخر؟

تحتاج إلى حلقة التحكم في مستوى البروتوكول ، أي تحتاج إلى تنفيذ بروتوكول لرعاية هذا الموقف. UDP غير موجه نحو الاتصال ، لذا فإن الأمر متروك لـ "التطبيق" الذي يستخدم UDP لحساب وضع الفشل هذا.

نصائح أخرى

لا توفر UDP نفسها تسهيلات لتحديد ما إذا كان العميل قد تم استلام الرسالة بنجاح أم لا. أنت بحاجة إلى TCP لإنشاء اتصال موثوق به وبعد إرسال البيانات عبر UDP.

سيكون الحل الأدنى هو شيء من نوع الحفاظ كما اقترح Jdupont. يمكنك أيضًا التغيير لاستخدام TCP ، والذي يوفر هذا المرفق لك.

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