ইউডিপি সম্পর্কে আমার একটি প্রশ্ন আছে। প্রসঙ্গে, আমি একটি রিয়েল-টাইম অ্যাকশন গেমটিতে কাজ করছি।
আমি ইউডিপি এবং টিসিপি-র মধ্যে পার্থক্য সম্পর্কে বেশ কিছুটা পড়েছি এবং আমি অনুভব করি যে আমি সেগুলি বেশ ভালভাবে বুঝতে পেরেছি, তবে একটি টুকরো রয়েছে যা কখনই সঠিক মনে হয়নি, এবং এটি নির্ভরযোগ্যতা এবং বিশেষভাবে স্বীকৃতি । আমি বুঝতে পারি যে ইউডিপি ডিফল্টরূপে কোনও নির্ভরযোগ্যতা দেয় না (অর্থাত প্যাকেটগুলি বাদ দেওয়া বা অর্ডার থেকে বেরিয়ে আসতে পারে)। যখন কিছু নির্ভরযোগ্যতার প্রয়োজন হয়, আমি যে সমাধানটি দেখেছি (যা ধারণামূলকভাবে বোঝায়) তা হ'ল স্বীকৃতি (যেমন সার্ভার ক্লায়েন্টকে একটি প্যাকেট প্রেরণ করে, এবং ক্লায়েন্ট যখন সেই বার্তাটি গ্রহণ করে, তখন এটি সার্ভারে একটি স্বীকৃতি ফেরত পাঠায়)) ।
স্বীকৃতি বাদ দিলে কী ঘটে?
উপরের উদাহরণে (এক ক্লায়েন্টকে একটি প্যাকেট প্রেরণকারী একটি সার্ভার), সার্ভারগুলি সেই প্যাকেটগুলির স্বীকৃতি না পাওয়া পর্যন্ত প্রতিটি ফ্রেমে প্যাকেটগুলি পুনরায় পাঠিয়ে দিয়ে সম্ভাব্য প্যাকেট ক্ষতি হ্যান্ডেল করে। আপনি এখনও ব্যান্ডউইথ বা আউট-অফ-অর্ডার বার্তাগুলির ইস্যুতে চালিত করতে পারেন, তবে কেবল প্যাকেট-ক্ষতির দৃষ্টিকোণ থেকে সার্ভারটি কভার করা হয়েছে।
তবে, ক্লায়েন্ট যদি কোনও স্বীকৃতি পাঠায় যা কখনই না আসে, সার্ভারের অবশেষে সেই বার্তাটি প্রেরণ করা বন্ধ করা ছাড়া এই প্যাকেটে থাকা তথ্যের প্রয়োজন হলে গেমটি ভেঙে ফেলতে পারে। আপনি সার্ভারের সাথে অনুরূপ পন্থা অবলম্বন করতে পারেন (যেমন আপনি অ্যাকির জন্য একটি এসকি না পাওয়া পর্যন্ত স্বীকৃতিগুলি প্রেরণ করুন?) তবে এই পদ্ধতির সাহায্যে আপনি চিরকালের জন্য লুপ করে যাবেন (যেহেতু আপনাকে আকৃতির জন্য অ্যাকির প্রয়োজন হবে) এবং তাই)।
আমি অনুভব করি যে এখানে আমার মৌলিক যুক্তিটি সঠিক, যা আমাকে দুটি বিকল্প দিয়ে ফেলেছে।
- একটি একক স্বীকৃতি প্যাকেট প্রেরণ এবং সেরা আশা করি।
- মুষ্টিমেয় স্বীকৃতি প্যাকেটগুলি প্রেরণ করুন (সম্ভবত 3-4) এবং সর্বোপরি আশা করি, ধরে নিলেন যে এগুলি সমস্তই বাদ যাবে না।
এই সমস্যার কোনও উত্তর আছে কি? আমি কি মূলত কিছু ভুল বুঝছি? আমি অবগত নই ইউডিপি ব্যবহারের কিছু গ্যারান্টি আছে? আমার যুক্তিটি যথাযথ না হওয়া পর্যন্ত আমি স্বাচ্ছন্দ্য বোধ না করা অবধি অনেক বেশি নেটওয়ার্কিং কোড নিয়ে এগিয়ে যেতে দ্বিধা বোধ করি।