আমি আমার হোম ইন্টারনেট সংযোগটি সমস্যার সমাধান করার চেষ্টা করছি, যা প্রায়শই বড় ডাউনলোডগুলিতে স্থির থাকে। আমি বিশ্বাস করি যে আমি আমার হোম কম্পিউটার এবং একটি অ্যামাজন ইসি 2 উদাহরণের মধ্যে প্যাকেট দুটি প্রান্তে ক্যাপচারের মাধ্যমে সমস্যার নকল করতে সক্ষম হয়েছি। আমি দুটি পৃথক হ্যাঙ্গ এ একই আচরণটি পর্যবেক্ষণ করেছি:
- আমি ইসি 2 সার্ভার থেকে আমার বাড়ির কম্পিউটারে 20 এমবি ফাইলের একটি টিসিপি ডাউনলোড শুরু করি (হোম কম্পিউটার টিসিপি ক্লায়েন্ট, ইসি 2 সার্ভারটি টিসিপি সার্ভার)।
- প্রাথমিক টিসিপি এসওয়াইএন এর একটি এমএসএস বিকল্প রয়েছে 1418 বাইট। ক্লায়েন্টের অন্য কোনও বিভাগে এমএসএস বিকল্প নেই (সার্ভারের এসওয়াইএন / এসিকে এমএসএস বিকল্প রয়েছে 1460)।
- যখন বেশিরভাগ স্থানান্তর স্থানান্তরিত হয়, সার্ভারের প্যাকেটগুলি 2878 বাইট হয়। এই প্যাকেটগুলি ক্লায়েন্টকে দুটি 1472 বাইট প্যাকেট হিসাবে গ্রহণ করা হবে (আমি তাদের সামনের এবং পিছনের অর্ধেক কল করব), যার প্রতিটি টিসিপি বিভাগ রয়েছে যার অর্ধেক ডেটা রয়েছে।
- কিছু সময়ে সার্ভার থেকে একটি সামনের অর্ধেক প্যাকেট হারিয়ে যায়। ক্লায়েন্ট এসএকেকে একটি স্যাক বিকল্পের সাথে পুনরাবৃত্তি করতে শুরু করে।
- SACK বিকল্পের সাথে প্রথম ACK পাওয়ার পরে সার্ভারটি 1472 বাইট প্যাকেটগুলি প্রেরণ শুরু করে (2878 বাইট প্যাকেটের পরিবর্তে)।
- অর্থাত - কয়েক ডুপ্লিকেট ACKs পর সার্ভার হল এমন একটি 1472 বাইট প্যাকেট পুনরায় পাঠানো হচ্ছে ফাস্ট retransmission করে, না 2878 বাইট প্যাকেট এটা মূলত পাঠানো হয়েছে। এই রাগ প্যাকেটটি ক্লায়েন্টের কাছে প্রদর্শিত হবে না।
- সময়সীমা শেষ হওয়ার পরে, সার্ভারটি আরও বেশ কয়েকবার পুনঃপ্রেরণ চেষ্টা করে, আবার 1472 বাইট প্যাকেট প্রেরণ করে। এই রাগের প্যাকেটের কোনওটিই ক্লায়েন্টের উপরে প্রদর্শিত হবে না।
আমার বেশ কয়েকটি প্রশ্ন আছে। প্রথমত, সার্ভারটি কেন শুরু হতে 2878 বাইট প্যাকেট পাঠাচ্ছে? এসওয়াইএন প্যাকেটে এমএসএস বিকল্পটি সম্মান করার কথা নয়?
দ্বিতীয়ত, সেই 2878 বাইট বিভাগগুলিকে কোথায় দুটি 1472 বাইট বিভাগে বিভক্ত করা হচ্ছে?
তৃতীয়, কোথায় এবং কেন সমস্ত পুনঃপ্রেরণিত প্যাকেটগুলি বাদ দেওয়া হচ্ছে?
চতুর্থত, জিনিসগুলির ক্লায়েন্টের দিক থেকে আমি কী কোনও উপায় এড়াতে পারি?
মজার বিষয় হল, দেখা যাচ্ছে যে পিছনের অর্ধেক প্যাকেটটি হারিয়ে গেলে সংযোগটি পুনরুদ্ধার করতে পারে। আমার (সম্ভবত বোগাস) তত্ত্বটি হ'ল রুটের পাশের কিছু প্রত্যক্ষ অর্ধেক প্যাকেটগুলি খাচ্ছে কারণ সেগুলি তাদের মূল আকারের সাথে মেলে না। এছাড়াও, ইউডিপি (ওপেনভিপিএন সহ) এর মাধ্যমে একই স্থানান্তরটি স্থগিত হয় না (আমি জানি এর অর্থ যে আমি এইভাবে আমার সমস্ত ট্রাফিকের প্রক্সি করতে পারি তবে এটি উত্তর যা আমি খুঁজছি তা নয়)।
এখানে হোম এবং সার্ভারের জন্য প্যাকেট ক্যাপচার রয়েছে ।
ফলোআপ: @ ডেভিডশওয়ার্টজ মন্তব্যগুলিতে পরামর্শ দিয়েছেন যে বিভাগের আকারের অসঙ্গতিগুলি টিএসও দ্বারা ব্যাখ্যা করা যেতে পারে এবং দেখে মনে হচ্ছে এটি সঠিক। সার্ভারে টিএসও অক্ষম করা হচ্ছে সেগমেন্টের আকারটি 1472 বাইটে ক্যাপ করে। দুর্ভাগ্যক্রমে, স্থানান্তর এখনও retransmitted প্যাকেটগুলি না পেয়ে স্তব্ধ not
আমি টিসিপি বিকল্পগুলি স্যাক, টাইমস্ট্যাম্পগুলি এবং উইন্ডো স্কেলিং নিষ্ক্রিয় করার পাশাপাশি উইন্ডোর আকার 8192 বাইটে হ্রাস করার চেষ্টা করেছি। স্থানান্তর এখনও স্থগিত। ক্লায়েন্ট retransmitted প্যাকেটগুলির আগে এবং পরে প্রেরিত প্যাকেটগুলি গ্রহণ করে তবে retransmitted প্যাকেটগুলি সেগুলি নয়।