我正在做一些速度testing,在我的networking中使用不同types的文件传输。
我注意到,Windows文件传输(SMB)比FTP,HTTP和其他types的协议慢。
我在想,这可能与持续的连接有关。
我有几个问题,而不仅仅是一个。
SMB文件传输是否使用持续连接?
SMB文件传输一次发送一个数据包,并等待一个不相关的ACK? 还是他们做了像HTTPstream水线?
有没有一种方法可以为我自己find这些信息? (微软的网站是没有帮助的。)
其中一些事情取决于您所谈论的SMB的版本。 有许多不同的方言和“口味”。 已经有关于SMB / CIFS的整本书 – 你在谈论一个相当广泛的话题。
通过TCP / IP的原始SMB方言通过客户端和服务器之间的单个TCP连接发送命令。 没有“stream水线”function。
SMBv2增加了stream水线function,减less了命令的总数并简化了协议,并且通常减less了协议的前后性质,从而导致潜在连接的性能下降。
实施CIFS是一个很好的资源:最初的SMB协议。 对于SMBv2,我首先要看微软的协议文档 。 从Sambaangular度来看,其他一些资源是:
SMB3也增加了更多的function。 Technet上的Windows Server博客提供了有关SMBv3function的一些详细信息 。