मैं एक मुड़ शंख SSH सर्वर है और विशिष्ट परिदृश्य यह है: OpenSSH क्लाइंट के माध्यम सेमुड़ शंख - प्रवाह नियंत्रण
Git >> --- WAN1 --- >> मुड़ शंख svr >> --- WAN2 - >> Git सर्वर
वहाँ अवसरों कि 'Git पुश' की तुलना में मैं WAN2 पर प्रॉक्सी कर सकते हैं WAN1 से अधिक तेजी से डाटा भेज रहा है हो जाएगा, तो मैं (अच्छी तरह से किसी भी टीसीपी पैकेट से पहले धीमा करने के लिए ग्राहक बताने की आवश्यकता नुकसान टिस्ड सर्वर पर बहुत अधिक बफरिंग से बचने के लिए टीसीपी विंडो आकार समायोजन का कारण बनता है। एसएसएच के लिए आरएफसी पढ़ना यह एडी विंडो के माध्यम से स्वीकार नहीं किया जाता है, इसके बाद यह गिट पुश को सिस्सेल पर ब्लॉक करने के लिए openssh द्वारा समर्थित पाइप पर लिखने का कारण बनता है।
शंख को देखते हुए/ssh/connection.py: ssh_CHANNEL_DATA (स्वयं, पैकेट) डीईएफ़ विधि में L216: मैं 0 करने के लिए localWindowSize स्थापित करने के साथ ऐसा कर सकते हैं, और इनफ्लाइट डेटा अभी भी विधेय के रूप में पहुंचेंगे पर 230 अभी भी चाहिए पास करें (स्थानीय विन्डो लिफ्ट दें)। मैं सोच रहा हूं कि यह सही दृष्टिकोण है या क्या मैं ट्विस्ट एसएसएच कंचन के साथ प्रवाह नियंत्रण के संबंध में कुछ अंधेरे से स्पष्ट हूं? *
नोट: मैं स्वीकार करता हूं कि स्टॉपव्राइटिंग के लिए विधियों के प्लेसहोल्डर हैं और (चैनल) पर स्टार्टवाइटिंग जो मैं ओवरराइड कर सकता हूं, इसलिए मेरे पास ट्रांसमिशन 'गिट पुल' के दूसरी तरफ नियंत्रण करने के लिए हुक हैं, लेकिन मैं दूसरी तरफ दिलचस्पी लेता हूं। इसके अलावा आईपश/आईपुल निर्माता इस स्तर पर लागू नहीं लगते हैं और मैं नहीं देख सकता कि मैं इन उच्च अवशोषण में कैसे श्वास को कुचलने के बिना जोड़ सकता हूं?
"मुझे लगता है कि क्लाइंट से डेटा आने पर कॉन्च आपके कोड में एक फ़ंक्शन कॉल करता है। क्या यह उस कॉल से वापस नहीं लौटने के लिए पर्याप्त है जब तक कि आप बैकएंड सर्वर पर डेटा वितरित नहीं कर लेते?" यह उत्पादन में काम नहीं करेगा क्योंकि ट्विस्ट रन एक घटना लूप पर यदि हम डेटा आने पर फ़ंक्शन में अवरुद्ध करते हैं तो यह पहले स्थान पर ट्विस्ट का उपयोग करने के किसी भी लाभ को हटा देगा। जबकि मैं आगे बढ़ता रहता हूं और सोचता हूं कि मैं अंततः गोलांग में माइग्रेट करूंगा जहां क्रिप्टो लाइब्रेरी एक स्वच्छ एसएसएच कार्यान्वयन का खुलासा करती है जहां मैं इन चीजों को नियंत्रित कर सकता हूं। –