আমি একটি নেটওয়ার্কযুক্ত আইওএস গেম লিখছি। প্যাকেটগুলি প্রেরণ করার সময় GKMatchSendDataReliable
(যা আমি ধরে নিয়েছিলাম যে তাদের নিজস্ব প্যাকেট সংবর্ধনা কোড লিখিত আছে) প্রতি সেকেন্ডে 60 প্যাকেটে (সুতরাং সংলগ্ন প্যাকেটের মধ্যে 16 এমএস) খুব দ্রুত খারাপ হয়: আমি নীচে 7 গেমসেন্টার ম্যাচগুলি খোলে (একের পর এক) ) এবং সহজেই 100 প্যাকেটের একটি "বন্যা" প্রেরণ করে (প্রতি সেকেন্ডে 60 প্যাকেটের হারে)। আমি গড় রাউন্ডট্রিপ সময় পরিমাপ করেছি এবং এগুলি ফলাফল:
[ 21:16:39 ]: I saw an average roundtrip time of 52.342787 ms, he saw 54.496590 ms
[ 21:16:34 ]: I saw an average roundtrip time of 62.631942 ms, he saw 61.991655 ms
[ 21:16:45 ]: I saw an average roundtrip time of 88.394380 ms, he saw 83.619123 ms
[ 21:16:51 ]: I saw an average roundtrip time of 179.053118 ms, he saw 156.869141 ms
[ 21:16:57 ]: I saw an average roundtrip time of 75.025076 ms, he saw 75.419723 ms
[ 21:17:23 ]: I saw an average roundtrip time of 8832.082488 ms, he saw 7616.877558 ms
[ 21:19:33 ]: I saw an average roundtrip time of 25088.962344 ms, he saw 16833.064914 ms
শেষ 2 টি পরীক্ষার পরে ফলাফলগুলি প্রায় 1000 এমএস।
দেখে মনে হবে যে আমি থ্রটল হয়ে যাচ্ছি, সম্ভবত আমার আইএসপি। কারণ এটি একটি আইওএস গেম, লোকেরা নিয়মিত আবাসিক সংযোগ ব্যবহার করবে।
আমি যখন প্যাকেট প্রেরণের হারকে 10 গুণ ধীর করে (তাই প্রতি 160 এমএসে 1 প্যাকেট) পরিবর্তন করি তখন পরীক্ষাগুলি অনেক বেশি সময় নেয় তবে রাউন্ডট্রিপ বার ধারাবাহিকভাবে কম থাকে।
[21:31:27]: আমি গড়ে 55.289109 এমএসের রাউন্ডট্রিপ সময়টি দেখেছি, সে 69.032727 এমএস দেখেছিল
সুতরাং দেখে মনে হচ্ছে যে সংযোগটি কম বিলম্ব করে রাখা (এবং আইএসপিগুলিতে "শাস্তি দেওয়া হবে না") আমি যে প্যাকেটগুলি প্রেরণ করি তা হ্রাস করতে হবে। এগুলি খুব ছোট প্যাকেটগুলি মনে রাখবেন, 40 বাইট সর্বাধিক, তবুও আমি এখনও থ্রটলড করছি।
থ্রটল হওয়া এড়াতে আমি প্রতি সেকেন্ডে কতটা ইউডিপি প্যাকেট পাঠাতে পারি তার গাইডলাইন সন্ধান করছি! কোথাও কোন সাধারণ নির্দেশিকা আছে?