Der Server Message Block

Netzwerkprotokolle SMB 3 und SMB 2 im Detail

SMB regelt die grundlegende Kommunikation der Datei- und Druckdienste im Netzwerk. In den aktuellen Windows-Betriebssystemen 8 und Server 2012 ist die neue Version 3 des SMB-Protokolls enthalten. Wie sich diese von Dialekten der SMB-Version 2 und früheren unterscheidet, erläutert dieser Beitrag.

SMB steht für Server Message Block. Dabei handelt es sich um ein Protokoll, in dem die Kommunikation für Datei- und Druckdienste definiert ist. Ursprünglich wurde SMB von IBM entwickelt; 1983 kam die erste Version heraus. Seither stammen die meisten Erweiterungen zum Protokoll von Microsoft. Der Betriebssystemhersteller nutzt SMB heute in allen Windows-Versionen:

Das SMB-Protokoll kann jedoch auch über Betriebssystemgrenzen hinweg gelesen werden. Das GNU-Projekt Samba macht's möglich - seit 1992. Mit dieser Software werden Windows-Dienste wie Active Directory sowohl für Unix- als auch für Linux-Server und -Clients geöffnet. War es in den ersten 15 Jahren vergleichsweise schwierig, das Protokoll zu durchschauen, ist das seit 2007 dank der Europäischen Union keine große Herausforderung mehr: Microsoft hat auf Druck der EU den proprietären Code des SMB-Protokolls veröffentlicht.

Voraussetzungen für die Kommunikation via SMB

Damit über SMB kommuniziert werden kann, müssen drei Voraussetzungen gegeben sein: Erstens muss ein Transportprotokoll vorhanden sein. Das kann entweder TCP oder NetBIOS over TCP sein. Die SMB-3.0-Version unterstützt optional auch Remote Direct Memory Access. RDMA wird ab Windows Server 2012 supportet. Damit ist der direkte Zugriff auf den Speicher eines anderen Rechners möglich; das Betriebssystem bleibt dabei außen vor. RDMA wird übrigens nicht nur von Windows unterstützt. Auch Red Hat und Oracle besitzen die erforderlichen Schnittstellen.

Die zweite Voraussetzung für SMB ist eine zugrunde liegende lokale Ressource. Das kann zum Beispiel ein Dateisystem auf dem Server sein, das Dateien oder Druckerobjekte bereitstellt.

Drittens müssen sowohl der Server als auch die Clients einfache und geschützte GSS-API-Übertragung beherrschen. Die genauen Spezifikationen haben Mitarbeiter von Microsoft und Sun Microsystems bereits 2005 im RFC 4178 umrissen Microsoft selbst hat den Mechanismus außerdem im Microsoft Software Developer Network beschrieben. Die GSS-API greift dabei zumeist auf Kerberos oder das Authentifikationsprotokoll von NT-LAN-Manager zurück.