Quelle est la différence entre CIFS et SMB ?

J’ai reçu pas mal de questions, d’administrateurs système débutants comme chevronnés, à propos des systèmes de fichiers en réseau et des protocoles de partage de fichiers. Une des questions qui revient souvent est la suivante : « Quelle est la différence entre CIFS et SMB ? »

Dans ces domaines, il existe de nombreuses séries de concepts qui peuvent avoir la préférence des uns ou des autres, et la terminologie diversifiée correspondante peut entraîner une certaine confusion ; je vais donc résumer l’essentiel de façon, je l’espère, suffisamment claire.

Allons-y.

SMB

Le sigle SMB signifie “Server Message Block”. Il s’agit d’un protocole de partage de fichiers inventé par IBM et qui reste utilisé depuis le milieu des années 80. Il a été conçu pour permettre aux ordinateurs de lire et d’écrire des fichiers sur un hôte distant via un système de réseau local (LAN). Les répertoires situés sur les hôtes distants et mis à disposition grâce au protocole SMB sont nommés « partages ».

CIFS

CIFS est le sigle de “Common Internet File System”. CIFS est un dialecte de SMB. Plus clairement, CIFS est une mise en œuvre particulière du protocole SMB, créée par Microsoft.

Et donc, quelle est la différence ?

Dans la plupart des cas, lorsqu’on dit qu’on utilise SMB ou CIFS, on parle de la même chose. Les deux versions du protocole sont équivalentes tant du point de vue intellectuel que du point de vue pratique : une machine client « parlant » le CIFS peut dialoguer avec un serveur parlant le SMB et vice versa. Pourquoi ? Parce que CIFS est une forme de SMB.

Lequel a-t-on intérêt à utiliser?

Au point où nous en sommes, vous avez tout intérêt à parler systématiquement de SMB.

Alors vous vous dites peut-être, « Mais si ces 2 protocoles sont strictement équivalents, pourquoi ne faut-il plus mentionner que SMB ? »

Deux raisons majeures :

1) La mise en œuvre CIFS de SMB est désormais rarement utilisée. En coulisses, la plupart des systèmes de stockage modernes ont abandonné CIFS, ils utilisent SMB 2 ou SMB 3. Dans l’univers Windows, SMB 2 a été implémenté en standard à partir de Windows Vista (2006) et SMB 3 est implanté dans Windows 8 et Windows Server 2012.

2) CIFS a une connotation péjorative chez les puristes. SMB 2 et SMB 3 sont des mises à jour majeures par rapport au « dialecte » CIFS, et les architectes en charge du stockage, qui sont les plus directement concernés par les protocoles de partage de fichiers, n’apprécient pas l’inculture révélée par l’emploi de cet ancien sigle. C’est un peu comme appeler « secrétaire » une assistante administrative.

En guise de bonus

Il y a deux autres concepts qui méritent aussi d’être éclaircis dans le domaine des protocoles de partage de fichiers : Samba et NFS.

Samba est une mise en œuvre de SMB écrite pour UNIX par un informaticien du nom de Andrew Tridgell. Samba a été conçu pour permettre aux clients Windows d’accéder aux répertoires et fichiers UNIX en utilisant le protocole SMB, donnant aux utilisateurs l’impression qu’ils accèdent à un serveur Windows. Samba fonctionne désormais sur différentes plateformes et est fourni en standard avec la plupart des distributions Unix.

NFS est le sigle de “Networked File System”. Ce protocole a été développé par Sun Microsystems et son objet est fondamentalement le même que celui de SMB (c’est-à-dire donner accès aux systèmes de fichiers présents sur le réseau comme s’ils étaient locaux), mais NFS est de nature bien différente, ce qui signifie que les clients NFS ne peuvent pas dialoguer directement avec les serveurs SMB.

Autres ressources