Налаштування та оптимізація модемного з’єднання
Дуже важливим моментом у налаштуванні Windows є оптимізація підключення до Інтернету. Адже від якості зв'язку безпосередньо залежить час, проведений вами в мережі і, відповідно, витрати грошей на це. Можна спробувати налаштувати з'єднання якнайкраще, з мінімальними втратами даних. Перш ніж приступити до редагування реєстру, треба дізнатися кілька спеціальних термінів та усвідомити співвідношення між ними.
MTUЦе максимальний розмір пакета даних, який може бути переданий за один фізичний кадр за протоколом TCP/IP. Справа в тому, що дані від комп'ютера до комп'ютера в Інтернеті йдуть не суцільним потоком, а цими кадрами - пакетами строго певного розміру. Якби всі компанії та фірми, що мають хоч якесь відношення до Інтернету, домовилися про єдиний стандарт на розмір цих пакетів, то ми використовували б кожен такий кадр по максимуму, повністю заповнюючи канали передачі даних своїми бітами.
Однак, це не так. Мало того, що при встановленні нового з'єднання два віддалені комп'ютери повинні узгодити між собою розмір кадру, так ще й по дорозі до місця призначення пакет долає цілий ряд проміжних серверів і маршрутизаторів, налаштування MTU яких можуть бути різними. При цьому занадто великий пакет у дорозі, швидше за все, фрагментуватиметься і заповнюватиметься "повітрям", "баластом", що негативно позначиться на ефективності зв'язку. Так, якщо ваш провайдер має установки MTU=576, а у вас у Windows задано MTU=1500, то кожен ваш пакет буде їм розбиватися на три по 576 байт: 576+576+576=1728 - тобто 228 байт баласту будуть додаватися до кожному вашому пакету. Але навіть якщо провайдер теж поставив у себе MTU=1500, то при зв'язку з віддаленим сервером цілком можепотрапити маршрутизатор з меншим значенням MTU і пакети знову-таки фрагментуватимуться, уповільнюючи передачу даних.
Також не можна забувати, що в процесі прийому пакета може статися збій, тоді пакет доведеться приймати наново. Здавалося б, що менше пакет, тим краще, але у кожному пакеті є 40 байт службової інформації (про це нижче), тобто. вам доводиться приймати зайві байти, що не є добре. Виходячи з цих міркувань, можна порекомендувати виставляти максимальне значення (1500) тим, хто має гарну якість зв'язку, що дозволить уникнути отримання зайвої службової інформації. Для тих, у кого якість зв'язку залишає бажати кращого, і часто відбуваються втрати пакетів, можна порекомендувати виставляти значення MTU за мінімальним. У будь-якому випадку, краще це значення підібрати експериментально, виставляючи його та перевіряючи швидкість роботи.
MSSКожен пакет даних насправді складається з кількох сегментів - кількох заголовків та фактичних даних. Та його частина, в якій містяться лише фактичні дані, називається MSS (Maximum Segment Size) – це ще один параметр протоколу TCP, що визначає найбільший сегмент даних TCP, які можуть бути передані за один раз. Тобто MTU = MSS + заголовки TCP/IP. Для заголовка теж є загальноприйнятий розмір - це 40 байт (20 байт IP і 20 байт TCP), отже, зазвичай MSS = MTU - 40. З цієї причини визначення оптимального розміру MTU є деякі тонкощі.
RWINRWIN (receive window, вікно прийому) - розмір буфера, в якому накопичується вміст області даних (MSS) декількох отриманих пакетів, перш ніж передається далі, наприклад, браузер. При недостатньому розмірі цього буфера іноді відбувається його переповнення, і пакети, що надходять, відкидаються ігубляться. Розмір RWIN обов'язково повинен бути кратний MSS і зазвичай для кращої ефективності модемного з'єднання кратність рекомендується встановлювати 4-8. Однак надмірно великий розмір буфера також небажаний, особливо на поганих лініях - при втраті всього одного пакета у разі збою на лінії буде повторно затребуваний не один втрачений пакет, а всі пакети цього буфера, що займе деякий час.
TTLTTL (time to live, час життя) - кількість хопів, тобто проміжних серверів, якими може пройти ваш пакет у пошуках свого призначення. Кожен такий сервер додає одиницю до спеціального лічильника в заголовку вашого пакета, і коли лічильник досягає максимально дозволеного значення, пакет вважається заблуканим і припиняє своє існування. За умовчанням TTL дорівнює 32, що сьогодні явно недостатньо для Інтернету, що розрісся: нерідкі випадки, коли віддалений сервер знаходиться більш ніж у 32 переходах, тому TTL слід збільшити як мінімум до 64.
NDI CacheNDI Cache (Network Device Interface Cache) - кеш, в якому зберігаються дані про маршрути руху пакетів, за замовчуванням його розмір дорівнює нулю. Щоб його задіяти найбільш оптимально, необхідно встановити розмір рівним 16 при модемному з'єднанні або 32 при більш швидкісних підключеннях.
Мабуть, настав час приступати до налаштувань. Частина даних зберігається у гілки HKEY_LOCAL_MACHINE у розділі SystemCurrentControlSetServicesClassNetTrans000. Тут 0000 – номер профілю (їх може бути декілька, наприклад, 0001, 0002.). Значення MTU виставляється за допомогою рядкового ключа MaxMTU (1500, 1002, 576, 552).
Щоб настроїти наступні параметри, відкрийте розділ SystemCurrentControlSetServicesVxDMSTCP. Значення MSS встановлюється рядковим ключемDefaultMSS: його значення дорівнює MaxMTU - 40.
RWIN налаштовується у рядковому ключі DefaultRcvWindow. Поекспериментуйте з цим значенням, але пам'ятайте, що воно має бути кратним MSS (MSS*4 або MSS*8).
TTL налаштовується за допомогою рядкового ключа DefaultTTL.
Ви можете дозволити Windows самій визначати оптимальне значення MTU.
Якщо опція включена, то Windows сама підбирає оптимальне значення MTU, проте процедура обчислення MTU для кожного з'єднання вимагає чимало часу, що гальмує роботу при закачуванні невеликих файлів і веб-серфінгу. Щоб встановити цей параметр, додайте рядковий ключ PMTUDiscovery. Значення "1" включає його, "0" - вимикає.
Виявлення чорних дірок. Встановлення цього параметра дозволяє протоколу TCP намагатися виявити роутери, що нікуди не ведуть, і ті, що не повертають ICMP-повідомлень про необхідність фрагментації при визначенні найкращого MTU. Це також, як і будь-яка додаткова процедура, може уповільнювати роботу в Інтернеті – спробуйте поекспериментувати з її вимкненням. Для цього додайте рядковий ключ PMTUBlackHoleDetect зі значенням "1" для включення та "0" для вимкнення.
Щоб налаштувати NDI Cache, відкрийте розділ SystemCurrentControlSetServicesVxDNWLinkNdiparamscachesize і за промовчанням пропишіть потрібне число (16 або 32).
Ви можете збільшити кількість одночасних підключень до сервера, увімкнувши цю опцію, що часто буває дуже корисно, за допомогою DWORD ключів MaxConnectionsPer1_0Server (встановіть його значення 10) і MaxConnectionsPerServer (прирівняти до 8). Ці ключі треба додати до розділу HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionInternet Settings. Видалення їх призведе до вимкнення можливості.
Усі настройки набирають чинності після перезавантаженнякомп'ютера. Поекспериментуйте з різними значеннями і ви зможете збільшити швидкість підключення на 20-40%.