Protokół
SMB jest protokołem typu klient-serwer, a więc opiera się na systemie zapytań generowanych przez klienta i odpowiedzi od serwera. Wyjątkiem od tej zasady jest mechanizm tzw. oplocków (opportunistic lock), w którym to serwer może wygenerować „nieproszony” przez klienta sygnał informujący o zerwaniu wcześniej założonego oplocka (blokady).
Niemniej jednak, chociaż sam protokół ma charakter klient-serwer, to z racji tego, że najczęściej maszyny klienckie dysponują także funkcjami serwerowymi (udostępnianie plików) to sieci SMB nabierają charakteru i funkcji sieci peer-to-peer.
Historia
SMB a inne protokoły
Protokół SMB wykorzystuje do działania dwa protokoły niższych rzędów - protokół warstwy sesji NetBIOS (który sam wykorzystuje jako warstwę transportu TCP/IP albo DECnet albo IPX/SPX) lub protokół nierutowalny NetBEUI będący protokołem warstw sieci, transportu i sesji. Systemy Windows potrafią korzystać z SMB, a co za tym idzie z NetBIOS, zarówno poprzez TCP/IP (obecnie najpopularniejsza metoda), jak i poprzez IPX/SPX/NetBEUI (stosowany tylko w małych sieciach). Samba instalowana na systemach Unix korzysta tylko z SMB poprzez TCP/IP. (Patrz: model OSI)
Identyfikacja w sieci
Wersje
Pierwotna wersja protokołu - Core Protocol - użyta w pierwszej implementacji PC NETWORK PROGRAM 1.0 umożliwiała podstawowe operacje takie jak:
- otwieranie i zamykanie plików,
- otwieranie i zamykanie drukarek,
- odczyt i zapis z/do plików,
- tworzenie i kasowanie plików/katalogów,
- przeszukiwanie katalogów,
- ustawianie i odczytywanie atrybutów plików,
- blokowanie i udostępnianie wybranych fragmentów plików.
Z czasem powstawały kolejne: Core Plus Protocol, Lan Manager 1.0 (LANMAN 1.0), LANMAN 2.0, LANMAN 2.1 (Windows for Workgroups), CIFS 1.0/ NT Lan Manager 1.0.
Implementacje
Najczęściej z implementacją protokołu SMB spotykamy się przy okazji styczności z systemem Windows. Każda wersja począwszy od Windows 3.11 for Workgroups zawiera implementację SMB.
Jednak nie są to jedyne implementacje. Wśród innych należy wymienić także: Samba (dla systemów Unix, open source) oraz produkty komercyjne dla systemów SCO UNIXware, SCO OpenServer, Solaris, HP-UX, OS/2, z/OS (dwie implementacje: DFS/SMB i open-source'owa Samba) i innych.
Bezpieczeństwo
SMB oferuje dwa modele bezpieczeństwa:
- share level - polegający na zabezpieczeniu zasobu i znajdujących się w nim plików hasłem. Znajomość samego hasła wystarcza do uzyskania dostępu. Jedyny model np. w Windows for Workgroups, Windows 95/98/Me oraz jako jedna z możliwości w Sambie.
- user level - oparty na zabezpieczaniu konkretnych plików poprzez prawa dostępu przyporządkowane konkretnym użytkownikom. Znajomość użytkownika i hasła jest warunkiem do uzyskania dostępu do zasobu. Model ten pojawił się w LANMAN-ie 1.0. Jedyny model np. w Windows z linii NT czyli Windows NT 3.51/4.0/2000/XP/2003 oraz jako jedna z możliwości w Sambie.
Inną kwestią dotyczącą bezpieczeństwa jest podział na grupy robocze oraz domeny.
- Grupa robocza to zespół komputerów, w którym każdy komputer trzyma „u siebie” swoje poufne dane, zaś proces identyfikacji, uwierzytelnienia i autoryzacji przebiega lokalnie. Rozwiązanie preferowane w sieciach domowych i w małych sieciach firmowych.
- Domena natomiast prezentuje podejście scentralizowane do kwestii przechowywania poufnych danych - w każdej domenie funkcjonuje kontroler domeny (jeden główny oraz ewentualnie kilka zapasowych), który je przechowuje. Procesy identyfikacji, uwierzytelniania i autoryzacji przeprowadzane są więc centralnie. Rozwiązanie preferowane w większych sieciach firmowych i korporacyjnych.
Porty
Wykorzystywane porty sieciowe: