Firefox IPv6 соединение не удалось, пока подключен уровень TCP - PullRequest
0 голосов
/ 02 сентября 2011

Я пытаюсь подключиться к серверу http через локальный адрес IPv6 из Windows XP SP3 с Firefox 6. Хотя подключение по IPv4-адресу сервера работало нормально, сбой IPv6 завершился ошибкой соединения.

У Wireshark последовательность наблюдается как:

         direction    protocol    port         transmission
1. client -> server:  tcp         1061-> 80   [syn]
2. server -> client:  tcp         80->1061    [syn, ack]
3. client -> server:  tcp         1061->80    [ack]
4. client -> server:  http                    [get /]
5. server -> client:  http                    [200 OK]

В 5-й передаче запрошенный html-файл включен. Но браузер показывает, что соединение не удалось. Кажется, что tcp layer получил сообщения и не может доставить его на http уровень или в браузер. Я отключил брандмауэр, и результат тот же.

Может ли кто-нибудь дать подсказку или намек на продолжение. Спасибо.

1 Ответ

0 голосов
/ 02 сентября 2011

Я подозреваю, что это не полный ответ в пакете 5.

Обычно подобные проблемы возникают из-за неправильного обнаружения MTU. Если в пути есть туннель, то MTU, вероятно, меньше 1500 байтов, то есть 1480 байтов. Все пакеты, которые меньше чем 1480 байтов, проходят. Когда сервер отправляет 1500-байтовый пакет, он будет слишком большим для туннеля. Туннельный маршрутизатор отправляет обратно ошибку ICMP со слишком большим пакетом, а сервер отправляет данные в виде 1480-байтовых блоков. Если ошибка ICMP никогда не генерируется или брандмауэр блокирует пакет ICMP, то сервер никогда не узнает, что он должен отправлять меньшие пакеты, он продолжает отправлять большие пакеты, и они никогда не приходят ...

В большинстве случаев такие проблемы вызваны неправильно настроенными межсетевыми экранами. Иногда это сломанное аппаратное или программное обеспечение.

...