Protokół SMB (ang. Server Message Block) jest protokołem udostępniania plików w trybie klient / serwer, który został opracowany przez firmę IBM w późnych latach osiemdziesiątych. Opisuje on strukturę współdzielonych zasobów sieciowych, takich jak katalogi, pliki, drukarki i porty szeregowe. Jest to protokół typu żądanie-odpowiedź.

Protokół SMB opisuje dostęp do systemu plików i sposób generowania żądań plików przez klientów. Opisuje również komunikację międzyprocesową protokołu SMB. Wszystkie komunikaty SMB mają wspólny format. Ten format używa nagłówka o stałym rozmiarze, po którym następują składniki parametrów i danych o zmiennej wielkości.

Komunikaty SMB mogą:

Usługi drukowania oraz współdzielenia plików za pomocą SMB stanowią podstawę sieci Microsoft. Wraz z wprowadzeniem oprogramowania dla systemu operacyjnego Windows 2000, Microsoft zmienił strukturę systemu na potrzeby protokołu SMB. W poprzednich wersjach produktów Microsoft, usługi SMB nie używały protokołów TCP/IP do procesu odwzorowywania nazw. Począwszy od Windows 2000, wszystkie kolejne produkty Microsoft używają protokołu DNS, co umożliwia protokołom TCP/IP bezpośrednio wspierać współdzielenie zasobów, jak pokazano na rys. 1. Proces wymiany plików pomiędzy komputerami PC z systemem Windows w oparciu o SMB został pokazany na rys. 2.

W przeciwieństwie do protokołu FTP, klienci nawiązują długoterminowe połączenia z serwerem. Po ustanowieniu połączenia, użytkownik klienta ma dostęp do zasobów na serwerze tak, jakby zasoby były lokalne dla hosta klienta.

Systemy operacyjne LINUX oraz UNIX umożliwiają współdzielenie zasobów z sieciami Microsoft za pomocą oprogramowania SAMBA, którego budowa oparta jest na protokole SMB. Systemy operacyjne Apple Macintosh również obsługują współdzielenie zasobów używając protokołu SMB.