የTCP ትሩፑት ጣሪያዎችን መረዳት
አንድ ነጠላ የTCP ፍሰት በእውነተኛ የኔትወርክ መስመር ላይ ሲጓዝ፣ አጠቃላይ ፍጥነቱ በሶስት ገለልተኛ ጣሪያዎች ይወሰናል። እነዚህም የሊንክ አቅም፣ የመቀበያ መስኮት እና የፓኬት መጥፋት ናቸው። ከእነዚህ ሶስት ገደቦች ውስጥ ዝቅተኛው እሴት ያለውን ማነቆ በመለየት ትክክለኛው የሚጠበቅ የTCP ትሩፑት ይወሰናል።
የኔትወርክ ሌተንሲ እና ባንድዊድዝ ማስያ እነዚህን መለኪያዎች በማስላት በመንገዱ ላይ ያለውን ገዳቢ ማነቆ በግልጽ ያሳያል። ማስያው የሚጠበቀውን ውጤት ለማውጣት የሚከተሉትን ግብዓቶች ይጠቀማል፦
- የሊንክ ፍጥነት፦ በመንገዱ ላይ ያለው በጣም ቀርፋፋው ሆፕ ሲሆን፣ ይህም ብዙ ጊዜ የእርስዎ እቅድ የተገመገመው ፍጥነት ነው። እሴቱ ከዜሮ በላይ መሆን አለበት።
- የራውንድ-ትሪፕ ጊዜ (RTT)፦ ወደ ሌላኛው ጫፍ የሚወስደው የፒንግ ጊዜ ሲሆን፣ በጭነት ጊዜ የሚጠብቁትን ትልቁን እሴት መጠቀም ያስፈልጋል። እሴቱ ከዜሮ በላይ መሆን አለበት።
- የመረጃ መጠን፦ የሚዛወረው ፔይሎድ (ፋይል፣ ባክአፕ ወይም ዴታሴት) ሲሆን፣ ከዜሮ በላይ መሆን አለበት።
- የመቀበያ መስኮት፦ ተቀባዩ በባፈር ውስጥ ሊይዘው የሚችለው የባይት መጠን ነው። እሴቱ ከዜሮ በላይ መሆንና ከ1,073,725,440 ባይት መብለጥ የለበትም። ይህ ሜዳ ባዶ ከሆነ ምንም የመስኮት ገደብ እንደሌለ ይቆጠራል።
- MSS (ባይት)፦ በአንድ ፓኬት ውስጥ የሚገኝ የፔይሎድ ባይት ነው። እሴቱ በ1 እና በ65,495 መካከል ያለ ሙሉ የባይት ቁጥር መሆን አለበት። ባዶ ከሆነ ተጨማሪ ጫና እና መጥፋት ችላ ይባላሉ።
- የፓኬት መጥፋት (%)፦ አማካይ የፓኬት መጥፋት ዕድል ሲሆን፣ በ0 እና በ100 ፐርሰንት መካከል መሆን አለበት። ባዶ ወይም 0 ከሆነ ምንም የመጥፋት ገደብ የለም።
- የሚታዩ አስርዮሾች፦ የውጤቶቹን የአስርዮሽ ትክክለኛነት ለመቆጣጠር ያገለግላል።
የባንድዊድዝ-ዲሌይ ፕሮዳክት (BDP) እና የመስኮት መጠን
የባንድዊድዝ-ዲሌይ ፕሮዳክት (BDP) በአንድ የኔትወርክ መስመር ላይ በማንኛውም ቅጽበት በመተላለፍ ላይ ሊኖር የሚችለውን ከፍተኛ የመረጃ መጠን ያሳያል። የTCP ፍሰት ሙሉውን የሊንክ ፍጥነት መጠቀም እንዲችል የመቀበያ መስኮቱ መጠን ቢያንስ ከBDP እሴት ጋር እኩል መሆን አለበት።
የሚያስፈልገው የመስኮት መጠን ከ65,535 ባይት በላይ በሚሆንበት ጊዜ፣ ክላሲክ TCP ይህንን ማስተናገድ አይችልም። በዚህ ጊዜ ሁለቱም ወገኖች የTCP መስኮት ልኬትን (RFC 7323) መደራደር አለባቸው። ይህ ካልሆነ ግንኙነቱ ባልተመጠነ ከፍተኛው የመስኮት ገደብ ምክንያት ፍጥነቱ በጣም ይገደባል።
መሳሪያው እነዚህን ሁኔታዎች በመገምገም የሚከተሉትን የስርዓት ማሳሰቢያዎች ያሳያል፦
- "ይህንን መንገድ ለመሙላት የ
‹window›መስኮት ያስፈልጋል — ይህም ካልተመጠነ ከፍተኛው 65,535-byte በላይ ስለሆነ ሁለቱም ወገኖች የTCP መስኮት ልኬትን (RFC 7323) መደራደር አለባቸው።" - "ይህንን መንገድ ለመሙላት
‹window›ያስፈልጋል — ይህም TCP ሊደራደር ከሚችለው ትልቁ መስኮት (1,073,725,440 bytes) በላይ ነው። በዚህ መንገድ ላይ ያለ አንድ ነጠላ ፍሰት ከ‹value›ሊበልጥ አይችልም።" - "የመቀበያ መስኮቱን ወደ
‹window›ማሳደግ ይህ ዝውውር እስከ‹value›እንዲደርስ ያስችለዋል።"
የፓኬት መጥፋት እና የማቲስ (Mathis) ሞዴል
በኔትወርክ መስመር ላይ የሚከሰት የፓኬት መጥፋት በTCP ትሩፑት ላይ ከፍተኛ ተጽዕኖ ያሳድራል። TCP የፓኬት መጥፋትን እንደ ኔትወርክ መጨናነቅ ምልክት አድርጎ ስለሚተረጉመው የመላኪያ ፍጥነቱን በከፍተኛ ሁኔታ ይቀንሳል። ይህንን ተጽዕኖ ለመገመት የማቲስ (Mathis) ቀመር ጥቅም ላይ ይውላል።
የማቲስ ሞዴል አስተማማኝ የሚሆነው የፓኬት መጥፋት መጠን ከ1% በታች ሲሆን ብቻ ነው። የፓኬት መጥፋት መጠን ከ1% በላይ በሚሆንበት ጊዜ፣ ማስያው የሚከተለውን የማስጠንቀቂያ ማስታወሻ ያሳያል፦
- "ከ1% በላይ የሆነ መጥፋት ከ Mathis ሞዴል አስተማማኝ ክልል ውጪ ነው — የመጥፋት ጣሪያውን እንደ በጎ ግምት ይውሰዱት።"
የኔትወርክ ፕሮቶኮል ተጨማሪ ጫና (Overhead)
በኔትወርክ ላይ መረጃ ሲተላለፍ ንጹህ ፔይሎድ ብቻ ሳይሆን የፕሮቶኮል ራስጌዎችም አብረው ይጓዛሉ። ይህ ማስያ ተጨማሪ ጫናዎችን ለመገመት መደበኛውን የኢተርኔት መዋቅር መሠረት ያደርጋል። በእያንዳንዱ ፓኬት ላይ 78 ባይት ተጨማሪ ጫና ይታሰባል (40 ባይት ለ TCP/IP ራስጌዎች እና 38 ባይት በሽቦው ላይ ላለው አካላዊ የኢተርኔት ተጨማሪ ጫና)። ይህ ተጨማሪ ጫና የሊንኩን ፍጥነት ወደ እውነተኛ የፔይሎድ ማስተላለፊያ ጣሪያ ዝቅ ያደርገዋል።
የአስርዮሽ እና የባይነሪ ክፍሎች ልዩነት
በኔትወርክ እና በኮምፒውተር ፋይል አስተዳዳሪዎች መካከል የክፍሎች ስሌት ልዩነት አለ። ይህ ማስያ ሁሉንም ክፍሎች በአስርዮሽ መሠረት ያሰላል (ለምሳሌ 1 kbit = 1,000 bits፣ 1 MB = 1,000,000 bytes)። ነገር ግን፣ አብዛኛዎቹ የፋይል አስተዳዳሪዎች በ1024-ተኮር የባይነሪ ክፍሎች (MiB/GiB) ይቆጥራሉ። ለምሳሌ፣ በፋይል አስተዳዳሪ ውስጥ "100 MB" ተብሎ የሚታየው ፋይል በትክክል 100 MiB ወይም በግምት 104.86 አስርዮሽ MB ነው። ይህ ልዩነት በዝውውር ጊዜ ስሌት ላይ የ5% ገደማ ልዩነት ሊፈጥር ይችላል።
ፎርሙላዎች እና የስሌት መተካካት
ማስያው ውጤቶቹን ለማስላት የሚከተሉትን ቀመሮች እና መተካካቶች ይጠቀማል፦
-
ዋና ፎርሙላ፦
ትሩፑት = min(ፍጥነት × ብቃት, መስኮት ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = ፍጥነት × RTT -
የፕሮቶኮል ብቃት፦
የፕሮቶኮል ብቃት = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff› (40 B የፓኬት ራስጌዎች + 38 B በሽቦው ላይ) -
የሊንክ ጣሪያ፦
የሊንክ ጣሪያ = ፍጥነት × ብቃት = ‹rate› × ‹eff› = ‹value› -
BDP፦
BDP = ፍጥነት × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes› -
መንገዱን ለመሙላት የሚያስፈልግ መስኮት፦
መንገዱን ለመሙላት የሚያስፈልግ መስኮት = BDP ÷ 8 = ‹bdp› → ‹window› -
የመስኮት ጣሪያ፦
የመስኮት ጣሪያ = መስኮት ÷ RTT = ‹window› ÷ ‹rtt› = ‹value› -
የመጥፋት ጣሪያ (Mathis)፦
የመጥፋት ጣሪያ (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value› -
የሚጠበቅ የመተላለፊያ ፍጥነት፦
የሚጠበቀው የመተላለፊያ ፍጥነት = ከእነዚህ ጣሪያዎች ዝቅተኛው = ‹value› → በ‹constraint› የተገደበ -
የማስተላለፊያ ጊዜ፦
የማስተላለፊያ ጊዜ = RTT + 8 × መጠን ÷ ትሩፑት = ‹rtt› + 8 × ‹size› ÷ ‹throughput› = ‹time›
የስህተት መልእክቶች እና ገደቦች
በማስያው አጠቃቀም ወቅት የተሳሳቱ ግብዓቶች ሲገቡ የሚከተሉት የስህተት መልእክቶች ይታያሉ፦
- ግብዓቱ ቁጥር ካልሆነ፦
"‹field›፦ “‹token›” ቁጥር አይደለም።" - የሊንክ ፍጥነት ከዜሮ ወይም ከዚያ በታች ከሆነ፦
"የሊንክ ፍጥነት ከዜሮ በላይ መሆን አለበት።" - የደርሶ መልስ ጊዜ ከዜሮ ወይም ከዚያ በታች ከሆነ፦
"የደርሶ መልስ ጊዜ ከዜሮ በላይ መሆን አለበት።" - የመረጃ መጠን ከዜሮ ወይም ከዚያ በታች ከሆነ፦
"የመረጃው መጠን ከዜሮ በላይ መሆን አለበት።" - የመቀበያ መስኮት ከዜሮ ወይም ከዚያ በታች ከሆነ፦
"የመቀበያ መስኮት ከዜሮ በላይ መሆን አለበት።" - የመቀበያ መስኮት ከ RFC 7323 ገደብ በላይ ከሆነ፦
"TCP ከ1,073,725,440 ባይት በላይ የሆነ መስኮት መደራደር አይችልም (RFC 7323 window scaling)።" - MSS ከተፈቀደው ክልል ውጪ ከሆነ፦
"MSS በ1 እና በ65,495 መካከል ያለ ሙሉ የባይት ቁጥር መሆን አለበት።" - የፓኬት መጥፋት መጠን ከተፈቀደው ክልል ውጪ ከሆነ፦
"የመጥፋት መጠን በ0 እና በ100 ፐርሰንት መካከል መሆን አለበት።" - የስሌት ውጤቶች ከስርዓቱ አቅም በላይ ሲሆኑ፦
"አንድ እሴት ወይም መካከለኛ ውጤት ከተደገፈው የቁጥር ክልል በላይ አልፏል።"
የሚያስገቡት እያንዳንዱ እሴት በዚህ ብሮውዘር ውስጥ ብቻ ይሰላል፤ ምንም ነገር ወደ ውጭ አገልጋይ አይላክም።
ተደጋግመው የሚነሱ ጥያቄዎች (FAQ)
የመተላለፊያ ይዘት-መዘግየት ውጤት (BDP) ምንድን ነው, እና የመስኮቱን መጠን የሚወስነው ለምንድን ነው? BDP — የሊንክ ፍጥነት × የደርሶ መልስ ጊዜ — በማንኛውም ቅጽበት በመተላለፍ ላይ ያለ የመረጃ መጠን ነው። TCP ቢበዛ አንድ ያልተረጋገጠ መስኮት ብቻ ሊኖረው ይችላል፣ ስለዚህ ከBDP ያነሰ መስኮት ቧንቧውን በከፊል ባዶ ያደርገዋል፦ በ100 Mbit/s ፍጥነት ከ50 ms RTT ጋር ቧንቧው 625 kB ይይዛል፣ እና የ65,535-byte መስኮት ከአስር እጅ አንድን እንኳን አይሞላም። ለዚህ ነው ፈጣንና ረጅም መንገዶች የTCP መስኮት ማሳደጊያ (RFC 7323) የሚያስፈልጋቸው፣ ይህም ሊደራደሩበት የሚችሉትን ከፍተኛ ገደብ ከ65,535 ባይት ወደ 1 GB ገደማ ከፍ ያደርገዋል።
የእኔ ማስተላለፍ ከምከፍልበት የሊንክ ፍጥነት ያነሰ የሆነው ለምንድን ነው? አንድ ነጠላ የTCP ፍሰት ሶስት ገለልተኛ ጣሪያዎች ያጋጥሙታል፣ እና ዝቅተኛው ያሸንፋል። የፕሮቶኮል ትርፍ ወጪዎች ሊንኩን ራሱን በ5% ገደማ ይቀንሱታል — መደበኛ የኢተርኔት ፍሬም በሽቦው ላይ ካሉት 1,538 ባይት ውስጥ 1,460 የጭነት ባይቶችን ይይዛል። የመቀበያ መስኮቱ የመተላለፊያ ፍጥነቱን በ window ÷ RTT ይገድባል፣ ስለዚህ ክላሲክ የ65,535-byte መስኮት የ50 ms መንገድን የሊንኩ ፍጥነት ምንም ያህል ፈጣን ቢሆን ወደ 10.5 Mbit/s ገደማ ይገድበዋል። እና መጥፋት ደግሞ በ (MSS ÷ RTT) ÷ √loss ይገድበዋል። ከላይ ያለው ውጤት በእርስዎ ቁጥሮች ላይ የትኛው ጣሪያ ተፈጻሚ እንደሆነ ይገልጻል።
የፓኬት መጥፋት የTCP መተላለፊያ ፍጥነትን እንዴት ይገድባል? TCP መጥፋትን እንደ መጨናነቅ ይቆጥረዋል እና በእያንዳንዱ የመጥፋት ክስተት የመላኪያ ፍጥነቱን በግማሽ ይቀንሳል፣ ስለዚህ በጣም አነስተኛ የመጥፋት መጠኖች እንኳን በፈጣን መንገዶች ላይ ትልቅ ተጽዕኖ አላቸው። የማቲስ (Mathis) ሞዴል ጣሪያውን በ (MSS ÷ RTT) ÷ √p ይገምታል — በ50 ms መንገድ ላይ በ0.01% መጥፋት እና በ1,460-byte MSS ይህ የሊንኩ ፍጥነት ምንም ይሁን ምን 23 Mbit/s ገደማ ነው። ሞዴሉ በእኩል የተከፋፈሉና እርስ በርስ የማይደጋገፉ የመጥፋት ክስተቶችን ያስባል፤ ከ1% በታች ሲሆን እውነታውን በደንብ ይከተላል፣ እና ለተከታታይ (bursty) መጥፋት ደግሞ ግምቱ በጣም አዎንታዊ ነው።
እዚህ ያሉት ሜጋባይቶች በፋይል አስተዳዳሪዬ ውስጥ ካሉት ጋር አንድ ናቸው? ሙሉ በሙሉ አይደለም። ይህ ገጽ የአስርዮሽ መለኪያዎችን ይጠቀማል፣ ይህም የኔትወርክ ልማድ ነው፦ 1 kbit = 1,000 bits እና 1 MB = 1,000,000 bytes። አብዛኛዎቹ የፋይል አስተዳዳሪዎች በ1024-መሰረት ባላቸው መለኪያዎች ይቆጥራሉ፣ ይህም ብዙ ጊዜ በስህተት MB ተብሎ ይጠራል — እዚያ ያለ “100 MB” ፋይል ብዙውን ጊዜ 100 MiB ≈ 104.86 አስርዮሽ MB ነው፣ ስለዚህ ለመንቀሳቀስ ከአስርዮሽ ቁጥሩ ከሚገመተው በ5% ገደማ የበለጠ ጊዜ ይወስዳል