কোনও প্রোগ্রাম মারা যাওয়ার পরে শ্রোতা টিসিপি বন্দরটি পরিষ্কার করতে কয়েক মিনিট সময় নেয় কেন?


27

যদি আমি কোনও প্রোগ্রাম টিসিপি পোর্টে শুনছে তা মেরে ফেলি, বন্দরটি সিস্টেম দ্বারা পুনরায় দখল করা এবং আবার ব্যবহারযোগ্য না হওয়া পর্যন্ত কয়েক মিনিট সময় নেয়। আমি বেশ কয়েকটি প্রশ্ন / উত্তর এই ঘটনার উল্লেখ করে দেখেছি তবে কোনও ব্যাখ্যা ছাড়াই। কেন এটি ঘটে, কেন সিস্টেম এখনই বন্দরটিকে পুনরুদ্ধার করবে না? এটি কি অন্য সিস্টেমে যেমন উইন্ডোজ বা ম্যাকের ক্ষেত্রেও ঘটে?

উত্তর:


25

এর পিছনে ধারণাটি নিশ্চিত করা হয় যে আপনি সেই বন্দরে শোনা আগের প্রোগ্রামটির জন্য লক্ষ্যযুক্ত প্যাকেটগুলি গ্রহণ করবেন না। এই TIME_WAITরাজ্যটি আরএফসি 79৯৩ এ সর্বোচ্চ বিভাগের আজীবন দ্বিগুণ হিসাবে সংজ্ঞায়িত করা হয়েছে।

আমি অন্যান্য অপারেটিং সিস্টেমগুলি সম্পর্কে জানি না তবে আমি ধরে নিই যে এই সমস্তগুলির মধ্যে কিছুটা একই রকম আচরণ রয়েছে।

এই সমস্যার সমাধানের জন্য একটি SO_REUSEADDRসকেট সেট করা যা TIME_WAITরাষ্ট্রটিকে উপেক্ষা করবে ।


3
আমার বিশ্বস্ত টিসিপি স্টেট ডায়াগ্রামটি পরীক্ষা করে দেখতে পাচ্ছি যে TIME_WAIT একটি সকেটের শেষ অবস্থা এবং সাধারণত 2MSL- র স্থায়ী হয় - যা সর্বোচ্চ বিভাগের আজীবন দ্বিগুণ। অনুমানটি (আরএফসি 79৯৩) এটি 2 মিনিট হিসাবে জানিয়েছে, মোট 4 মিনিট সময় দেয়। এটি কোনও অনুরোধ এবং জবাবের জন্য এখনও "ফ্লাইটে" প্রসেস করার জন্য এবং সঠিক প্রোগ্রামে অবতরণ করার জন্য পর্যাপ্ত সময় দেয় - বা সকেট TIME_WAIT এ থাকলে তা বাতিল করা যায়।
ফেইকলে

আমি নিশ্চিত করতে পারি যে উইন্ডোজেও এটি ঘটে।
থমাস ব্র্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.