NetBIOS 与 SMB 的区别

Pel*_*eus 28 networking netbios smb

我还试图发现通常在端口 139 上运行的 netbios-ssn 和在端口 445 上运行的 microsoft-ds 之间的关系。

我知道以前端口 139 更受旧机器的欢迎,使用 SMB 协议的 NetBIOS 用于文件共享/打印机等。现在我们更有可能看到 microsoft-ds 与端口 139 和端口 445 一起运行netbios-ssn 服务。

然而,我的问题是。

  • 这两项服务是否必要/是否提供比运行单一服务更多的好处?根据我的理解,linux 系统不运行 445 端口,而是在 139 端口上使用 Samba。在具有这两个端口的 Windows 机器上,我可以在 Linux 机器上做些什么吗?

  • 如果每个服务都有自己独特的角色,那么每个服务提供哪些信息?microsoft-ds可以获取哪些信息,netbios-ssn可以获取哪些信息?

  • 我对 SMB 和 NetBIOS 之间的关系是否正确?或者它们实际上是两个单独的协议,只是因为它们实现了类似的目标?一个依赖另一个吗?

Tho*_*hor 42

让我们试着把它当作一个旅程,在那里你和我都站着学习它是如何工作的!

1. 两种服务都需要吗?如果没有,与运行单一服务相比有什么好处吗?

根据您的操作系统和环境这两种服务都不是必需的

SMB (服务器消息块)

服务器消息块,其现代方言称为通用 Internet 文件系统,作为应用层网络协议运行,主要用于提供对文件、打印机、串行端口的共享访问以及网络上节点之间的其他通信。...

服务器消息块协议可以以多种方式在会话上运行(或更低)的网络层:

  • 直接通过 TCP,端口 445
  • 通过 NetBIOS API,它又可以在多种传输上运行:
    • 在 UDP 端口 137、138 和 TCP 端口 137、139 上 – 请参阅 TCP/IP 上的 NetBIOS
    • 在几个传统协议上,例如 NBF(错误地称为 NetBEUI)。

引用维基百科关于服务器消息块的文章

在 Windows 上,SMB可以直接通过 TCP/IP运行,而无需TCP/IP 上的 NetBIOS。正如您所指出的,这将使用 port 445

一般来说,在其他系统上,您会使用 port 找到服务和应用程序139。基本上来说,这意味着 SMB 与NetBIOS over TCP/IP一起运行,其中,在堆栈方面,如果您将其想象为 OSI 模型,则 SMB 位于 NetBIOS 之上。

这是来自 samba.org 的 Richard Sharpe 的可视化。

显示 SMB 和 NetBIOS 的 OSI 模型

这是一个稍微调整的版本,以说明您如何在基于 Windows 的系统上想象这一点。

带有惊人绘图的 OSI 模型,指示跳过 NetBIOS

1.a 如果两者都需要,有什么好处吗?

唯一的“好处”——它不是真正的好处,而是一个要求——是通过 NBT 的 SMB(TCP/IP 上的 NetBIOS),您实际上将能够与更多的 SMB 实现进行通信.

2.什么样的信息/服务执行netbios-ssnmicrosoft-ds提供?

*我的快速猜测是,虽然netbios-ssn只提供了 NetBIOS API,包括通过端口的 NBT(TCP/IP 上的 NetBIOS)139。在另一方面,microsoft-ds提供了直接承载SMB通过端口445。*

对于 Windows 2000,Microsoft 认为可以改进这一点。他们为相同的服务添加了端口 445。在端口 445 上,SMB 直接通过 TCP 运行。唯一的区别是客户端跳过 NetBIOS 会话(保存一次往返)然后协商、验证、安装等。

检查网卡的属性。高级 IP 设置中的某处有一个复选框“启用 TCP 上的 NetBIOS”。激活它,您的计算机将使用端口 139。取消激活该选项,系统将要使用 445。

...

  • 端口 139: SMB -> NetBIOS -> TCP
  • 端口 445: SMB -> .... -> TCP

来源Wireshark Q&A 的 packethunter

3、SMB和NetBIOS是什么关系;它们是分开的,一个依赖另一个吗?

SMB 确实依赖NetBIOS 与不支持通过 TCP/IP 直接托管 SMB 的设备进行通信。

NetBIOS完全独立于SMB。它是 SMB 和其他技术可以使用的 API,因此 NetBIOS 不依赖于 SMB。

NetBIOS (网络基本系统)

...它提供与 OSI 模型的会话层相关的服务,允许不同计算机上的应用程序通过局域网进行通信。作为严格的 API,NetBIOS 不是网络协议。...

...在现代网络中, NetBIOS 通常通过TCP/IP (NBT) 协议上的NetBIOS 在 TCP/IP 上运行。这导致网络中的每台计算机都具有对应于(可能不同的)主机名的 IP 地址和 NetBIOS 名称。...

引用:维基百科关于 NetBIOS 的文章

如您所见,关系为Application -> SMB -> NetBIOS -> (TCP/IP, others)

  • 这是一篇博客文章,解释了哪些应用程序或服务仍然需要 NetBIOS:http://blogs.msmvps.com/acefekay/2013/03/02/do-i-need-netbios/ (3认同)