TCP өткізу қабілеттілігінің шектеулерін түсіну
Бір TCP ағынының нақты өнімділігі желілік жолдың физикалық сипаттамаларына, хаттамалық шектеулерге және пакеттердің жоғалу деңгейіне тікелей байланысты болады. Желідегі деректерді тасымалдау жылдамдығы үш тәуелсіз фактордың ең төменгі шегімен анықталады: арна өткізу қабілеттілігі, қабылдау терезесі және пакеттердің жоғалуы. Осы үш шектеудің қайсысы бірінші болып әсер ететінін анықтау желідегі кедергілерді жоюдың негізі болып табылады.
Есептеу құралында қолданылатын негізгі формула келесідей сипатталады:
Өткізу қабілеті = min(жылдамдық × тиімділік, терезе ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = жылдамдық × RTT
Мұндағы әрбір шектеу желілік ағынның максималды мүмкіндігін айқындайды:
- Арна шегі: Физикалық арна жылдамдығы мен хаттама тиімділігінің көбейтіндісі.
- Терезе шегі: Қабылдау терезесінің пакеттің айналу уақытына (RTT) қатынасы.
- Жоғалу шегі (Mathis): Пакеттердің жоғалу деңгейіне негізделген математикалық шектеу.
Өткізу қабілеті мен кідіріс көбейтіндісі (BDP) және терезе өлшемі
Өткізу қабілеті мен кідіріс көбейтіндісі (BDP) — белгілі бір уақыт сәтінде желілік жолда («ішінде») бола алатын максималды деректер көлемін көрсетеді. Ол келесі формула бойынша есептеледі:
BDP = жылдамдық × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes›
Егер қабылдау терезесінің өлшемі осы BDP мәнінен кіші болса, жіберуші тарап жаңа деректерді жібермес бұрын қабылдаушыдан растауды (ACK) күтуге мәжбүр болады, бұл арнаның бос тұрып қалуына әкеледі. Жолды толық толтыру үшін қажетті терезе өлшемі келесідей анықталады:
Жолды толтыруға арналған терезе = BDP ÷ 8 = ‹bdp› → ‹window›
Классикалық TCP хаттамасындағы масштабталмаған ең жоғары терезе өлшемі 65,535 байтты құрайды. Егер жолды толтыру үшін қажетті терезе бұл мәннен асып кетсе, құрал келесі жүйелік ескертуді шығарады:
- "Бұл жолды толтыру үшін
‹window›терезесі қажет — бұл масштабталмаған 65,535 байттық максимумнан жоғары, сондықтан екі жақ та TCP терезесін масштабтауды (RFC 7323) келісуі керек."
RFC 7323 стандарты бойынша терезені масштабтау мүмкіндігі бұл шекті 1,073,725,440 байтқа дейін арттыруға жол ашады. Егер қажетті терезе осы абсолюттік шектен де асып кетсе, келесі ескерту көрсетіледі:
- "Бұл жолды толтыру үшін
‹window›қажет — бұл TCP келісе алатын ең үлкен терезеден (1,073,725,440 bytes) асып түседі. Бұл жолдағы бір ағын ешқашан‹value›мәнінен аса алмайды."
Сонымен қатар, егер қабылдау терезесін ұлғайту арқылы жылдамдықты арттыру мүмкіндігі болса, құрал мынадай нұсқауды ұсынады:
- "Қабылдау терезесін
‹window›мәніне дейін арттыру бұл тасымалдаудың‹value›мәніне дейін жетуіне мүмкіндік береді."
Желілік хаттаманың артық шығындары және тиімділік
Желі арқылы тасымалданатын әрбір пакет тек пайдалы жүктемені (MSS) ғана емес, сонымен бірге қызметтік тақырыптарды (headers) да тасымалдайды. Стандартты Ethernet желісінде әрбір пакетке 78 байт артық шығын қосылады (40 байт TCP/IP тақырыптары және 38 байт физикалық кабель деңгейіндегі үстеме шығындар).
Хаттаманың тиімділігі мен арнаның нақты шегі келесі формулалармен есептеледі:
- Protocol efficiency:
Хаттама тиімділігі = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff› (40 B пакет тақырыптары + желідегі 38 B) - Link ceiling:
Арна шегі = жылдамдық × тиімділік = ‹rate› × ‹eff› = ‹value›
Бұл есептеулер физикалық арна жылдамдығының неліктен ешқашан толықтай пайдалы деректерді тасымалдауға жұмсалмайтынын түсіндіреді.
Пакеттердің жоғалуы және Mathis моделі
Пакеттердің жоғалуы TCP өнімділігіне айтарлықтай әсер етеді, өйткені TCP кез келген жоғалуды желінің кептелуі деп қабылдап, жіберу жылдамдығын бірден төмендетеді. Mathis моделі біркелкі таралған және тәуелсіз жоғалу жағдайындағы максималды өткізу қабілетін келесідей бағалайды:
Жоғалу шегі (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value›
Бұл модель пакеттердің жоғалу деңгейі 1%-дан төмен болғанда ғана сенімді нәтиже береді. Егер енгізілген жоғалу деңгейі 1%-дан асып кетсе, құрал мынадай ескертуді шығарады:
- "1%-дан жоғары жоғалту Mathis моделінің сенімді ауқымынан тыс — жоғалту шегін оптимистік бағалау ретінде қарастырыңыз."
Есептеу ережелері және шектеулер
Есептеулерді жүргізу кезінде келесі ережелер мен шектеулер қолданылады:
- Өлшем бірліктері: Барлық есептеулер ондық жүйеге негізделген (мысалы, 1 kbit = 1,000 бит, 1 MB = 1,000,000 байт). Файл менеджерлері әдетте 1024-ке негізделген екілік жүйені қолданатындықтан, көрсеткіштер арасында шамамен 5% айырмашылық болуы мүмкін.
- Модельдің қамтымайтын тұстары: Есептеулер тұрақты күйдегі бір TCP ағынын ғана тексереді. TCP-дің баяу іске қосылуы (slow start), кептелісті басқару алгоритмдерінің баптаулары, қабылдағыштың баяу жұмысы және TLS қол алысулары (handshakes) бұл модельде ескерілмейді. Сондықтан нақты тасымалдау уақыты есептелгеннен ұзағырақ болуы мүмкін.
- Құпиялылық: Енгізілген барлық деректер тек пайдаланушының браузерінде жергілікті түрде өңделеді, ешқандай сыртқы серверге жіберілмейді.
Егер енгізілген мәндерде қателіктер болса, жүйе келесі қателік хабарламаларын көрсетеді:
- Мәнді оқу мүмкін болмағанда:
"‹field›: «‹token›» сан емес." - Арна жылдамдығы қате болса:
"Арна жылдамдығы нөлден үлкен болуы керек." - Айналым уақыты қате болса:
"Пакеттің айналу уақыты (RTT) нөлден үлкен болуы керек." - Деректер өлшемі қате болса:
"Деректер өлшемі нөлден үлкен болуы керек." - Қабылдау терезесі қате болса:
"Қабылдау терезесі нөлден үлкен болуы керек." - Қабылдау терезесі RFC 7323 шегінен асса:
"TCP 1,073,725,440 байттан асатын терезені келісе алмайды (RFC 7323 терезені масштабтау)." - MSS мәні шектен тыс болса:
"MSS мәні 1 мен 65,495 аралығындағы бүтін байт саны болуы керек." - Жоғалу деңгейі қате болса:
"Жоғалу деңгейі 0 мен 100 пайыз аралығында болуы керек." - Жүйелік шектен асқанда:
"Мән немесе аралық нәтиже қолдау көрсетілетін сандар ауқымынан асып кетті."
Жиі қойылатын сұрақтар (FAQ)
Өткізу қабілеттілігі мен кідіріс көбейтіндісі (BDP) деген не және ол неліктен терезе өлшемін анықтайды?
BDP — арна жылдамдығы × пакеттің айналу уақыты — кез келген сәтте желіде болатын деректер көлемі. TCP-де бір уақытта расталмаған ең көп дегенде бір терезе болуы мүмкін, сондықтан BDP-ден кіші терезе арнаны жартылай бос қалдырады: 50 мс RTT бар 100 Mbit/s жылдамдықта арна 625 kB сыйдырады, ал 65,535-байттық терезе оның оннан бір бөлігін әрең толтырады. Сондықтан жылдам әрі ұзын жолдарға TCP терезесін масштабтау (RFC 7323) қажет, ол келісілетін ең жоғары шекті 65,535 байттан шамамен 1 GB-қа дейін арттырады.
Неліктен менің тасымалдауым мен төлейтін арна жылдамдығынан баяу?
Бір TCP ағыны үш тәуелсіз шекке тап болады және ең төменгісі жеңеді. Хаттаманың үстеме шығындары арнаның өзін шамамен 5%-ға қысқартады — стандартты Ethernet фреймі желідегі 1,538 байттың ішінде 1,460 пайдалы жүктеме байтын тасымалдайды. Қабылдау терезесі өткізу қабілеттілігін window ÷ RTT мәнімен шектейді, сондықтан классикалық 65,535-байттық терезе 50 мс жолды арна жылдамдығы қаншалықты жоғары болса да, шамамен 10.5 Mbit/s деңгейінде ұстап тұрады. Ал жоғалу оны (MSS ÷ RTT) ÷ √loss формуласымен шектейді. Жоғарыдағы нәтиже сіздің сандарыңызға қай шектің әсер етіп тұрғанын көрсетеді.
Пакеттердің жоғалуы TCP өткізу қабілеттілігін қалай шектейді?
TCP жоғалуды кептеліс ретінде қарастырады және әрбір жоғалу оқиғасында жіберу жылдамдығын екі есе азайтады, сондықтан жылдам жолдарда тіпті өте аз жоғалу деңгейі де маңызды рөл атқарады. Mathis моделі шекті (MSS ÷ RTT) ÷ √p ретінде бағалайды — 1,460-байттық MSS және 50 мс жолы бар 0.01% жоғалуда бұл арна жылдамдығына қарамастан шамамен 23 Mbit/s құрайды. Модель біркелкі таралған, тәуелсіз жоғалу оқиғаларын болжайды; шамамен 1%-дан төмен болғанда ол шындыққа жақсы сәйкес келеді, ал топтасқан жоғалулар үшін тым оптимистік болып табылады.
Мұндағы мегабайттар менің файл менеджерімдегімен бірдей ме?
Дәл олай емес. Бұл бетте желілік конвенция болып табылатын ондық бірліктер қолданылады: 1 kbit = 1,000 бит және 1 MB = 1,000,000 байт. Файл менеджерлерінің көбі 1024-ке негізделген бірліктермен есептейді, олар жиі қате түрде MB деп белгіленеді — ондағы «100 MB» файлы әдетте 100 MiB ≈ 104.86 ондық MB құрайды, сондықтан оны тасымалдау ондық көрсеткішке қарағанда шамамен 5%-ға ұзағырақ уақыт алады. Оған дәл сәйкес келу үшін осы жерге 104.86 MB енгізіңіз.