मुझे विशेष उत्तरों में दिलचस्पी है:
- क्या सकल संपादन के साथ एनआईसी टीसीपी एसीके या कोई अन्य पैकेट बनाता है (या क्या यह सुविधा रिसीवर / प्रेषक टीसीपी स्टैक्स के लिए पारदर्शी है)?
- एनआईसी को टीसीपी स्टैक को "चिपके हुए खंड" पास करना चाहिए, तो एक समयबाह्य / घटना होनी चाहिए? वे क्या हैं?
- पैकेट फ़ॉरवर्डिंग सेटअप में - क्या ग्रोस फीचर रिसीवर ACK को पढ़ने की कोशिश करता है (नीचे देखें कि मैं यह क्यों पूछ रहा हूं)?
- कोई भी स्रोत जो सकल और अन्य एनआईसी ऑफलोडिंग फीचर्स (टीएसओ, एलएसओ ...) की व्याख्या करता है, वे विकिपीडिया और लिनक्स मैन पेजों से बेहतर हैं जो वास्तव में सराहे जाएंगे।
अधिक जानकारी:
मैं एक IPSec कार्यान्वयन के साथ एक प्रदर्शन समस्या का निवारण कर रहा हूं। समस्या यह है कि उपलब्ध बैंडविड्थ सभी 4 वीपीएन सुरंगों में समान रूप से वितरित नहीं किया जाता है (लगभग 200 एमबीपीएस / 200 एमबीपीएस / 1 एमबीपीएस / 1 एमबीपीएस के रूप में वितरित किया जाता है; प्रत्येक वीपीएन सुरंग सिंगल टीसीपी कनेक्शन को एन्क्रिप्ट करती है)। PCAP में एक बार में मुझे लगता है कि वेबसर्वर बेकार है जैसे ~ 2 सेकंड (ACK की प्रतीक्षा)। जब वेबसर्वर अनजाने खंडों को पुन: प्रदर्शित करता है तो डाउनलोडिंग फिर से शुरू होती है।
पीसीएपी से मेरी आंतरिक फीलिंग यह है कि एनआईसी ग्रोस में एक साथ ग्लूट्स पैकेट की सुविधा होती है, लेकिन कभी-कभी उन्हें टीसीपी स्टैक के लिए समय पर पास नहीं किया जाता है और इससे समस्याएं पैदा होती हैं।
चूंकि इस वीपीएन सर्वर में टीसीपी कनेक्शन को समाप्त करने वाले इंटरफेस नहीं हैं, बल्कि केवल फॉरवर्ड पैकेट हैं। तब मैंने सकल को निष्क्रिय करने की कोशिश की और उसके बाद मैंने देखा कि यातायात सभी सुरंगों में समान रूप से वितरित किया गया था। इसके अलावा जब Webserver पर TCP विंडो स्केलिंग अक्षम की जाती है, तो बैंडविड्थ को सकल सक्षम के साथ भी वितरित किया जाता है (यही कारण है कि मेरे पास प्रश्न # 3 था)।
मैं Ubuntu 10.04 सर्वर (64-बिट) पर 2.6.32-27 लिनक्स का उपयोग कर रहा हूं। एनआईसी इंटेल 82571EB है। सभी इंटरफेस (HTTP क्लाइंट, वीपीएन क्लाइंट, वीपीएन सर्वर, वेबसर्वर) 1Gbit ईथरनेट केबल के साथ सीधे श्रृंखला में जुड़े हुए हैं।