Я страдаю от действительно странной проблемы, где я случайным образом получаю "Соединение с сервером, был сброшен" ошибки при попытке получить доступ к веб-страницам (Ошибка HTTP 12031 согласно инструменту диагностики сети Windows) - это происходит независимо от того, является ли веб-страница, к которой я пытаюсь получить доступ, во внешнем Интернете или даже если это от локального экземпляра Apache, работающего localhost. Это влияет на все компьютеры в нашей локальной сети (Ethernet, не беспроводная связь), все из которых выполняют Windows XP.
Было предложено мне, чтобы это могло бы относиться к MTU, используемому на сетевом трафике. Если я делаю Тест Ping для обнаружения самого большого пакета, который может пройти нефрагментированный, я могу проверить с помощью ping-запросов localhost с пакетом 1 492 байтов (+28 байтов для заголовка?) и я могу проверить с помощью ping-запросов наш маршрутизатор с пакетом 1 462 байтов (который составляет 1 490 байтов, когда Вы включаете 28-байтовый заголовок). Если я пытаюсь проверить с помощью ping-запросов что-то на внешней стороне как Google, я не могу передать ничего большего, чем 1430 (который является 1458 с заголовком).
Я попробовал после различных наборов инструкций обновить Реестр Windows XP с этой установкой MTU, обновив HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{AdapterID}\MTU
. Я не попробовал конца альтернативных значений: самое очевидное правильное значение, кажется, 1490, но я также попробовал 1462, 1458, 1430, и т.д., и т.д. Когда я перезагружаю компьютер для внесения изменения, вступают в силу, это, кажется, работает в течение нескольких минут (трудно для сообщения наверняка, так как это всегда случайно, а не последовательно), но это никогда не длится долго.
Первоначально, когда я пробовал 1430 как значение, после того, как несколько минут того, чтобы хорошо работать, результаты Теста Ping уменьшатся на 28 байтов - внезапно я нашел бы, что мог только получить пакет 1 402 байтов до Google. Если бы я обновил установку реестра MTU на 1402, когда я перезагрузил и ожидал несколько минут, это затем был бы 1374, то 1346, и т.д. и т.д. Другие компьютеры в сети остались незатронутыми (все еще в 1430), и удаление MTU, сходящего с реестра, восстановит вещи к нормальному (и все еще поврежденный).
Вещь, что я нахожу самое твердое о диагностировании всего этого, состоит в том, что очень трудно сказать, играю ли я даже с корректной установкой реестра. Таким образом в он является самым простым, мой вопрос был бы: Как я могу сказать то, что Windows установки MTU пытается использовать?
Кроме того, если у кого-либо есть какие-либо идеи, как сказать, почему MTU продолжает отбрасывать на 28, который был бы полезен также (например, есть ли файл журнала Windows где-нибудь, где он зарегистрирует что-то в точке, где значение изменяется?)
Наконец, если кто-либо может сказать мне окончательно, как сказать, какую установку MTU я должен пытаться использовать, который был бы большим!
Можно найти MTU с помощью ping с подходом метода проб и ошибок:
ping <address> -f -l nnnn
Ping:
- f: Указывает, что сообщения Эхо-запроса отправляются с не флаг Fragment в наборе заголовка IP к 1. Сообщение Эхо-запроса не может быть фрагментировано маршрутизаторами в пути к месту назначения. Этот параметр полезен для поиска и устранения неисправностей проблем блока передачи максимума пути (PMTU).
- l Размер: Указывает длину, в байтах, Поля данных в отправленных сообщениях Эхо-запроса. Значение по умолчанию равняется 32. Максимальный размер 65,527.
Вы заставите "Пакетные потребности быть фрагментированными, но сообщения" набора DF, когда длина будет слишком большой.
Посмотрите AdapterWatch:
AdapterWatch отображает полезную информацию о Ваших сетевых адаптерах: IP-адреса, Аппаратный адрес, серверы WINS, серверы DNS, значение MTU, Число байтов, полученных или отправленных, текущая скорость передачи, и т.д. Кроме того, это отображает общий TCP/IP/UDP/статистику ICMP для Вашего локального компьютера.
Microsoft KB314496: размеры MTU по умолчанию для различных топологий сети.
Вы не должны пытаться играть с конфигурацией MTU в нормальных настройках сети.
Здесь существует ссылка кода VB.
Существует также инструмент под названием DrTCP:
В реестре,
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkCards
ServiceName
строкаHKLM\System
; Вы будете соответствовать a NetCfgInstanceId
ключMaxFrameSize
ключ (шахта показывает 1514),Существует также способ изменить это с netsh
команда.
Кроме того, проверьте свой Путь конфигурация Исследования MTU.