टीसीपी एक बाइट धारा प्रोटोकॉल है। आपके http अनुप्रयोग द्वारा भेजे गए बाइट्स का अनुक्रम टीसीपी डेटा सेगमेंट में encapsulated है और दूसरे पक्ष पर डेटा को डेटा वितरित करने से पहले बाइट स्ट्रीम को फिर से बनाया जाता है। क्योंकि आप Winpcap का उपयोग कर टीसीपी डेटासेगल्स तक पहुंच रहे हैं, तो आपको सेगमेंट के डेटा हिस्से में जाना होगा। टीसीपी के शीर्षलेख में 20 बाइट्स की एक निश्चित लंबाई होती है + एक वैकल्पिक भाग जिसे आपको winpcap api का उपयोग करके निर्धारित करने की आवश्यकता होती है।
टीसीपी सेगमेंट में डेटा भाग की लंबाई टीसीपी हेडर लम्बाई (टीसीपी सेगमेंट में एक फ़ील्ड से प्राप्त) और आईपी हेडर लम्बाई (आईपी डेटाग्राम में एक फ़ील्ड से जो टीसीपी सेगमेंट को एन्सेप्लेट करता है) को घटाकर निर्धारित किया जाता है। कुल लंबाई से (आईपी डेटाग्राम में किसी अन्य क्षेत्र से प्राप्त)।
तो अब आपके पास सेगमेंट के भीतर कुल सेगमेंट की लंबाई और डेटा भाग की लंबाई है। इसलिए आप ऑफ़सेट जानते हैं कि http अनुरोध डेटा कहां से शुरू होता है।
ऑफसेट
total length-length of data part
or
length of ip-header + length of tcp header
मैं WinPcap इस्तेमाल नहीं किया है है। इसलिए आपको यह पता लगाना होगा कि एपीआई का उपयोग करके इन क्षेत्रों को कैसे प्राप्त किया जाए।
भी आईपी डेटाग्राम को और खंडित किया जा सकता है, लेकिन मुझे उम्मीद है कि आपको इस एपीआई का उपयोग करके केवल डेटाग्राम प्रदान किया जाएगा। तुम तैयार हो!
स्रोत
2010-02-15 05:33:54