हाल ही में, मैं कई वेबसाइटें पढ़ रहा हूं, और किताबें 10 जीबी/एस एनआईसी, उनके डीएमए और जिस तरह से डेटा लिनक्स कर्नेल द्वारा नियंत्रित किया जाता है (10/100 एमबी/एसआईसी) और कुछ सवाल मेरे दिमाग में आए।कर्नेल से उपयोगकर्ता स्थान (डीएमए)
एनआईसी से उपयोगकर्ता-भूमि में डेटा के 10 जीबी/एस प्रवाह को भेजने का सबसे आसान तरीका क्या होगा (मुझे लगता है कि उपयोगकर्ता दर में डेटा को उसी दर पर संसाधित करने में सक्षम होना चाहिए)।
और
आपको लगता है कि यह उपयोगकर्ता के अंतरिक्ष वहां से सीधे कच्चे डेटा को पढ़ने के लिए अंदर डीएमए बफर लागू करने के लिए एक अच्छा विचार होगा (और उन्हें एक ही दर पर स्पष्ट रूप से की प्रक्रिया)
करें या उनके किसी भी बेहतर समाधान के बारे में मैंने नहीं सोचा था:/
धन्यवाद।
मैं लिनक्स सामान्य सॉकेट से अधिक कुशल कुछ चाहिए, मैं पीएफ-रिंग के बारे में थोड़ा पढ़ा था और नेटमैप, मैं आज के बारे में कुछ और पढ़ने की कोशिश करूंगा, उत्तर के लिए धन्यवाद। हालांकि, मुझे यकीन नहीं है कि कौन सा समाधान (पीएफ-रिंग, उपयोगकर्ता-भूमि में डीएमए का नेटमैप) सबसे तेज है, हालांकि – noktec
Google वैन जैकबसन के नेटवर्क चैनलों के लिए भी सबसे तेज़ है। – ninjalj
मैं पीएफ-रिंग और नेटमैप के साथ-साथ PACKET_MMAP के बारे में पढ़ रहा हूं, और उनके पास लगभग सभी समाधान समान प्रतीत होते हैं, मैंने वैन जैकबसन से स्लाइड्स भी देखी हैं, और उनके अंदर बहुत अच्छे विचार थे! मुझे लगता है, मेरे पास PACKET_MMAP के साथ पहली बार प्रयास होगा, और उसके बाद पीएफ-रिंग के साथ एक छोटा बेंच परीक्षण करें, यह देखने के लिए कि कौन सा समाधान सबसे उचित प्रतीत होता है। लेकिन मुझे आश्चर्य है कि क्या पैकेट को sk_buff में प्रवेश करना बंद करना संभव होगा, और सीधे उपयोगकर्ता-भूमि में या पीएफ-रिंग द्वारा रिंग बफर द्वारा इलाज किया जाना चाहिए (और स्क्रैच से इसे कार्यान्वित करना कितना मुश्किल होगा) – noktec