Протокол SMB для расширенного устранения неполадок
Попробуйте наш виртуальный агент. Это поможет быстро определить и устранить распространенные проблемы S МБ.
Блок сообщений сервера (S МБ) — это протокол сетевого транспорта для операций файловой системы, чтобы клиент мог получать доступ к ресурсам на сервере. Основной целью протокола S МБ является включение удаленного доступа к файловой системе между двумя системами через TCP/IP.
S МБ устранение неполадок может быть чрезвычайно сложным. Эта статья не является исчерпывающим руководством по устранению неполадок вместо этого, это краткое руководство, чтобы понять основы эффективного устранения неполадок S МБ.
Средства и сбор данных
Одним из ключевых аспектов устранения неполадок качества S МБ является взаимодействие с правильной терминологией. Поэтому в этой статье представлена базовая терминология S МБ для обеспечения точности сбора и анализа данных.
Примечание.
Сервер S МБ (SRV) относится к системе, в которую размещается файловая система, также известная как файловый сервер. Клиент S МБ (CLI) ссылается на систему, которая пытается получить доступ к файловой системе независимо от версии или выпуска ОС.
Например, если вы используете Windows Server 2016 для доступа к общей папке S МБ, размещенной в Windows 10, Windows Server 2016 является клиентом S МБ и Windows 10 S МБ Server.
Сбор данных
Перед устранением неполадок S МБ рекомендуется сначала собрать трассировку сети на стороне клиента и сервера. Применяются следующие правила.
В системах Windows можно использовать netshell (netsh), сетевой монитор, анализатор сообщений или Wireshark для сбора трассировки сети.
Сторонние устройства обычно имеют встроенное средство записи пакетов, например tcpdump (Linux/FreeBSD/Unix), или pktt (NetApp). Например, если сервер S МБ или S МБ является узлом Unix, можно собрать данные, выполнив следующую команду:
# tcpdump -s0 -n -i any -w /tmp/$(hostname)-smbtrace.pcap
Остановите сбор данных с помощью клавиш CTRL+C .
Чтобы обнаружить источник проблемы, можно проверка двухсторонняя трассировка: CLI, SRV или где-то между ними.
Использование netshell для сбора данных
В этом разделе приведены инструкции по использованию netshell для сбора трассировки сети.
Важно!
Средство анализатора сообщений Майкрософт прекращено , и мы рекомендуем Wireshark анализировать файлы ETL. Сведения о том, кто скачал средство ранее и ищет дополнительные сведения, см. в разделе "Установка и обновление анализатора сообщений".
Примечание.
Трассировка Netsh создает ETL-файл. Файлы ETL можно открыть в анализаторе сообщений (MA), сетевом мониторе 3.4 (установите средство синтаксического анализа для средства синтаксического анализа сетевых мониторов > Windows) и Wireshark.
На сервере S МБ и клиенте S МБ создайте папку Temp на диске C. Затем выполните следующую команду:
netsh trace start capture=yes report=yes scenario=NetConnection level=5 maxsize=1024 tracefile=c:\Temp\netTrace.etl
Если вы используете PowerShell, выполните следующие командлеты:
New-NetEventSession -Name trace -LocalFilePath "C:\Temp\netTrace.etl" -MaxFileSize 1024 Add-NetEventPacketCaptureProvider -SessionName trace -TruncationLength 1500 Start-NetEventSession trace
Воспроизведите проблему.
Остановите трассировку, выполнив следующую команду:
netsh trace stop
Если вы используете PowerShell, выполните следующие командлеты:
Stop-NetEventSession trace Remove-NetEventSession trace
Примечание.
Необходимо отследить только минимальный объем передаваемых данных. Для проблем с производительностью всегда требуется хорошая и плохая трассировка, если это позволяет.
Анализ трафика
S МБ — это протокол уровня приложения, который использует TCP/IP в качестве сетевого транспортного протокола. Поэтому проблема S МБ также может быть вызвана проблемами TCP/IP.
Проверьте, возникают ли проблемы с TCP/IP:
Трехсторонняя рукопожатие TCP не завершается. Обычно это означает, что существует блок брандмауэра или что служба сервера не запущена.
Происходят повторные передачи. Это может привести к замедлению передачи файлов из-за сложного регулирования перегрузки TCP.
Пять повторных передач, за которыми следует сброс TCP, может означать, что соединение между системами было потеряно или что одна из служб S МБ завершила сбой или перестала отвечать.
Окно получения TCP уменьшается. Это может быть вызвано медленным хранилищем или какой-либо другой проблемой, которая предотвращает получение данных из буфера Winsock драйвера функции Ancillary (AFD).
Если нет заметной проблемы TCP/IP, найдите ошибки S МБ. Для этого выполните следующие шаги.
Всегда проверка S МБ ошибки в спецификации протокола MS-S МБ 2. Многие ошибки S МБ являются доброкачественными (не вредными). Ознакомьтесь со следующими сведениями, чтобы определить, почему S МБ вернул ошибку перед выводом о том, что ошибка связана с любой из следующих проблем:
Статья синтаксиса сообщений MS-S МБ 2 содержит сведения о каждой команде S МБ и ее параметрах.
В статье ms-S МБ 2 Client Processing описано, как клиент S МБ создает запросы и отвечает на сообщения сервера.
В статье о обработке сервера MS-S МБ 2 описано, как сервер S МБ создает запросы и отвечает на клиентские запросы.
Проверьте, отправляется ли команда сброса TCP сразу после команды FSCTL_VALIDATE_NEGOTIATE_INFO (проверка согласования). Если да, обратитесь к следующим сведениям:
Сеанс S МБ должен быть завершен (сброс TCP) при сбое процесса проверки согласования на клиенте или сервере.
Этот процесс может завершиться ошибкой, так как оптимизатор глобальной сети изменяет пакет S МБ Negotiate.
Если подключение завершилось преждевременно, определите последнее обмен данными между клиентом и сервером.
Анализ протокола
Просмотрите фактические сведения о протоколе S МБ в трассировке сети, чтобы понять точные команды и параметры, которые используются.
Помните, что S МБ делает только то, что он сказал.
Вы можете узнать больше о том, что приложение пытается сделать, проверив команды S МБ.
Сравните команды и операции со спецификацией протокола, чтобы убедиться, что все работает правильно. Если это не так, соберите данные, которые ближе или на более низком уровне, чтобы найти дополнительные сведения о первопричине. Для этого выполните следующие шаги.
Сбор стандартной записи пакетов.
Выполните команду netsh для трассировки и сбора сведений о наличии проблем в сетевом стеке или удалении в приложениях платформы фильтрации Windows (МПП), таких как брандмауэр или антивирусная программа.
Если все остальные параметры завершаются ошибкой, соберите t.cmd, если вы подозреваете, что проблема возникает в S МБ себя или если ни одна из других данных не является достаточной для выявления первопричины.
Например:
Вы испытываете медленные передачи файлов на один файловый сервер.
Двухсторонняя трассировка показывает, что SRV реагирует медленно на запрос READ.
Удаление антивирусной программы разрешает медленные передачи файлов.
Чтобы устранить проблему, обратитесь к антивирусной программе.
Примечание.
При необходимости вы также можете временно удалить антивирусную программу во время устранения неполадок.
Журналы событий
Сервер S МБ клиента и S МБ имеют подробную структуру журнала событий, как показано на следующем снимке экрана. Соберите журналы событий, чтобы найти первопричину проблемы.
Системные файлы, связанные с S МБ
В этом разделе перечислены системные файлы, связанные с S МБ. Чтобы сохранить системные файлы, убедитесь, что установлен последний накопительный пакет обновления.
S МБ двоичные файлы клиента, перечисленные в разделе %windir%\system32\Drivers:
RDBSS.sys;
MRXSMB.sys;
MRXSMB10.sys;
MRXSMB20.sys;
MUP.sys;
SMBdirect.sys.
S МБ двоичные файлы сервера, перечисленные в разделе %windir%\system32\Drivers:
SRVNET.sys;
SRV.sys;
SRV2.sys;
SMBdirect.sys.
В разделе %windir%\system32
srvsvc.dll.
Обновление предложений
Перед устранением проблем с SMB рекомендуем обновить следующие компоненты:
Для файлового сервера требуется хранилище файлов. Если в вашем хранилище есть компонент iSCSI, обновите эти компоненты.
Обновите сетевые компоненты.
Для повышения производительности и стабильности обновите Windows Core.