SMB/CIFS – How to Verify Data Integrity

cifsfile-servernetwork-sharesambaserver-message-block

I'm in the middle of setting up a new fileserver on my network, and can't decide which file-transfer protocol to use. Ensuring that any data transferred to/from the server isn't corrupted in transit is my highest priority, since I'll be transferring large amounts of data to/from the server. I'd also prefer SMB for it's integration with Active Directory.

I've read that whilst most protocols relying on TCP are protected by it's checksum algorithm, small amounts of data can still be corrupted (IPv6 apparently doesn't even use TCP checksums).

What I would like to know, is if files transferred via SMB can be protected in a manner similar to rsync? Does SMB have a checksum feature? Does encrypting the transferred data reduce the likelyhood of corruption?

Best Answer

Yes, all SMB dialects support message signing which is a kind of a checksum that guaranties data integrity. You need to check that your server forces (requires) message signing and your client machines support signing (most if them do). Take into consideration that transfer speed may be significantly less with MS.