अगर नेटवर्क UDP पैकेट को छोड़ रहा है तो कैसे पता करें?


8

मुझे एक वीडियो स्ट्रीमिंग एप्लिकेशन मिला है जो मेरे कार्यालय में ठीक चलता है लेकिन ग्राहक के स्थान पर बुरी तरह विफल रहता है। लक्षण यह है कि सेकंड के प्रत्येक जोड़े, मैं 2 सेकंड के लिए यूडीपी पैकेट प्राप्त करना बंद कर देता हूं, फिर धारा फिर से शुरू हो जाती है जैसे कि कुछ भी गलत नहीं है।

मैंने http://www.pingtest.net/ को ग्राहक के स्थान पर चलाया और यह उत्कृष्ट रूप से वापस आया। कोई गिरा हुआ पैकेट और कम विलंबता नहीं। हमारे दोनों स्थानों के बीच एकमात्र अंतर जो मैंने देखा, वह है ping google.caउनके स्थान पर समय-आउट लेकिन मेरा काम करना।

मैं कैसे परीक्षण करूं कि आने वाले यूडीपी पैकेटों को ब्लॉक करने वाला नेटवर्क है या नहीं? क्या मेरे लिए अलग करने का एक तरीका है जो पैकेट को गिरा रहा है?


मेरे लिए एक फ़ायरवॉल मुद्दा जैसा लगता है। क्या आपके पास कोई सॉफ्टवेयर या हार्डवेयर फायरवॉल है?
पिटो

आप ग्राहक से यह नहीं पूछ सकते कि उनका नेटवर्क कॉन्फ़िगरेशन किसके लिए निर्धारित है?
रामहुंड

@ रामदूत, आदर्श रूप से नहीं। मैं एक संभावित ग्राहक की राउटर सेटिंग्स में खोदना नहीं चाहता, हर बार जब मैं अपने उत्पाद को प्रदर्शित करना चाहता हूं :)
गिल्ली

2
दोस्तों, कृपया अपने नकारात्मक वोटों की व्याख्या करें, अन्यथा मैं प्रतिक्रिया नहीं दे सकता।
गिली

जवाबों:


4

आप के साथ UDP कनेक्शन स्थापित करने का प्रयास कर सकते हैं netcat

उपभोक्ता के नेटवर्क चलाने के बाहर मशीन A पर :

nc -u -l -p 1234            # if using netcat-traditional
nc -u -l 1234               # if using netcat-openbsd (as pointed out by @JamesHaigh)

ध्यान दें कि -uयूडीपी का उपयोग करने के लिए नेटकैट का निर्देश दिया गया है। (और यह भी ध्यान रखें, कि इसके विभिन्न संस्करण हैं netcat, जिन्हें -pपैरामीटर की आवश्यकता होगी या नहीं; दिए गए दो सबसे आम के लिए वेरिएंट हैं!) वाले, दोनों डेबियन में शामिल हैं।)

उपभोक्ता स्थान पर: nc -u [addr of machine A] 1234

दोनों स्थानों के बीच एक फ़ाइल भेजने के लिए कुछ पाठ, या इससे भी बेहतर पाइप भेजने की कोशिश करें और बाद में एक अंतर करें।


आपका रिमोट कमांड मेरे लिए विफल है। मैनपेज -l"," के लिए कहता है It is an error to use this option in conjunction with the -p, -s, or -z options., इसलिए मैंने उस कमांड को ठीक कर दिया है जिसे मैंने काम करने के लिए परीक्षण किया है। इसके अलावा, मैंने 'ip' को 'addr' में बदल दिया है, क्योंकि hostnames का भी उपयोग किया जा सकता है, और एक अर्थ में 'पता' है।
जेम्स हाई

@JamesHaigh: मैं addrबनाम ipबिंदु पर आपसे सहमत हूं । लेकिन अब आपकी आज्ञा से मुझे एक त्रुटि मिली: listen needs -p arg(मैंने उत्तर में दी गई मेरी आज्ञाओं का भी परीक्षण किया ;))। वहाँ विभिन्न एनसी हैं, अगर आप एनसी संस्करण और / या अपने डिस्ट्रो जैसे कुछ और विवरण देते हैं, तो मैं अपने उत्तर में एक नोट जोड़ूंगा।
14

