让我们尝试通过这段旅程,您我俩都站起来学习这是如何工作的!
1.两项服务都必要吗?如果没有,运行单一服务有什么好处吗?
根据您的操作系统和环境,这两种服务都是不必要的。
SMB (服务器消息块)
服务器消息块,其现代方言被称为通用Internet文件系统,是一种应用程序层网络协议,主要用于提供对文件,打印机,串行端口的共享访问,以及网络上节点之间的各种通信。...
的服务器消息块协议可以以多种方式在会话上运行(或更低)的网络层:
- 直接通过TCP端口445
- 通过NetBIOS API,它又可以在多种传输方式上运行:
- 在UDP端口137、138和TCP端口137、139上–请参阅TCP / IP上的NetBIOS
- 在诸如NBF(不正确地称为NetBEUI)之类的几种旧协议上。
Quote:关于服务器消息块的WikiPedia文章
在Windows上,SMB可以直接在TCP / IP上运行,而无需通过TCP / IP的NetBIOS。如您所指出的,它将使用port 445
。
一般来说,在其他系统上,您可以使用port查找服务和应用程序139
。从本质上讲,这意味着SMB与基于TCP / IP的NetBIOS一起运行,从堆栈的角度来看,如果要通过OSI模型来想象SMB在NetBIOS之上。
这是来自samba.org的Richard Sharpe的图表。
这是一个经过稍微调整的版本,以说明您如何在基于Windows的系统上进行想象。
1.a如果两者都是必要的,有没有好处?
唯一的“好处”-并不是真正的好处,而是一个要求-就是通过NBT上的SMB(TCP / IP上的NetBIOS),您实际上将能够与更多的SMB实现进行通信。
2.什么样的信息/服务执行netbios-ssn
和microsoft-ds
提供?
*我的快速猜测是,尽管netbios-ssn
仅通过端口提供了NetBIOS API,包括NBT(基于TCP / IP的NetBIOS)139
。在另一方面,microsoft-ds
提供了直接承载的SMB通过端口445
。*
使用Windows 2000,Microsoft认为可以改进。他们为相同的服务添加了端口445。SMB在端口445上直接通过TCP运行。唯一的区别是客户端跳过NetBIOS会话(节省一次往返),然后协商,认证,安装等。
检查网卡的属性。在“高级IP设置”中的某个位置,有一个复选框“通过TCP启用NetBIOS”。激活它,您的计算机使用端口139。停用该选项,系统要使用445。
...
- 端口139:
SMB -> NetBIOS -> TCP
- 端口445:
SMB -> .... -> TCP
资料来源:Wireshark问答中的packethunter
3. SMB与NetBIOS有什么关系?他们是分开的,一个依靠另一个吗?
SMB 确实依赖 NetBIOS与不支持通过TCP / IP直接托管SMB的设备进行通信。
NetBIOS完全独立于SMB。它是SMB和其他技术可以使用的API,因此NetBIOS不依赖于SMB。
NetBIOS (网络基本系统)
...它提供与OSI模型的会话层相关的服务,从而允许独立计算机上的应用程序通过局域网进行通信。作为严格的API,NetBIOS不是网络协议。...
...在现代网络中, NetBIOS通常通过TCP / IP上的 NetBIOS(NBT)协议在TCP / IP上运行。这导致网络中的每台计算机都具有与(可能不同的)主机名相对应的IP地址和NetBIOS名称。...
Quote:有关NetBIOS的WikiPedia文章
如您所见,该关系为Application -> SMB -> NetBIOS -> (TCP/IP, others)
。