Le protocole SMB (Server Message Block) est un protocole de partage de fichiers client/serveur développé par IBM à la fin des années 1980 pour décrire la structure des ressources réseau partagées telles que les répertoires, les fichiers, les imprimantes et les ports série. Il s'agit d'un protocole de requête-réponse.

Le protocole SMB décrit l'accès au système de fichiers et la manière dont les clients peuvent demander des fichiers. Il décrit également sa communication interprocessus. Tous les messages SMB partagent un format commun. Ce format utilise un en-tête de taille fixe, suivi d'un paramètre et d'un composant de données des tailles variables.

Les messages SMB peuvent :

Le partage de fichiers et les services d'impression SMB sont devenus la base des réseaux Microsoft. Avec l'introduction de la série de logiciels Windows 2000, Microsoft a modifié la structure sous-jacente pour l'utilisation du protocole SMB. Dans les versions précédentes des produits Microsoft, les services SMB utilisaient un protocole autre que TCP/IP pour implémenter la résolution de noms. Depuis Windows 2000, tous les produits Microsoft utilisent le nommage DNS qui permet aux protocoles TCP/IP de prendre en charge directement le partage des ressources SMB, comme le montre la Figure 1. Le processus d'échange de fichiers SMB entre les ordinateurs Windows est représenté à la Figure 2.

Contrairement au partage de fichiers pris en charge par le protocole FTP, les clients établissent une connexion à long terme aux serveurs. Une fois la connexion établie, l'utilisateur du client peut accéder aux ressources résidant sur le serveur comme si elles étaient situées localement sur l'hôte client.

Les systèmes d'exploitation LINUX et UNIX fournissent également une méthode de partage des ressources avec les réseaux Microsoft à l'aide d'une version de SMB nommée SAMBA. Les systèmes d'exploitation Apple Macintosh prennent en charge eux aussi le partage des ressources via le protocole SMB.