NetBIOS 和 SMB 之间的区别

NetBIOS 和 SMB 之间的区别

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

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

然而我的问题是。

  • 这两种服务是否都是必需的/比运行单一服务更有好处?据我所知,Linux 系统不运行 445 端口,而是在 139 端口上使用 Samba。在 Windows 机器上,我可以用这两个端口做在 Linux 机器上做不到的事情吗?

  • 如果每个服务都有自己独特的角色,那么它们各自提供什么信息?从 microsoft-ds 可以获得什么信息,从 netbios-ssn 可以获得什么信息?

  • 我对 SMB 和 NetBIOS 之间关系的理解正确吗?或者它们实际上是两个独立的协议,只是因为它们实现了相似的目标而相互关联?一个协议依赖于另一个协议吗?

答案1

让我们尝试将此作为一次旅程,你和我都站在那里学习这是如何运作的!

1. 两种服务都是必需的吗?如果不是,那么与运行单一服务相比有什么好处吗?

取决于您的操作系统和环境这两项服务都不是必需的

中小企业(服务器消息块)

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

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

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

引用有关服务器消息块的 WikiPedia 文章

在 Windows 上,中小企业能跑直接通过 TCP/IP,无需TCP/IP 上的 NetBIOS。正如您所指出的,这将使用端口445

一般来说,在其他系统上,你会发现使用端口 的服务和应用程序139。这基本上意味着 SMB 正在运行TCP/IP 上的 NetBIOS,其中,从堆栈角度来看,如果使用 OSI 模型来想象,SMB 位于 NetBIOS 之上。

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

显示 SMB 和 NetBIOS 的 OSI 模型

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

OSI 模型,带有令人惊叹的绘图,表明 NetBIOS 已被跳过

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

唯一的“好处”——实际上不算是好处,而只是一项要求——是使用 SMB over NBT(TCP/IP 上的 NetBIOS),您实际上能够与更多 SMB 实现进行通信。

netbios-ssn2.提供什么信息/服务microsoft-ds

*我的猜测是,虽然netbios-ssn只是提供 NetBIOS API,包括通过端口 的 NBT(TCP/IP 上的 NetBIOS)139。另一方面,microsoft-ds提供直接托管中小企业通过端口445.*

在 Windows 2000 中,微软认为可以改进这一点。他们为同一服务添加了端口 445。在端口 445 上,SMB 直接通过 TCP 运行。唯一的区别是客户端跳过 NetBIOS 会话(节省一次往返),然后进行协商、身份验证、挂载等。

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

...

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

来源Wireshark 上的 packethunter 问答

3. SMB 和 NetBIOS 之间有什么关系?它们是独立的吗?一个依赖于另一个吗?

中小企业 确实依赖在 NetBIOS 上与以下设备进行通信不支持通过 TCP/IP 直接托管 SMB

网络基本输入输出系统完全独立于中小企业。它是 SMB 和其他技术可以使用的 API,因此 NetBIOS 不依赖于 SMB。

网络基本输入输出系统(网络基础系统)

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

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

引用维基百科上有关 NetBIOS 的文章

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

相关内容