Давайте попробуем пройти через это как путешествие, в котором мы с тобой оба узнаем, как это работает!
1. Нужны ли обе услуги? Если нет, есть ли какие-либо преимущества по сравнению с одним сервисом?
В зависимости от вашей операционной системы и среды, обе службы не нужны.
SMB (блок сообщений сервера)
Блок сообщений сервера, современный диалект которого известен как Общая файловая система Интернета, работает как сетевой протокол прикладного уровня, в основном используемый для предоставления общего доступа к файлам, принтерам, последовательным портам и различным связям между узлами в сети. ...
Протокол блокировки сообщений сервера может работать поверх сеансового (и нижнего) сетевых уровней несколькими способами:
- непосредственно через TCP, порт 445
- через API NetBIOS, который, в свою очередь, может работать на нескольких транспортных средствах:
- на UDP-портах 137, 138 и TCP-портах 137, 139 - см. NetBIOS через TCP/IP
- на нескольких устаревших протоколах, таких как NBF (неправильно называемый NetBEUI).
Цитата: WikiPedia статья о блоке сообщений сервера
В Windows SMB может работать напрямую через TCP/IP без необходимости использования NetBIOS через TCP/IP. Это будет использовать, как вы указали, порт 445
.
Вообще говоря, в других системах вы найдете службы и приложения, использующие порт 139
. В сущности, это означает, что SMB работает с NetBIOS через TCP/IP, где по стеку SMB находится на вершине NetBIOS, если вы представляете его с моделью OSI.
Вот визуализация от Ричарда Шарпа, от samba.org.
Вот слегка измененная версия, чтобы проиллюстрировать, как вы можете представить это в системе на основе Windows.
1.a Если они оба необходимы, есть ли преимущества?
Единственное "преимущество" - это не столько преимущество, сколько требование - это то, что с SMB через NBT (NetBIOS через TCP/IP) вы на самом деле сможете общаться с большим количеством реализаций SMB ,
2. Какую информацию / услугу предоставляют netbios-ssn
и microsoft-ds
?
* Я предполагаю, что в то время как netbios-ssn
просто предоставляет API-интерфейс NetBIOS, включая NBT (NetBIOS через TCP/IP) через порт 139
. С другой стороны, microsoft-ds
обеспечивает прямой хостинг SMB через порт 445
.*
С Windows 2000 Microsoft чувствовала, что это можно улучшить. Они добавили порт 445 для того же сервиса. На порту 445 SMB работает напрямую через TCP. Единственное отличие состоит в том, что клиент пропускает сеанс NetBIOS (сохраняет один прием), затем выполняет согласование, аутентификацию, монтирование и т.д.
Проверьте свойства вашей сетевой карты. Где-то в расширенных настройках IP есть флажок "Включить NetBIOS через TCP". Активируйте его, и ваш компьютер использует порт 139. Отключите опцию, и система хочет использовать 445.
...
- Порт 139:
SMB -> NetBIOS -> TCP
- Порт 445:
SMB -> .... -> TCP
Источник: packethunter в Wireshark Q & A
3. Какова связь между SMB и NetBIOS; они раздельные, один полагается на другой?
SMB использует NetBIOS для связи с устройствами, которые не поддерживают прямое размещение SMB через TCP/IP.
NetBIOS полностью независим от SMB. Это API, который могут использовать SMB и другие технологии, поэтому NetBIOS не зависит от SMB.
NetBIOS (базовая сетевая система)
... Он предоставляет услуги, связанные с уровнем сеанса модели OSI, позволяя приложениям на отдельных компьютерах обмениваться данными по локальной сети. Будучи строго API, NetBIOS не является сетевым протоколом. ...
... В современных сетях NetBIOS обычно работает через TCP/IP через протокол NetBIOS через TCP/IP (NBT). Это приводит к тому, что каждый компьютер в сети имеет как IP-адрес, так и имя NetBIOS, соответствующее (возможно, другому) имени хоста. ...
Цитата: WikiPedia статья о NetBIOS
Как вы можете видеть, отношения были бы Application -> SMB -> NetBIOS -> (TCP/IP, others)
.