ओह ठीक है, यह शर्म की बात है कि वे परस्पर संगत नहीं हैं! :-( ठीक है, इसलिए मेरी रिमोट मशीन डेबियन है। डिफ़ॉल्ट ncकमांड /bin/nc -> /etc/alternatives/nc -> /bin/nc.openbsdडेबियन पैकेज द्वारा प्रदान की गई सिमलिंक है netcat-openbsd। मेरे स्थानीय उबंटू मशीन में भी nc.openbsdडिफ़ॉल्ट रूप से है। न तो स्वीकार करेंगे -l -p। मैंने उबंटू / डेबियन पैकेज ncatसे दोनों मशीनों पर भी स्थापित किया है nmap। ' पुराने डेबियन मशीन, ncatमना कर देती है -l -p, लेकिन ncatउबंटू में दोनों तरह से स्वीकार करता है। हालांकि डेबियन संस्करण प्राचीन होना चाहिए क्योंकि यह गुस्सा करने का --sctpविकल्प नहीं है ।: - /
जेम्स हाई

Ps आपका डिस्ट्रो, और ncवैरिएंट क्या है ? मैंने देखा कि एक ' netcat-traditional' पैकेज भी है, लेकिन मैंने ऐसा नहीं किया है।
जेम्स हाई

@JamesHaigh: मैं वास्तव में उपयोग करता हूं netcat-traditional(v 1.10-38) क्योंकि यह डेबियन के साथ जहाज है। आपके संकेत के लिए धन्यवाद, मैंने उत्तर में अब दोनों प्रकारों को शामिल किया।
खसखस

13

सर्वर की ओर, के साथ एक UPD सर्वर स्थापित करें

iperf -s -u

क्लाइंट की ओर से, UDP कनेक्शन की जाँच करें

iperf -u -c <IP Address of Server>

1
यही असली जवाब है। इसके दूसरी ओर सर्वर का उपयोग होना आवश्यक है। लेकिन यह आपको सीधे पैकेट लॉस फीडबैक देता है। और आप इसका उपयोग टीसीपी बैंडविड्थ के परीक्षण के लिए भी कर सकते हैं।
ड्रैगनफैक्स

0

netcatMPY के जवाब में आदेशों नैदानिक प्रयोजनों के लिए उपयोगी होते हैं, लेकिन मैं अपने मूल समस्या के लिए एक और दृष्टिकोण के साथ है कि इसका जवाब के पूरक कर रहा हूँ।

यह आपके आवेदन को SCTP , या यहां तक ​​कि टीसीपी में वापस लाने के लायक हो सकता है । मुझे वास्तव में यह सवाल मिला क्योंकि मैं देख रहा था कि भीड़भाड़ होने पर अपने यूक्लिन के पैकेट को यूजर्स द्वारा डिक्लिंक के हिस्से से अधिक इस्तेमाल करने से कैसे रोका जाए, क्योंकि एससीटीपी और टीसीपी के विपरीत, यूडीपी का कोई नियंत्रण नहीं है, जिससे डाउनलिंक को प्राथमिकता देना बहुत मुश्किल है। यातायात।

SCTP और TCP दोनों में भीड़ नियंत्रण है और QoS के साथ अच्छी तरह से खेलते हैं, लेकिन SCTP को TCP पर अतिरिक्त लाभ है कि यह वास्तविक समय स्ट्रीमिंग अनुप्रयोगों के लिए डिज़ाइन किया गया था, जिससे यह टीसीपी और यूडीपी दोनों के लिए एक अच्छा प्रतिस्थापन है। वास्तव में, SCTP 2 सबसे सामान्य परिवहन प्रोटोकॉलों में से सबसे अच्छा है।

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


0

सर्वराइड उपयोग पर

iperf -u -p <port> -s

ग्राहक की ओर से उपयोग करें

iperf -u -p <port> -c <domain or ip>

सुनिश्चित करें कि फ़ायरवॉल पर पोर्ट की अनुमति है। यह परीक्षण के बाद इस तरह से ua रिपोर्ट देगा

[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams

[  1]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec   3.722 ms    1/  893 (0.11%)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.