मेरे पास एक स्विच के लिए 10GbE कनेक्शन के साथ एक सर्वर है, और एक ही स्विच के लिए 1GbE कनेक्शन वाले प्रत्येक 10 ग्राहक हैं।
प्रत्येक क्लाइंट पर समानांतर में चल रहे Nuttcp, मैं डेटा की 10 टीसीपी स्ट्रीम को एक साथ वायर स्पीड पर बंद कर सकता हूं (यानी एक साथ सभी 10 क्लाइंट से 100 मेगाबाइट प्रति सेकंड की शर्म)।
हालाँकि, जब मैं दिशा को उलट देता हूं और सर्वर से क्लाइंट को डेटा भेजता हूं - यानी, 10 टीसीपी स्ट्रीम, प्रत्येक क्लाइंट पर जाने वाला - टीसीपी रिट्रांसमिशन स्काईरकेट और प्रदर्शन 30, 20 या प्रति सेकंड 10 मेगाबाइट तक गिर जाता है। प्रति ग्राहक। मैं इन नंबरों को प्राप्त करना चाहता हूं, क्योंकि यह ट्रैफिक पैटर्न उन कुछ अनुप्रयोगों का प्रतिनिधि है जिनकी मुझे परवाह है।
मैंने सत्यापित किया है कि मेरा सर्वर एक समान सर्वर के लिए 10GbE कनेक्शन पर एक ही प्रयोग करके 10GbE लिंक को संतृप्त करने में सक्षम है। मैंने सत्यापित किया है कि मेरे किसी भी पोर्ट पर कोई त्रुटि नहीं है।
अंत में, जब मैं रिसीवर के टीसीपी विंडो के आकार को जबरन क्लैंप (सीमा) करता हूं, तो मुझे बैंडविड्थ कुछ अधिक (30-40 मेगाबाइट / सेकंड) मिल सकती है; और अगर मैं इसे बहुत कम कर देता हूं, तो मैं रेट्रांस्मिशन को शून्य पर ले जा सकता हूं (बैंडविड्थ कम मात्रा में)।
इस प्रकार मुझे पूरा विश्वास है कि मैं अपने स्विच में बफ़र्स को ओवररेल कर रहा हूं, जिसके परिणामस्वरूप कंजेशन के कारण पैकेट लॉस हो रहा है। हालांकि, मुझे लगा कि टीसीपी के भीड़ नियंत्रण को इस अच्छी तरह से निपटना चाहिए था, अंततः तार की गति के 50% से ऊपर कुछ पर स्थिर होना चाहिए।
तो मेरा पहला सवाल बहुत सरल है: मेरी स्थिति के लिए कौन सा टीसीपी भीड़ नियंत्रण एल्गोरिथ्म सबसे अच्छा होगा? उनमें से एक टन उपलब्ध है, लेकिन वे ज्यादातर हानिपूर्ण नेटवर्क या उच्च-बैंडविड्थ उच्च-विलंबता नेटवर्क या वायरलेस नेटवर्क पर लक्षित होने लगते हैं ... जिनमें से कोई भी मेरी स्थिति पर लागू नहीं होता है।
दूसरा सवाल: क्या मैं कुछ और कोशिश कर सकता हूं?