Поделиться через


Протокол 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.

  1. На сервере 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
    
  2. Воспроизведите проблему.

  3. Остановите трассировку, выполнив следующую команду:

    netsh trace stop
    

    Если вы используете PowerShell, выполните следующие командлеты:

    Stop-NetEventSession trace  
    Remove-NetEventSession trace
    

Примечание.

Необходимо отследить только минимальный объем передаваемых данных. Для проблем с производительностью всегда требуется хорошая и плохая трассировка, если это позволяет.

Анализ трафика

S МБ — это протокол уровня приложения, который использует TCP/IP в качестве сетевого транспортного протокола. Поэтому проблема S МБ также может быть вызвана проблемами TCP/IP.

Проверьте, возникают ли проблемы с TCP/IP:

  1. Трехсторонняя рукопожатие TCP не завершается. Обычно это означает, что существует блок брандмауэра или что служба сервера не запущена.

  2. Происходят повторные передачи. Это может привести к замедлению передачи файлов из-за сложного регулирования перегрузки TCP.

  3. Пять повторных передач, за которыми следует сброс TCP, может означать, что соединение между системами было потеряно или что одна из служб S МБ завершила сбой или перестала отвечать.

  4. Окно получения TCP уменьшается. Это может быть вызвано медленным хранилищем или какой-либо другой проблемой, которая предотвращает получение данных из буфера Winsock драйвера функции Ancillary (AFD).

Если нет заметной проблемы TCP/IP, найдите ошибки S МБ. Для этого выполните следующие шаги.

  1. Всегда проверка S МБ ошибки в спецификации протокола MS-S МБ 2. Многие ошибки S МБ являются доброкачественными (не вредными). Ознакомьтесь со следующими сведениями, чтобы определить, почему S МБ вернул ошибку перед выводом о том, что ошибка связана с любой из следующих проблем:

    • Статья синтаксиса сообщений MS-S МБ 2 содержит сведения о каждой команде S МБ и ее параметрах.

    • В статье ms-S МБ 2 Client Processing описано, как клиент S МБ создает запросы и отвечает на сообщения сервера.

    • В статье о обработке сервера MS-S МБ 2 описано, как сервер S МБ создает запросы и отвечает на клиентские запросы.

  2. Проверьте, отправляется ли команда сброса TCP сразу после команды FSCTL_VALIDATE_NEGOTIATE_INFO (проверка согласования). Если да, обратитесь к следующим сведениям:

    • Сеанс S МБ должен быть завершен (сброс TCP) при сбое процесса проверки согласования на клиенте или сервере.

    • Этот процесс может завершиться ошибкой, так как оптимизатор глобальной сети изменяет пакет S МБ Negotiate.

    • Если подключение завершилось преждевременно, определите последнее обмен данными между клиентом и сервером.

Анализ протокола

Просмотрите фактические сведения о протоколе S МБ в трассировке сети, чтобы понять точные команды и параметры, которые используются.

  • Помните, что S МБ делает только то, что он сказал.

  • Вы можете узнать больше о том, что приложение пытается сделать, проверив команды S МБ.

Сравните команды и операции со спецификацией протокола, чтобы убедиться, что все работает правильно. Если это не так, соберите данные, которые ближе или на более низком уровне, чтобы найти дополнительные сведения о первопричине. Для этого выполните следующие шаги.

  1. Сбор стандартной записи пакетов.

  2. Выполните команду netsh для трассировки и сбора сведений о наличии проблем в сетевом стеке или удалении в приложениях платформы фильтрации Windows (МПП), таких как брандмауэр или антивирусная программа.

  3. Если все остальные параметры завершаются ошибкой, соберите t.cmd, если вы подозреваете, что проблема возникает в S МБ себя или если ни одна из других данных не является достаточной для выявления первопричины.

Например:

  • Вы испытываете медленные передачи файлов на один файловый сервер.

  • Двухсторонняя трассировка показывает, что SRV реагирует медленно на запрос READ.

  • Удаление антивирусной программы разрешает медленные передачи файлов.

  • Чтобы устранить проблему, обратитесь к антивирусной программе.

Примечание.

При необходимости вы также можете временно удалить антивирусную программу во время устранения неполадок.

Журналы событий

Сервер S МБ клиента и S МБ имеют подробную структуру журнала событий, как показано на следующем снимке экрана. Соберите журналы событий, чтобы найти первопричину проблемы.

Event logs

В этом разделе перечислены системные файлы, связанные с 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 components

Обновление предложений

Перед устранением проблем с SMB рекомендуем обновить следующие компоненты:

  • Для файлового сервера требуется хранилище файлов. Если в вашем хранилище есть компонент iSCSI, обновите эти компоненты.

  • Обновите сетевые компоненты.

  • Для повышения производительности и стабильности обновите Windows Core.

Ссылка

Сценарий обмена пакетами пакетов Microsoft S МБ