我正在对我的网络中的不同类型的文件传输进行一些速度测试。
我注意到 Windows 文件传输(SMB)比 FTP、HTTP 和其他类型的协议慢。
我认为这可能与持久连接有关。
我有几个问题,不只是一个。
SMB 文件传输是否使用持久连接?
SMB 文件传输是否一次发送一个数据包并等待相关的 ACK?或者他们是否执行类似 HTTP 流水线的操作?
有什么办法我可以自己找到这些信息吗?(微软的网站没有帮助。)
答案1
其中一些事情取决于中小企业你所说的。有很多不同的方言和“风味”。有关 SMB/CIFS 的整本书——你谈论的是一个相当广泛的话题。
原始的 SMB 方言通过 TCP/IP 在客户端和服务器之间通过单个 TCP 连接发送命令。没有“流水线”功能。
SMBv2 增加了流水线功能,减少了命令的总数并简化了协议,并且总体上减少了导致潜在连接性能不佳的协议的来回特性。
实施 CIFS是有关原始 SMB 协议的优秀资源。对于 SMBv2,我首先会查看微软的协议文档。从 Samba 角度来看,其他一些资源包括:
- 探索 SMBv2 协议
- http://ftp.samba.org/pub/samba/slides/samba-smb2.pdf
- https://wiki.samba.org/index.php/Samba3/SMB2
SMB3 增加了很多功能也更多。Technet 上的 Windows Server 博客有一些有关 SMBv3 功能的详细信息。