/ / डाटा ट्रांसफर प्रोटोकॉल डिज़ाइन - सी ++, क्यूटी, सॉकेट्स, टीसीपी, प्रोटोकॉल

डाटा ट्रांसफर प्रोटोकॉल डिज़ाइन - सी ++, क्यूटी, सॉकेट, टीसीपी, प्रोटोकॉल

मैं गीगाबाइट के हस्तांतरण के लिए एक प्रोटोकॉल लिख रहा हूंटीसीपी का उपयोग करते हुए एक नेटवर्क पर डेटा, खुद को प्रोटोकॉल पर प्रोग्रामिंग के बारे में थोड़ा सा सिखाने की कोशिश करने के लिए। मैं इस हस्तांतरण प्रोटोकॉल को डिज़ाइन करने के बारे में अनिश्चित हूं, ताकि डेटा को सबसे तेज़ और सबसे कुशल तरीके से स्थानांतरित किया जा सके।

मैं विंडोज़ पर क्यूटी का उपयोग कर रहा हूं।

फिलहाल, मेरे एप्लिकेशन प्रोटोकॉल का मेरा डिज़ाइन (डेटा स्थानांतरित करने का भाग) इस प्रकार है:

  1. सबसे पहले लॉगिन विवरण शूट करें।
  2. 4 किलोबाइट का पहला डेटा पैकेट (सॉकेट में) लिखें, और फिर यह पुष्टि करें कि सर्वर को पैकेट मिल गया है।
  3. जब सर्वर डेटा पैकेट प्राप्त करने की पुष्टि करता है (int "1" लिखकर), अगले 4 किलोबाइट लिखिए।
  4. जब सभी डेटा को स्थानांतरित कर दिया गया है, तो सर्वर पर स्थानांतरित डेटा का md5sum भेजें।
  5. यदि सर्वर 8 int के साथ फिर से पुष्टि करता है, तो डेटा ट्रांसफर पूरा हो जाता है।

फिलहाल, मुझे गति अधिक नहीं मिल रही है127.0.0.1 से अधिक स्थानांतरित होने पर एक ही कंप्यूटर पर 166KB / सेकंड की तुलना में। मैं अन्य प्रोटोकॉल डिजाइनों को पढ़ने की कोशिश कर रहा हूं, लेकिन डेटा ट्रांसफर प्रोटोकॉल पर शायद ही कोई प्रलेखन है जो कोई अपने आवेदन के लिए लिख सकता है।

क्या प्रोटोकॉल डिज़ाइन जो मैंने गलत पोस्ट किया है या कुछ गंभीर मुद्दों से पीड़ित है? क्या प्रोटोकॉल को सर्वर द्वारा पुष्टि किए जाने वाले प्रत्येक पैकेट की प्रतीक्षा करनी चाहिए या क्या मुझे इसे लगातार लिखना चाहिए?

उत्तर:

जवाब के लिए 0 № 1

पहले, मैं पढ़ने के बारे में कुछ समय बिताने की सलाह दूंगा टीसीपी, और उस बारे में स्लाइडिंग विंडो प्रोटोकॉल.

मुझे लगता है कि आपके कारण 2 कारण हैंकार्यान्वयन इतना धीमा है: सबसे पहले, आप प्रत्येक पैकेट की पावती की प्रतीक्षा करते हैं - बहुत धीमी गति से, आपको स्लाइडिंग विंडो का उपयोग करना चाहिए। दूसरा, आप एमडी 5 चेकसमिंग का उपयोग करते हैं। इसमें कुछ भी गलत नहीं है, लेकिन टीसीपी पहले से ही कुछ बुनियादी जांचों को लागू करता है, और एमडी 5 कार्यान्वयन जो आप उपयोग करते हैं, वह बहुत धीमा हो सकता है।

और अंत में, यह पता लगाने का विशिष्ट तरीका है कि क्यों कुछ धीमी गति से काम करता है, प्रोफाइलिंग का उपयोग करना है।