सवाल प्रतिक्रिया की आवश्यकता के बिना फास्ट पिंगिंग [बंद]


मैं दो मशीनों के बीच एक तरह से विलंबता मापने की कोशिश कर रहा हूं और मैं इसका उपयोग करना चाहता हूं ping भेजने के लिए ICMP एक मशीन से दूसरे मशीन में पैकेट। पैकेट के बीच अंतराल 1 माइक्रो सेकेंड (1us) होना चाहिए और मैं 1 मिलियन पैकेट (10 ^ 6) भेजना चाहता हूं, इसलिए इसे पैकेट भेजने के लिए कुल मिलाकर 1 सेकंड लेना चाहिए।

इसके अलावा, मुझे दूसरी मशीन की प्रतिक्रिया की परवाह नहीं है (मैं केवल दूसरी मशीन पर पैकेट को कैप्चर करूँगा और उनका विश्लेषण करूंगा)।

अभी मैंने कोशिश की है:

ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 -b 255.255.255.255

मैंने निष्क्रिय करने का भी प्रयोग किया -l और यह -f विकल्प। जब मैं के लिए एक बड़ा मूल्य का उपयोग करें -l मुझे एक चेतावनी मिलती है कि आरसीवीबीफ प्रीलोड को पकड़ने के लिए पर्याप्त नहीं है।

मैं अपनी मशीन से आउटगोइंग पैकेट और अन्य मशीन पर इनकमिंग पैकेट तक कैप्चर करने के लिए टीसीपीडम्प का उपयोग कर रहा हूं।

मुद्दा यह है कि अधिकांश मामलों में पैकेट के बीच अंतराल 5us और 15us के बीच होता है, और थोड़ा बड़ा होता है।

मेरे पास एक ही समस्या है जब मैं सीधे Google जैसी वेबसाइट पर भेज रहा हूं:

ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 google.com

मुझे क्या चाहिए:

  • एक मशीन से दूसरे मशीन में पैकेट भेजें
  • किसी भी प्रतिक्रिया के लिए इंतजार करने के लिए पहली मशीन के बिना
  • और पैकेट के बीच अंतराल 1us होना चाहिए

इसे करने के लिए यह बेहतर होगा ping आदेश और विकल्प जो यह प्रदान करता है (यदि वे पर्याप्त हैं)। मेरे पास प्रशासक विशेषाधिकार हैं।


अद्यतन करें

मेरा लक्ष्य लेटेंसी को मापना है कि विभिन्न केबल पैकेट पर पेश करते हैं। तो मुझे सटीक पैकेट पीढ़ी और कब्जा करने की जरूरत है। हार्डवेयर के मामले में मेरे पास उचित उपकरण हैं, लेकिन मुझे वह उम्मीद नहीं है जो मैं उम्मीद करता हूं। मेरा मानना ​​है कि समस्या सॉफ्टवेयर के साथ है।

मेरे लिए मुद्दा यह है कि जब मैं इसका उपयोग कर रहा हूं तो पिंग अपेक्षित काम नहीं कर रहा है -i विकल्प। जब मैं उपयोग कर रहा हूँ -f -l 1000000 कैप्चर हर 3us से 5us भेजते हैं। जब मैं निर्दिष्ट करता हूं -f या इनमें से कोई भी नहीं, पैकेट हर 12ms उत्पन्न होते हैं।

आम तौर पर, मुझे लगता है कि मैं एक प्रसारण पिंग की पैकेट दूरी को नियंत्रित नहीं कर सकता।


5
2017-09-02 19:04


मूल


