2011-02-07 10 views
6

मैं एक आईएसपी कंपनी में काम कर रहा हूं। हम अपने ग्राहकों के लिए एक स्पीड टेस्टर विकसित कर रहे हैं, लेकिन टीसीपी स्पीड परीक्षण के साथ कुछ मुद्दों में चल रहे हैं।टीसीपी स्पीड टेस्टर एल्गोरिदम प्रश्न

एक ग्राहक के पास 8 सेकंड के पैकेट आकार के साथ 100 एमबी स्थानांतरित करने के लिए 102 सेकंड पर कुल समय अवधि थी। 100.000.000/8192 = 12.202 पैकेट। यदि ग्राहक एसीके को हर दूसरे पैकेट भेजता है जो कि एसीके को प्रेषित करने में बहुत समय लगता है। मान लें कि ग्राहक 6000 एसीके भेजता है और आरटीटी 15 एमएमएस है - यह सिर्फ एसीके के लिए 6000 * 7.5 = 45.000ms = 45 सेकंड है?

अगर मैं Mbit/s के लिए इस गणना का उपयोग करें:

(((sizeof_download_in_bytes/durationinseconds) /1000) /1000) * 8 = Mbp/s 

मैं MBP/s में परिणाम मिल जाएगा, लेकिन फिर उच्च टीटीएल प्रेषक और ग्राहक कम MBP/एस के बीच है गति बन जाएगी।

यह अनुकरण करने के लिए कि उपयोगकर्ता सर्वर के करीब है, क्या यह एमबीपी/एस पर अंतिम परिणाम में एसीके प्रतिक्रिया समय को हटाने के लिए "कानूनी" होगा? यह एंडुसर सर्वर के नजदीक सिमुलेट करने जैसा होगा?

(((sizeof_download_in_bytes/(durationinseconds - 45sec)) /1000)/1000) * 8 = Mbp/s 

कि वैध है:

तो मैं अंत उपयोगकर्ता को यह गणना प्रदर्शित होगा?

+0

आपकी विंडो का आकार क्या है? –

उत्तर

3

यहां समस्या यह है कि आरटीटी बहुत बड़ा है ताकि पूरे बैंडविड्थ का उपयोग न किया जा सके। आप टीसीपी विंडो आकार को बढ़ाना चाहते हैं, जो परीक्षण प्रयोजनों के साथ-साथ system-wide के लिए प्रति-सॉकेट आधार पर किया जा सकता है।

ग्राहक के रूप में, यदि मैं एक स्पीड टेस्ट प्रोग्राम को उप-प्रणाली प्रणाली सेटिंग्स के बारे में सूचित करता हूं और मुझे उन्हें सही करने का विकल्प प्रदान करता हूं तो मैं इसे एक महान सेवा मानता हूं।

यदि टीसीपी विंडो सेटिंग्स सही हैं, तो आरटीटी को टीसीपी स्पीड टेस्ट में कोई फर्क नहीं पड़ता, जब तक कि आप बड़ी संख्या में पैकेट खो रहे हों (लेकिन इसके बाद आप पहले स्थान पर जाना चाहते हैं)।

3

टीसीपी विंडो प्रवाह नियंत्रण का उपयोग करता है और आमतौर पर अगले फ्रेम भेजने से पहले एसीके की प्रतीक्षा नहीं करता है। एसीके डेटा फ्रेम के साथ एक साथ जाते हैं और किसी भी अतिरिक्त दीवार घड़ी के समय की आवश्यकता नहीं होती है। कोई भी हालिया टीसीपी कार्यान्वयन स्पीड लॉस के बिना ऐसे आरटीटी और बिटरेट को संभाल सकता है।

तो सही गणना भी संख्या 1.

है, तो आप सुनिश्चित करें कि आपके नेटवर्क वास्तव में 8192 MTU ग्राहक के पीसी से अपने परीक्षण सर्वर करने के लिए है रहे हैं? 1500 एमटीयू के साथ कहीं कहीं ईथरनेट सेगमेंट मौजूद है और आपके 8192 बाइट्स भेजने वाले बफर को टीसीपी स्टैक द्वारा मानक 1500 बाइट टीसीपी सेगमेंट में विभाजित किया जा रहा है।

और अंत में, किलोबाइट में 1024 बाइट्स और मेगाबाइट में 1024 किलोबाइट्स हैं।

+1

हां लेकिन वह आकार मापने वाला नहीं है, वह गति माप रहा है और प्रति सेकंड 1 केबीपीएस = 1,000 बिट्स - 1 एमबीपीएस = 1,000,000 बिट्स प्रति सेकेंड - 1 जीबीपीएस = 1,000,000,000 बिट प्रति सेकेंड – Darkmage

+0

मुझे पता है कि 1024 बाइट्स के लिए सही शब्द किबिबेट है, लेकिन यह है बस अजीब और मानक संगठन गलत और बुरे हैं :) – blaze

+0

यह सही है - टीसीपी एक स्लाइडिंग विंडो का उपयोग करता है, इसलिए एसीके उड़ान में होने पर डेटा अभी भी प्रसारित किया जा रहा है (जब तक आपका टीसीपी विंडो आकार 2 * आरटीटी * बैंडविड्थ से अधिक हो)। – caf

संबंधित मुद्दे