Дело в том, что данные от компьютера к компьютеру в Интернете идут не сплошным потоком, а кадрами - пакетами строго определённого размера.
При этом слишком большой пакет в пути, скорее всего, будет фрагментироваться и заполняться "воздухом",
"балластом", что негативно скажется на эффективности связи.
а у вас в Windows задано MTU=1500, то каждый ваш пакет будет им разбиваться на три по 576 байт:
576+576+576=1728 - то есть, 228 байт балласта будут добавляться к каждому вашему пакету. Но даже если
провайдер тоже имеет MTU=1500, то при связи с удалённым сервером вполне может попасться маршрутизатор с
меньшим значением MTU и пакеты опять-таки будут фрагментироваться, замедляя передачу данных.
Как определить оптимальное значение MTU? Открываем командную строку, и вводим в ней команду:
ping -f -l byte ip
где byte подбирается вручную , а IP - любой адрес сервера провайдера, например, DNS, или адрес с интернета -
не принципиально, так как провайдер всё равно не позволит пропустить больший пакет без фрагментации.
Для нашего "Уралсвязьинформ" вводим
ping -f -l 1500 195.38.32.3 - адрес одного из DNS серверов
Получаем:
Код
Обмен пакетами с 195.38.32.3 по 1500 байт:
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Уменьшаем byte на 10. Опять та же история. Ещё уменьшаем и так далее. При значении 1460 начинаем
пинговаться. Увеличиваем byte на единичку. При 1461 пингуемся, при 1464 пингуемся, при 1465 уже не можем без
фрагментации пакета. Ping прибавляет к нашим данным заголовок - IP (20 Байтов) и ICMP (8 Байтов). Таким
образом, идеальное значение MTU для "Уралсвязьинформ" является 1464 + 20 + 8 =1492