Операция по удалению грыжи у TCP/IP

Xakep, номер #031, стр. 031-020-1

Horrific (smiandr@mail.ru)

Больше всего в жизни я ненавижу тормозов. Если людей такого типа еще можно избежать, то вот от модемов с маленькой скоростью никуда не денешься. Меня просто бесит, когда огоньки в правом нижнем углу, отражающие соединение, начинают затухать. Хорошо, если они просто моргают, и мой ишак IE загружает очередную страницу. В этом случае я просто закрываю глаза на несколько минут, а очнувшись, получаю готовую страницу. Но когда я скачиваю громадный файл, и на самом последнем килобайте огоньки тухнут и в течение пяти минут не хотят просыпаться, я готов разбить свою голову б монитор. Так я стал ощущать, что моя черепушка уже не выдерживает таких нагрузок, и мозги могут вытечь наружу.

Я давно уже борюсь со своим коннектом, потому что мне часто приходится качать большие файлы (чаще всего закачивать в сеть). За все время моего пребывания в Инете я сменил несколько момедов, устанавливал различные проксики, менял провайдеров и даже перевел телефон на цифровую станцию. Все это потребовало немаленьких зеленых, а скорости прибавилось процентов на 20. Мои огоньки стали гореть ярче, и шишек на лбу стало меньше. И все же огоньки все так же умирали, хотя и редко.

Вот тут я решил влезть в сердце моего Internet-а и проделать операцию на TCP/IP. Если и ты хочешь реально увеличить скорость своего коннекта, то тебе придется сделать то же самое. После удачной операции скорость увеличивается на 20-40%, а главное - никаких затрат. Приступая к операции, мы сразу же сталкиваемся с небольшой проблемой - в состав Win9x не входит ни одного скальпеля для проделывания этой достаточно простой работы. Ну ничего, такое можно сделать и ручками, изменяя параметры в реестре.

Оптимизация передаваемых пакетов

Итак, запускай regedit и направляйся по адресу: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesClassNetTrans000. Последние нули в адресе означают профиль. Их у тебя может быть несколько, поэтому адрес может заканчиваться не на 0000, а 0001 или 0002 или даже 0022. Здесь нужно создать строковый параметр MaxMTU и присвоить ему значение... а какое значение, мы сейчас разберемся.

MTU (Maximum Transmission Unit) - максимальный передаваемый пакет. M$, как всегда, выделилась и переименовала этот параметр в MaxMTU - максимально максимальный передаваемый пакет :). В Win9x по умолчанию используется максимально возможное значение 1500. Сплошные максимумы - максимум MTU, максимум максимума, максимум глюков :).

Конечно, чем больше пакет, тем больше данных мы получим. С большим значением MaxMTU момед сможет отправлять большие пакеты, и за раз будет отправляться больше данных. Но если у тебя связь глючная и пакеты регулярно пропадают, то момеду нужно повторять отправку потерянных данных. Может так случится, что момед будет тратить больше времени на отправку или получение потерянных пакетов, чем на новые. Есть еще одна проблема - стандартом для маршрутизаторов долгое время являлось значение MaxMTU, равное 576. Поэтому пакеты разрываются вдребезги маршрутизаторами, и значение MaxMTU желательно понизить.

Содержание  Вперед на стр. 031-020-2

ttfb: 3.3090114593506 ms