2012-05-25 14 views
5

मैं एक एसएनएमपी एजेंट लिख रहा हूं और एमआईबी परिभाषा में एक प्रकार का ओआईडी शामिल है जो Unsigned32 है।एसएनएमपी प्रकार Unsigned32 के लिए सही एन्कोडिंग क्या है?

एजेंट का यूनिक्स कार्यान्वयन नेट-एसएनएमपी का उपयोग करता है और ओआईडी को ASN_UNSIGNED के रूप में सेट करता है, क्योंकि इसमें ASN_UNSIGNED32 नहीं है। जब मैं वायरशर्क के साथ जीईटी प्रतिक्रिया देखता हूं, तो यह इसे "गेज 32" मान के रूप में डीकोड करता है। यह पहली नजर में समझ में आता है, क्योंकि आरएफसी 1 9 02 के अनुसार Unsigned32 और गेज 32 समान हैं।

विंडोज कार्यान्वयन विंडोज़ 'स्नैम्पैपी.लिब पर आधारित है और ओआईडी को ASN_UNSIGNED32 के रूप में सेट करता है और जब मैं वायरशर्क के साथ जीईटी प्रतिक्रिया देखता हूं, तो यह इसे "असाइन 32" के रूप में डीकोड करता है। यह मेरे लिए भी बेहतर दिखता है।

2 कार्यान्वयन तार पर अलग-अलग परिणाम कैसे उत्पन्न करते हैं?

सही संस्करण कौन सा है और मैं दोनों कार्यान्वयन से इसे कैसे प्राप्त कर सकता हूं?

उत्तर

5

यह पता चला है कि नेट-एसएनएमपी वर्तमान आरएफसी 1 9 02 एन्कोडिंग का उपयोग कर रहा है जहां Unsigned32 और गेज 32 समान हैं, जबकि विंडोज अप्रचलित आरएफसी 1442 एन्कोडिंग का उपयोग करता है जहां Unsigned32 और गेज 32 में अलग-अलग एन्कोडिंग थे।

+1

अच्छा पकड़ो। विंडोज़ की एक बग की तरह लगता है। –

+0

इसकी प्रकृति से, माइक्रोसॉफ्ट ने 1 99 6 से एसएनएमपी सेवा को वास्तव में अपडेट नहीं किया है जब आरएफसी 1902 बाहर आया था। इसलिए वे पुराने संस्करण के साथ चिपके रहते हैं और ऐसा लगता है कि अधिकांश एसएनएमओपी उपकरण अभी भी आरएफसी 1442 के साथ संगत हैं। –

1

यदि आप विंडोज पर वायरशर्क कैप्चर को सहेजते हैं और फिर इसे यूनिक्स पर वायरशर्क में खोलते हैं। फिर आप देख सकते हैं कि यह किस प्रकार दिखाता है। Unsigned32 और गेज 32 मानक द्वारा परिभाषित विनिमेय हैं, इसलिए सभी एसएनएमपी कार्यान्वयन में बिल्कुल अलग नहीं होना चाहिए। तार पर, इसे एक ही बाइट स्थानांतरित करना चाहिए।

+0

जो मैंने सोचा था, लेकिन दोनों वायरसहार्क निशान लिनक्स पर किए गए थे और लिनक्स एजेंट से ओआईडी गेज 32 के रूप में प्रदर्शित होते हैं और विंडोज एजेंट के लोगों को Unsigned32 के रूप में दिखाया जाता है। एक ही मशीन पर वही Wireshark निष्पादन योग्य। –

+0

में वायरसहार्क के पार्सर में गोता लगाने का समय नहीं था। लेकिन जैसे मैंने कहा, आपको कच्चे बाइट्स को तब पढ़ना चाहिए। आपने उसे किया है? –

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