TCP થ્રુપુટ સીમાઓ અને નેટવર્ક પાથ પર્ફોર્મન્સ
એક સિંગલ TCP ફ્લોનું વાસ્તવિક પર્ફોર્મન્સ ક્યારેય પણ લિંકના રેટ જેટલું હોતું નથી. નેટવર્ક પાથ પર ડેટા ટ્રાન્સફર કરતી વખતે ત્રણ સ્વતંત્ર સીમાઓ કામ કરે છે: લિંક ક્ષમતા, રીસીવ વિન્ડો અને પેકેટ લોસ. આ ત્રણ પરિબળોમાંથી જે સૌથી ઓછી સીમા દર્શાવે છે, તે જ તમારા કનેક્શનની વાસ્તવિક સ્પીડ નક્કી કરે છે.
જ્યારે કોઈ હાઇ-સ્પીડ લિંક પર અપેક્ષા કરતાં ઓછી સ્પીડ મળે છે, ત્યારે તેનું કારણ શોધવા માટે આ ત્રણેય સીમાઓની ગણતરી કરવી જરૂરી બને છે. સ્ટાન્ડર્ડ ઇથરનેટ પ્રોટોકોલ ઓવરહેડના કારણે લિંકની કાચી ક્ષમતામાં આશરે 5% નો ઘટાડો થાય છે. આ ઉપરાંત, જો રીસીવર પાસે પૂરતી બફર ક્ષમતા ન હોય અથવા પાથ પર પેકેટ લોસ થતો હોય, તો થ્રુપુટ વધુ ઘટી જાય છે.
નેટવર્ક પાથ અને ડેટા ટ્રાન્સફરના ઇનપુટ્સ
આ કેલ્ક્યુલેટર સિંગલ TCP ફ્લોની વાસ્તવિક સીમાઓ નક્કી કરવા માટે નીચેના ઇનપુટ્સનો ઉપયોગ કરે છે:
- લિંક રેટ: પાથ પરનો સૌથી ધીમો હોપ — સામાન્ય રીતે તમારા પ્લાનની નિર્ધારિત સ્પીડ. આ કિંમત શૂન્ય કરતાં વધુ હોવી જોઈએ.
- રાઉન્ડ-ટ્રિપ ટાઇમ (RTT): દૂરના છેડા સુધીનો પિંગ સમય — લોડ હેઠળ તમે અપેક્ષા રાખતા હોવ તે સૌથી મોટી કિંમતનો ઉપયોગ કરો. આ સમય શૂન્ય કરતાં વધુ હોવો જોઈએ.
- ડેટા સાઇઝ: ખસેડવા માટેનો પેલોડ — એક ફાઇલ, બેકઅપ અથવા ડેટાસેટ. આ કિંમત પણ શૂન્ય કરતાં વધુ હોવી જરૂરી છે.
- રીસીવ વિન્ડો: રીસીવર બફર કરી શકે તેવા બાઇટ્સ. આ કિંમત શૂન્ય કરતાં વધુ હોવી જોઈએ અને તે 1,073,725,440 બાઇટ્સથી વધુ ન હોઈ શકે. જો આ ફીલ્ડ ખાલી રાખવામાં આવે, તો કોઈ વિન્ડો મર્યાદા લાગુ પડતી નથી.
- MSS (બાઇટ્સ): પેકેટ દીઠ પેલોડ બાઇટ્સ — 1,460 એક સ્ટાન્ડર્ડ Ethernet ફ્રેમને ભરે છે. આ કિંમત 1 અને 65,495 ની વચ્ચે બાઇટ્સની પૂર્ણાંક સંખ્યા હોવી જોઈએ. તેને ખાલી રાખવાથી ઓવરહેડ અને લોસ અવગણવામાં આવે છે.
- પેકેટ લોસ (%): સરેરાશ પેકેટ લોસની સંભાવના. આ રેટ 0 અને 100 ટકાની વચ્ચે હોવો જોઈએ. ખાલી અથવા 0 રાખવાથી કોઈ લોસ મર્યાદા ગણાતી નથી.
- દર્શાવેલ દશાંશ ચિહ્નો: આ ફીલ્ડ આઉટપુટ મૂલ્યોની દશાંશ ચોકસાઈને નિયંત્રિત કરે છે.
ઇન્ટરફેસમાં આપેલા ઉદાહરણ લોડ કરો બટન દ્વારા સેમ્પલ ડેટા ભરી શકાય છે અને સાફ કરો બટનથી ઇનપુટ્સ રીસેટ કરી શકાય છે.
ગણતરીના આઉટપુટ અને પરિણામો
ઇનપુટ્સના આધારે કેલ્ક્યુલેટર નીચે મુજબના પરિણામો દર્શાવે છે:
થ્રુપુટ અને ટ્રાન્સફર સમય
- અપેક્ષિત TCP થ્રુપુટ: આ મુખ્ય પરિણામ છે, જેની સાથે સક્રિય બોટલનેક દર્શાવતું સબ-લેબલ હોય છે: "
‹constraint›દ્વારા મર્યાદિત". આ મર્યાદા ડાયનેમિકલી લિંક ક્ષમતા, રીસીવ વિન્ડો, અથવા પેકેટ લોસ તરીકે ઓળખાય છે. - ટ્રાન્સફર સમય: સમગ્ર ડેટા ટ્રાન્સફર થવામાં લાગતો કુલ અંદાજિત સમય.
- પ્રથમ બાઇટ સુધીનો સમય (1 RTT): નેટવર્ક પર પ્રથમ બાઇટ પહોંચવાનો સમય.
- બલ્ક ટ્રાન્સફર સમય: પ્રારંભિક વિલંબ પછી ડેટા ટ્રાન્સફર થવાનો સમય.
- બેન્ડવિડ્થ-ડીલે પ્રોડક્ટ: પાથને સંપૂર્ણ રીતે ભરવા માટે નેટવર્ક પર વહેતા ડેટાનો જથ્થો.
- પાથ ભરવા માટે વિન્ડો: લિંકનો મહત્તમ ઉપયોગ કરવા માટે જરૂરી લઘુત્તમ વિન્ડો સાઇઝ.
- વિન્ડો-મર્યાદિત થ્રુપુટ: રીસીવ વિન્ડોના કારણે મળતું મહત્તમ થ્રુપુટ.
- લોસ-મર્યાદિત થ્રુપુટ (Mathis): પેકેટ લોસના આધારે ગણતરી કરેલ મહત્તમ થ્રુપુટ.
- ઓવરહેડ પછી લિંક સીલિંગ: પ્રોટોકોલ ઓવરહેડ બાદ કર્યા પછી લિંકનો વાસ્તવિક મહત્તમ દર.
- પ્રોટોકોલ કાર્યક્ષમતા: પેકેટ હેડર્સના ઓવરહેડ પછી બચેલી વાસ્તવિક પેલોડ ક્ષમતાની ટકાવારી.
વપરાશકર્તા ગણતરી કરેલ ડેટાને કોપી કરવા માટે પરિણામ કોપી કરો બટનનો ઉપયોગ કરી શકે છે.
સિસ્ટમ નોટ્સ અને ચેતવણીઓ
ઇનપુટ મૂલ્યોના આધારે સિસ્ટમ ચોક્કસ નોટ્સ દર્શાવે છે:
- "આ પાથને ભરવા માટે
‹window›વિન્ડોની જરૂર છે — જે 65,535-બાઇટના અનસ્કેલ્ડ મહત્તમથી વધુ છે, તેથી બંને છેડાએ TCP વિન્ડો સ્કેલિંગ (RFC 7323) નેગોશિયેટ કરવું આવશ્યક છે." - "આ પાથને ભરવા માટે
‹window›ની જરૂર છે — જે TCP નેગોશિયેટ કરી શકે તેવા સૌથી મોટા વિન્ડો (1,073,725,440 બાઇટ્સ) કરતાં વધુ છે. આ પાથ પરનો એક સિંગલ ફ્લો ક્યારેય‹value›થી વધી શકતો નથી." - "રીસીવ વિન્ડો વધારીને
‹window›કરવાથી આ ટ્રાન્સફર‹value›સુધી પહોંચી શકશે." - "1% થી વધુ લોસ Mathis મોડેલની વિશ્વસનીય રેન્જની બહાર છે — લોસ સીલિંગને આશાવાદી અંદાજ તરીકે ગણો."
ફોર્મ્યુલા અને કિંમતોની ફેરબદલી
કેલ્ક્યુલેશનમાં વપરાતા ગણિત અને ફોર્મ્યુલા નીચે મુજબ છે:
- મુખ્ય ફોર્મ્યુલા:
થ્રુપુટ = min(દર × eff, window ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = દર × RTT - પ્રોટોકોલ કાર્યક્ષમતા:
પ્રોટોકોલ કાર્યક્ષમતા = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff› (40 B પેકેટ હેડર્સ + વાયર પર 38 B) - લિંક સીમા:
લિંક સીમા = rate × efficiency = ‹rate› × ‹eff› = ‹value› - BDP:
BDP = દર × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes› - પાથ ભરવા માટે જરૂરી વિન્ડો:
પાથ ભરવા માટે જરૂરી વિન્ડો = BDP ÷ 8 = ‹bdp› → ‹window› - વિન્ડો સીમા:
વિન્ડો સીમા = window ÷ RTT = ‹window› ÷ ‹rtt› = ‹value› - લોસ સીમા (Mathis):
લોસ સીમા (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value› - અપેક્ષિત થ્રુપુટ:
અપેક્ષિત થ્રુપુટ = આ સીમાઓમાંથી સૌથી ઓછી સીમા = ‹value› → ‹constraint› દ્વારા મર્યાદિત - ટ્રાન્સફર સમય:
ટ્રાન્સફર સમય = RTT + 8 × size ÷ throughput = ‹rtt› + 8 × ‹size› ÷ ‹throughput› = ‹time›
ગણતરીના નિયમો અને મર્યાદાઓ
આ કેલ્ક્યુલેટર ચોક્કસ નેટવર્કિંગ નિયમો અને ધારણાઓ પર કામ કરે છે:
- એકમોની પદ્ધતિ: અહીં તમામ એકમો દશાંશ-આધારિત છે (દા.ત. 1 kbit = 1,000 bits, 1 MB = 1,000,000 bytes). ઓપરેટિંગ સિસ્ટમના ફાઇલ મેનેજર્સ સામાન્ય રીતે 1024-આધારિત બાઈનરી એકમોનો ઉપયોગ કરે છે, જેના કારણે ગણતરીમાં તફાવત આવી શકે છે.
- પ્રોટોકોલ ઓવરહેડ: સ્ટાન્ડર્ડ ઇથરનેટ ફ્રેમિંગ પર આધારિત પેકેટ દીઠ 78 બાઇટ્સનો ઓવરહેડ ઉમેરવામાં આવે છે (40 બાઇટ્સ TCP/IP હેડર્સ અને 38 બાઇટ્સ ફિઝિકલ વાયર ઓવરહેડ).
- Mathis મોડેલની મર્યાદા: આ મોડેલ સમાન રીતે ફેલાયેલા અને સ્વતંત્ર પેકેટ લોસને ધારે છે. તે માત્ર 1% થી નીચેના લોસ રેટ માટે જ વિશ્વસનીય છે. જો લોસ 1% થી વધુ હોય, તો Mathis સીમા આશાવાદી બને છે અને સિસ્ટમ દ્વારા ચેતવણી દર્શાવાય છે.
- વિન્ડો સ્કેલિંગ મર્યાદા: ક્લાસિક TCP વિન્ડોની મહત્તમ મર્યાદા 65,535 બાઇટ્સ છે. જો પાથ ભરવા માટે આનાથી મોટી વિન્ડોની જરૂર હોય, તો RFC 7323 વિન્ડો સ્કેલિંગ અનિવાર્ય બને છે. RFC 7323 હેઠળ મહત્તમ વિન્ડો સાઇઝ 1,073,725,440 બાઇટ્સ છે.
- મોડેલની મર્યાદાઓ: આ ગણતરીઓ સ્થિર સ્થિતિ (steady-state) અને સિંગલ TCP ફ્લો ધારે છે. વાસ્તવિક નેટવર્કમાં જોવા મળતા પરિબળો જેમ કે TCP સ્લો સ્ટાર્ટ, કન્જેસ્ચન-કંટ્રોલ અલ્ગોરિધમ્સ, ધીમા રીસીવર્સ અને TLS હેન્ડશેક આ મોડેલની બહાર છે. તેથી વાસ્તવિક ટ્રાન્સફર ધીમેથી શરૂ થાય છે અને આ આંકડાઓથી નીચે હોઈ શકે છે.
પ્રાઇવસી અને પ્રોસેસિંગ
તમારી પ્રાઇવસી જાળવી રાખવા માટે આ ટૂલ સંપૂર્ણપણે લોકલ પ્રોસેસિંગ પર કામ કરે છે. તમે દાખલ કરેલી દરેક કિંમત આ બ્રાઉઝરમાં કેલ્ક્યુલેટ થાય છે — ક્યાંય પણ કંઈ મોકલવામાં આવતું નથી. કોઈ પણ ડેટા બાહ્ય સર્વર પર અપલોડ થતો નથી.
વારંવાર પૂછાતા પ્રશ્નો (FAQ)
બેન્ડવિડ્થ-ડિલે પ્રોડક્ટ શું છે, અને તે વિન્ડો સાઇઝ શા માટે નક્કી કરે છે?
BDP — લિંક રેટ × રાઉન્ડ-ટ્રિપ સમય — એ કોઈપણ ક્ષણે ટ્રાન્સમિશનમાં રહેલા ડેટાનો જથ્થો છે. TCP પાસે વધુમાં વધુ એક જ અનએકનોલેજ્ડ વિન્ડો બાકી હોઈ શકે છે, તેથી BDP કરતાં નાની વિન્ડો પાઇપને આંશિક રીતે ખાલી રાખે છે: 50 ms RTT સાથે 100 Mbit/s પર પાઇપ 625 kB ડેટા ધરાવે છે, અને 65,535-બાઇટની વિન્ડો તેના માંડ દસમા ભાગને ભરી શકે છે. આથી જ ઝડપી, લાંબા પાથ માટે TCP વિન્ડો સ્કેલિંગ (RFC 7323) ની જરૂર પડે છે, જે વાટાઘાટ કરી શકાય તેવી મહત્તમ મર્યાદાને 65,535 બાઇટ્સથી વધારીને આશરે 1 GB કરે છે.
મારું ટ્રાન્સફર હું જે લિંક રેટ માટે ચૂકવણી કરું છું તેના કરતાં ધીમું શા માટે છે?
એક સિંગલ TCP ફ્લો ત્રણ સ્વતંત્ર સીમાઓનો સામનો કરે છે, અને જે સૌથી ઓછી હોય તે લાગુ પડે છે. પ્રોટોકોલ ઓવરહેડ લિંકને જ આશરે 5% જેટલી ઘટાડે છે — એક સ્ટાન્ડર્ડ ઇથરનેટ ફ્રેમ વાયર પરના 1,538 બાઇટ્સમાંથી 1,460 પેલોડ બાઇટ્સ વહન કરે છે. રીસીવ વિન્ડો થ્રુપુટને window ÷ RTT પર મર્યાદિત કરે છે, તેથી ક્લાસિક 65,535-બાઇટની વિન્ડો 50 ms ના પાથને આશરે 10.5 Mbit/s પર મર્યાદિત રાખે છે, ભલે લિંક ગમે તેટલી ઝડપી હોય. અને લોસ તેને (MSS ÷ RTT) ÷ √loss પર મર્યાદિત કરે છે. ઉપર આપેલું પરિણામ દર્શાવે છે કે તમારા નંબરો પર કઈ સીમા લાગુ પડે છે.
પેકેટ લોસ TCP થ્રુપુટને કેવી રીતે મર્યાદિત કરે છે?
TCP લોસને કન્જેસ્શન (ભીડ) તરીકે ગણે છે અને દરેક લોસ ઇવેન્ટ પર તેના મોકલવાના દરને અડધો કરી દે છે, તેથી ઝડપી પાથ પર નાનો લોસ રેટ પણ મહત્વનો બને છે. Mathis મોડેલ સીમાનો અંદાજ (MSS ÷ RTT) ÷ √p તરીકે લગાવે છે — 1,460-બાઇટ MSS સાથે 50 ms ના પાથ પર 0.01% લોસ હોય ત્યારે તે આશરે 23 Mbit/s થાય છે, ભલે લિંકની સ્પીડ ગમે તેટલી હોય. આ મોડેલ સમાન રીતે ફેલાયેલી, સ્વતંત્ર લોસ ઇવેન્ટ્સ ધારે છે; આશરે 1% થી નીચે તે વાસ્તવિકતાને સારી રીતે ટ્રેક કરે છે, અને બર્સ્ટી લોસ માટે તે આશાવાદી અંદાજ આપે છે.
શું અહીં દર્શાવેલ મેગાબાઇટ્સ મારા ફાઇલ મેનેજરમાં દર્શાવેલ મેગાબાઇટ્સ જેવા જ છે?
ના, બિલકુલ નહીં. આ પેજ દશાંશ એકમોનો ઉપયોગ કરે છે, જે નેટવર્કિંગનો નિયમ છે: 1 kbit = 1,000 bits અને 1 MB = 1,000,000 bytes. મોટાભાગના ફાઇલ મેનેજર્સ 1024-આધારિત એકમોમાં ગણતરી કરે છે, જેને ઘણીવાર ભૂલથી MB તરીકે લેબલ કરવામાં આવે છે — ત્યાંની “100 MB” ની ફાઇલ સામાન્ય રીતે 100 MiB ≈ 104.86 દશાંશ MB હોય છે, તેથી તેને ટ્રાન્સફર થવામાં દશાંશ આંકડા કરતાં આશરે 5% વધુ સમય લાગે છે. તેની સાથે બરાબર મેચ કરવા માટે અહીં 104.86 MB દાખલ કરો.