Багато SOCKS-з'єднань можуть ділити один транспорт SSH
ssh -D мультиплексує потоки до призначень каналами SSH; одне зовнішнє TCP-з'єднання все ще може стати їхнім спільним вузьким місцем.
Один процес ssh -D може обслуговувати кілька з'єднань із сайтами одночасно. Рахуйте рівні окремо:
| Рівень | Що він переносить |
|---|---|
| Застосунок до слухача SOCKS | Окремі з'єднання застосунків і запити SOCKS |
| Канали SSH | Незалежно адресовані потоки з керуванням потоком на рівні каналу |
| Транспорт SSH | Мультиплексовані дані каналів, зазвичай через одне базове TCP-з'єднання |
| Шлюз до сайтів | Окремі з'єднання призначення, які відкриває шлюз |
Тому один зашифрований сокет SSH не означає, що кожен запит до сайту вишиковується в чергу в одному з'єднанні призначення. Динамічне переспрямування передає дані потоків і відкриває нові з'єднання; воно відрізняється від пакетного тунелю, який переносить початкові TCP-пакети застосунку та заголовки IP усередині іншого TCP-з'єднання.
Спільний транспорт усе ще важливий. Пропускна здатність, планування, робота шифрування та втрати або затримки транспорту можуть впливати на кілька каналів разом. Затримка одного призначення сама по собі не доводить обмеження в один канал.
Якщо кілька застосунків сповільнюються одночасно, перевірте, чи вони використовують ту саму сесію SSH і шлях через шлюз, а потім порівняйте їхнє реальне навантаження. Підрахунок локальних портів SOCKS не вимірює ні пропускну здатність, ні незалежні маршрути. Мультиплексування саме по собі не обіцяє ні прискорення, ні окремого публічного виходу для кожного потоку.