इन आवश्यकताओं के साथ, अगर मुझे पिंग अपर्याप्त है तो यह मुझे आश्चर्य नहीं करेगा, शायद इसे अपने पसंदीदा गैर-व्याख्यात्मक तेज़ प्रोग्रामिंग भाषा में (सी पर्याप्त होगा) - hanshenrik
संतृप्त गीगाबिट ईथरनेट (जंबो फ्रेम का उपयोग किए बिना) के बारे में 83 000 पैकेट / सेक (प्रत्येक 1500 बाइट्स) की आवश्यकता होती है। आप एक लाख पैकेट / सेकेंड भेजना चाहते हैं। प्रत्येक पैकेट को ध्यान में रखते हुए सॉफ़्टवेयर स्तर (और संभवतः नेटवर्क इंटरफ़ेस हार्डवेयर स्तर) पर इसके साथ जुड़े कुछ ओवरहेड हैं, सामान्य अधिकतम पैकेट / सेकेंड 12 गुना भेजना संभव नहीं हो सकता है। - marcelm
@marcelm: लेकिन क्या वे प्रत्येक 1500 बाइट हैं? - Mehrdad
@ मेहरदाद 1500 बाइट्स (वास्तव में 1522, लेकिन जो गिन रहा है) अधिकतम ईथरनेट फ्रेम आकार है। पिंग पैकेट (आईसीएमपी इको अनुरोध) को अधिकतम आकार की आवश्यकता नहीं है और आमतौर पर इसका उपयोग नहीं करते हैं। वास्तव में, आईसीएमपी गूंज अनुरोध छोटे से छोटे हैं न्यूनतम 64 बाइट्स के ईथरनेट फ्रेम आकार और इस प्रकार पैडिंग को भी ट्रांसमिट करने योग्य होने की आवश्यकता है। न्यूनतम फ्रेम आकार पर सैद्धांतिक 1.7 मिलियन पैकेट / सेकंड संभव है। लेकिन चीजों की संभावना इसके लिए अनुकूल नहीं है, क्योंकि उच्च बैंडविड्थ यातायात दक्षता के लिए सबसे बड़ा संभव पैकेट आकार का उपयोग करता है। - marcelm
@ मेहरदाद नहीं, मुझे नहीं करना चाहिए। गीग के लिए सामान्य अनुमानित अधिकतम 83kpkts / sec है। 1 एमपीकेटी / सेक की अपेक्षा, या "सामान्य" अधिकतम 12 गुणा, चीजों को धक्का दे रहा है और हो सकता है ओपी के हार्डवेयर / सॉफ्टवेयर संयोजन के साथ संभव नहीं है। वह मेरा मूल बिंदु था और यह अभी भी खड़ा है। तथ्य यह है कि सिद्धांत में गीग 1.7 एमपीकेटी / सेकंड कर सकता है इसका मतलब यह नहीं है कि व्यावहारिक हार्डवेयर और सॉफ्टवेयर वास्तव में ऐसा कर सकते हैं, क्योंकि छोटे संभव पैकेट वाले गीग बाढ़ को ऑपरेशन की उम्मीद नहीं है। - marcelm


जवाब:


ping -f मर्जी नहीं रिमोट पार्टी के जवाब देने के लिए प्रतीक्षा करें।

हालांकि, लगातार पैकेट के बीच 1us देरी आपके हार्डवेयर (सीपीयू) और सॉफ्टवेयर (आईपी स्टैक) संयोजन से पूछने के लिए बहुत अधिक हो सकती है।

प्रदर्शन को अधिकतम करने के लिए (और भेजने में देरी को कम करने के लिए) किसी भी पावर प्रबंधन फ़ंक्शन को अक्षम करने का प्रयास करें या, कम से कम, इसका उपयोग करें performance सीपीयू गवर्नर


11
2017-09-02 19:13





शायद आप विलंबता और थ्रूपुट के बीच भ्रम पैदा करते हैं। 1 पैकेट भेजने और विलंबता निर्धारित करने के लिए इसकी देरी को मापना पर्याप्त है। आपको उच्च सटीकता वाले समय को मापने के लिए एक तंत्र की आवश्यकता है। एक तरीका पीटीपी (प्रेसिजन टाइम प्रोटोकॉल) है - यानी प्रेषक भेजे गए पैकेट को टाइमस्टैम्प जोड़ता है। डब्लूआरटी थ्रूपुट, पैकेट का आकार महत्वपूर्ण है - डिफ़ॉल्ट पिंग्स 64 बाइट लंबा होगा।


4
2017-09-03 06:09