2015-11-22 8 views
20

मैं Google को बड़ी (50 एमबी - 32 जीबी) फाइलें अपलोड करने की कोशिश कर रहा हूं। ड्राइव करें। मैं google-api-dotnet का उपयोग कर रहा हूं जो अपलोड तर्क और एन्क्रिप्शन समर्थन प्रदान करता है। मुख्य समस्या धीमी अपलोड गति है।सी # एचटीपी क्लाइंट धीमी अपलोडिंग गति

मैंने एपीआई source code के माध्यम से देखा। प्रत्येक फ़ाइल को भाग द्वारा अपलोड किया जाता है (मैंने 4 एमबी तक खंड आकार सेट किया है) प्रत्येक खंड को नए HttpRequestMessage इंस्टेंस के माध्यम से अपलोड किया जाता है। एक बार एपीआई सेवा शुरू होने और सभी अनुरोधों के लिए पुन: उपयोग करने के बाद HttpClient बनाया गया है।

अपलोड की गति 600 किलोबाइट/एस और स्थिर है जबकि मेरा अपलिंक 10 गुना तेज है।

मैंने वायरसहार्क के साथ यातायात पर कब्जा कर लिया: slow-uploading-screenshot प्रत्येक खंड को सैकड़ों या हजारों छोटे टीएलएस पैकेट में बांटा गया है। और प्रत्येक छोटे टीएलएस पैक के लिए एक पुष्टिकरण की उम्मीद है। तो परिणामस्वरूप गति बहुत कम है।

लेकिन जब मैं फिडलर प्रॉक्सी शुरू करता हूं, तो मेरी अपलिंक जितनी तेज हो सकती है उतनी गति तेज हो जाती है। टीएलएस समानांतर में बहुत तेजी से जा रहा पैकेट तथा पुष्टि बाद में प्राप्त कर रहे हैं: tls-packets-first-screenshot tcp-ack-later

मैं Win7 के साथ 5 पीसी पर अपने कोड की कोशिश की और सभी समान कम अपलोड करने की गति से पता चला है। लेकिन जब मैंने Win10 पीसी पर कोशिश की - गति बहुत अच्छी थी। इसके अलावा मैंने Google की कोशिश की। क्लाइंट एप्लिकेशन ड्राइव करें और इसमें गति के साथ ही समस्याएं थीं। मैंने इस व्यवहार के बारे में जानने की कोशिश की, लेकिन मुझे कुछ भी नहीं मिला।

  1. 4 एमबी भाग 4 केबी टीएलएस पैकेट में क्यों विभाजित हैं? क्या मैं टीएलएस पैकेट आकार बढ़ा सकता हूं?
  2. मैं टिडल पैकेट को फिडलर के समानांतर में कैसे भेज सकता हूं?
  3. या अपलोड की गति बढ़ाने के अन्य तरीके हैं?
+0

मुझे आश्चर्य है कि यह https://ask.wireshark.org/questions/38768/slow-upload-speed-from-windows-stations-to-ssl-hosts पर वर्णित समस्या का एक रूप है, जो कुछ सॉफ़्टवेयर (फिडलर) आसपास काम कर रहा है, लेकिन एचटीपी क्लाइंट का आपका उपयोग नहीं है। –

+0

मैं https://github.com/Redth/HttpTwo –

+0

का प्रयास करने का प्रयास करूंगा, मुझे एक ही समस्या का सामना करना पड़ रहा है। क्या आपको इस मुद्दे के लिए कोई काम मिला? – Mayuresh

उत्तर

0

एसएसएलवी 3/टीएलएसवी 1 के लिए अधिकतम रिकॉर्ड आकार 16kB है, तो हो सकता है कि आप पुराने संस्करण के साथ हैंडशेक करें। मुझे लगता है कि Google को उपयोगकर्ता एसपीडीवाई/HTTP2 प्रोटोकॉल के लिए अनुकूलित किया गया है जो समान कनेक्शन में समानांतर में भेज सकता है। हो सकता है कि अपने ग्राहक नहीं ...

How to make the .net HttpClient use http 2.0?

1

यह बेहद संभव है कि समस्या गूगल लिंक, नहीं कुछ और है। मुझे क्रोम के साथ Google ड्राइव पर चीजें अपलोड की गई हैं और मेरे अपलोड लिंक के अलावा विशाल (50 एमबीपीएस अप) है, Google सीमित लगता है।

संबंधित मुद्दे