पृष्ठभूमिकुशल डिकोडिंग (पैकेट)
वहाँ Wireshark कहा जाता है एक प्रसिद्ध उपकरण है। मैं उम्र के लिए इसका इस्तेमाल कर रहा हूं। यह बहुत अच्छा है, लेकिन प्रदर्शन समस्या है। सामान्य उपयोग परिदृश्य में बाद में विश्लेषण करने के लिए डेटा सबसेट निकालने के लिए कई डेटा तैयार करने के चरण शामिल हैं। उस चरण के बिना फ़िल्टरिंग करने में कुछ मिनट लगते हैं (बड़े निशान के साथ Wireshark अनुपयोगी के बगल में है)।
वास्तविक विचार एक बेहतर समाधान, तेजी से समानांतर और कुशल, एक डेटा एग्रीगेटर/भंडारण के रूप में प्रयोग की जाने वाली तैयार करना है।
आवश्यकताओं
वास्तविक आवश्यकता आधुनिक हार्डवेयर द्वारा प्रदान की सभी शक्ति का उपयोग करने के लिए है। मुझे कहना चाहिए कि विभिन्न प्रकार के अनुकूलन के लिए एक कमरा है और मुझे उम्मीद है कि मैंने ऊपरी परतों पर अच्छा काम किया है, लेकिन तकनीक अभी मुख्य प्रश्न है।
- इंटरैक्टिव डिकोडर: डिकोडिंग तर्क आसानी से क्रम में बदला जा सकता है वर्तमान डिजाइन के अनुसार पैकेट डिकोडर के कई जायके (dissectors) कर रहे हैं। प्रोटोकॉल डेवलपर्स के लिए ऐसा दृष्टिकोण काफी उपयोगी हो सकता है - डिकोडिंग गति महत्वपूर्ण नहीं है, लेकिन लचीलापन और तेज़ परिणाम अधिक महत्वपूर्ण हैं
- एम्बेड करने योग्य डिकोडर्स: लाइब्रेरी के रूप में उपयोग किया जा सकता है। इस प्रकार का अच्छा प्रदर्शन होना चाहिए और सभी उपलब्ध CPUs और कोर
- डीकोडर्स सेवा के रूप में उपयोग करने के लिए पर्याप्त लचीला रहें: एक स्वच्छ API के माध्यम से पहुंचा जा सकता है। इस प्रकार नस्ल प्रदर्शन और कार्यकुशलता का सबसे अच्छा प्रदान करना चाहिए
परिणाम
मेरे वर्तमान समाधान JVM आधारित डिकोडर है। वास्तविक विचार कोड का पुन: उपयोग करना, पोर्टिंग को खत्म करना आदि है, लेकिन अभी भी अच्छी दक्षता है।
- इंटरएक्टिव डिकोडर: ग्रूवी पर लागू
- एम्बेड करने योग्य डिकोडर: जावा पर लागू
- डिकोडर्स एक सेवा के रूप में: बिलाव + अनुकूलन + एम्बेड होने डिकोडर एक सर्वलेट में लिपटे (में द्विआधारी, एक्सएमएल आउट)
हल करने की समस्या
- ग्रूवी अधिक शक्ति और सब कुछ करने के लिए तरीका प्रदान करता है, लेकिन इस विशेष मामले में अभिव्यक्ति की Lucks एक वृक्ष संरचना में
- डिकोडिंग प्रोटोकॉल एक मृत अंत है - बहुत ज्यादा संसाधनों बस बर्बाद हो जाते हैं
- मेमोरी की खपत कुछ हद तक है नियंत्रण करने के लिए मुश्किल है।ज्यादा भूमि के ऊपर (मुख्य रूप से कनेक्शन हैंडलिंग) को
मैं ठीक कर रहा हूँ हर जगह JVM का उपयोग कर रहा रूपरेखा के साथ कई अनुकूलन, लेकिन अभी भी खुश नहीं विभिन्न घंटियाँ और सीटी के साथ परिणाम
प्रोटोकॉल, परिणामों का प्रारूप इत्यादि तय नहीं हैं।
क्या आप अपना प्रश्न संकीर्ण कर सकते हैं? यह अविश्वसनीय रूप से खुला है। मैं वास्तव में नहीं जानता कि आप किस प्रकार के उत्तरों की तलाश में हैं। –
मैं @ जॉन कुगेलमैन से सहमत हूं, यह एक अच्छा सवाल हो सकता है, लेकिन जैसा कि कहा गया है कि यह बहुत व्यापक है। मैं जितना संभव हो उतना हटाने की कोशिश करता हूं और जो जानकारी आप वास्तव में पूछ रहे हैं उससे प्रासंगिक जानकारी रखने की कोशिश करते हैं (प्रोटोकॉल फ्रेम को डीकोड करने के बारे में)। आप अतिरिक्त सामानों और आपके असली प्रश्न के साथ केवल 1 वाक्य के बारे में बात करते हुए 4 पैरागफ और 2 बुलेट सूचियां खर्च करते हैं। – durron597
मैंने मूल्यवान विवरण प्रदान करने और कुछ अन्य सामान हटाने के प्रश्न को संपादित किया है। कोई भी और एकमात्र समाधान नहीं है। कई या शायद बहुत सारे मूल्यवान उत्तरों का प्रस्ताव दिया जा सकता है, दिलचस्प अंतर्दृष्टि प्रदान करना, असामान्य तकनीकों का वर्णन करना और अच्छे वास्तुशिल्प समाधानों को हाइलाइट करना। –