2

У меня проблемы с загрузкой некоторых веб-сайтов, таких как Pintrest и Twitter, при подключении через мой маршрутизатор, проводном или беспроводном. Загружаются только текстовые части сайтов.

Если я подключаюсь к интернету напрямую (без роутера), все загружается нормально.

Вещи, которые я пробовал:

  • Изменен роутер (Netgear N150 на TP-Link TD W8968).
  • Проверено на Chrome, Firefox, Opera и IE (у меня нет никаких дополнений).
  • Проверено на разных компьютерах.

Как я могу исправить ситуацию, чтобы браузеры могли загружать все ресурсы, необходимые для правильного отображения страницы?

1 ответ1

1

Ваше интернет-соединение требует PPPoE? Протокол PPPoE имеет 8 байтов служебной информации на пакет, уменьшая MTU с 1500 до 1492. PPPoE или нет, сети некоторых провайдеров имеют другие ограничения MTU.

Клиентские устройства пытаются обрабатывать ограничения MTU, выполняя процедуру под названием "Path MTU Discovery" (PMTUD). Но маршрутизаторы, которые ведут себя некорректно и не отправляют сообщения ICMP «Требуется фрагментация, но не установлен бит», когда это необходимо, и межсетевые экраны, которые блокируют некоторые виды сообщений ICMP, могут вызвать сбой PMTUD. Некоторые идиоты, дезинформированные администраторы брандмауэра, блокируют все ICMP, потому что хотят блокировать попытки пинга, но не понимают, что ICMP используется для гораздо большего, чем просто пинг, и что блокировка ICMP наносит серьезный ущерб тому, как некоторые низкоуровневые части TCP/IP должен работать.

Домашние шлюзы хорошего качества пытаются справиться с ограничениями MTU, выполняя то, что называется "TCP MSS Clamping", но возможно, что шлюзы, которые вы пробовали, не делают этого или не справляются с этим.

Если ваш путь к Интернету имеет ограничение MTU и он не обрабатывается должным образом, это может привести к ситуации, когда файлы, размер которых меньше, чем ограниченный MTU (скажем, файл HTML размером менее 1400 байт), могут поместиться в один не слишком большой пакет для сети, и пройти. Но файлы, которые больше этого, помещаются в полные 1500-байтовые пакеты, которые слишком велики для сети и должны быть отброшены.

Чтобы обойти это, сайты Google всегда договариваются о 1380-байтовом MSS для всех соединений TCP.

Попробуй это:
Чтобы увидеть, являются ли необработанные ограничения MTU вашей проблемой, установите MTU достаточно низким (скажем, 1300) на одной из ваших машин, которая видит проблемы. Если 1300-байтовый MTU решает вашу проблему, попробуйте разные настройки ближе и ближе к 1500, чтобы увидеть, где находится отсечка. Затем установите самый большой рабочий MTU на всех ваших клиентских компьютерах.

Если ваши необработанные ограничения MTU в конечном итоге станут вашей проблемой, купите лучший домашний шлюз, который правильно выполняет TCP MSS Clamping (я знаю, что линии Apple AirPort и Time Capsule всегда справлялись с этим, но я не могу поручиться за других), и убедитесь, что вы не отфильтровывайте ICMP, чтобы PMTUD мог работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .