2

I am doing some speed tests with different types of file transfers in my network.

I have noticed that windows file transfers (SMB) are slower than FTP, HTTP, and other types of protocols.

I was thinking that is might have to do with a persistent connection.

I have a few questions, not just one.

  1. Do SMB File Transfers use a persistent connection?

  2. Do SMB File transfers send one packet at a time and wait for an asoociated ACK? or do they do something like HTTP pipelining?

  3. Is there a way I can find this information out for myself? (Microsoft's site is not helpful.)

Nathan McCoy
  • 200
  • 2
  • 11

1 Answers1

4

Some of these things depend on the version of SMB you're talking about. There are a number of different dialects and "flavors". There have been entire books written about SMB/CIFS-- you're talking about a fairly broad topic.

The original SMB dialect, over TCP/IP, sends commands across a single TCP connection between the client and the server. There is no "pipelining" functionality.

SMBv2 added pipelining functionality, decreased the overall number of commands and simplified the protocol, and generally reduced the protocol's back-and-forth nature that contributed to poor performance on latent connections.

Implementing CIFS is a good resource re: the original SMB protocol. For SMBv2, I'd look first to Microsoft's protocol documentation. Some other resources, from the Samba perspective, are:

SMB3 added a lot more functionality, too. The Windows Server Blog on Technet has some details about SMBv3 functionality.

Evan Anderson
  • 141,881
  • 20
  • 196
  • 331
  • 1
    last but not least, [SMBv3 introduces multichannel](http://blogs.technet.com/b/josebda/archive/2012/06/28/the-basics-of-smb-multichannel-a-feature-of-windows-server-2012-and-smb-3-0.aspx) which is using multiple simultaneous TCP connections for a single session. – the-wabbit Feb 28 '13 at 16:17
  • Thank you!I will look at the links you gave. One other thing, Is the version of SMB operating system dependent? or can it be "upgraded"? – Nathan McCoy Mar 01 '13 at 10:28
  • In Windows the available SMB versions is OS-dependent. SMBv2 launched w/ Windows Vista, and SMBv3 with Windows 8. With non-Windows OS's you are much more likely to be able to load whatever SMB server and client software you want. – Evan Anderson Mar 01 '13 at 14:09