Blok komunikatów serwera
Server Message Block (SMB) to protokół , używany głównie przez systemy Microsoft Windows , głównie do udostępniania plików , drukarek , portów szeregowych i komunikacji różnego rodzaju między różnymi węzłami sieci . Zawiera również uwierzytelniony mechanizm komunikacji międzyprocesowej .
Historia
SMB został wynaleziony przez Barry'ego Feigenbauma w IBM , ale najczęściej używana wersja została mocno zmodyfikowana przez Microsoft .
Pierwotnie protokół został zaprojektowany do działania w oparciu o NetBIOS , chociaż może również działać bezpośrednio na TCP / IP od czasu jego implementacji w Windows 2000 .
Kiedy firma Sun Microsystems ogłosiła WebNFS , firma Microsoft uruchomiła w 1998 roku inicjatywę wywołania wspólnego internetowego systemu plików SMB (CIFS) i wprowadziła kilka ulepszeń, w tym obsługę dowiązań symbolicznych , obsługę dużych plików i możliwość działania bez obsługi NetBIOS .
Ze względu na znaczenie protokołu SMB, niezbędnego do współdziałania z platformą Microsoft Windows , narodził się projekt Samba , który stanowi darmową implementację służącą zapewnieniu kompatybilności SMB z systemami operacyjnymi innych firm.
Implementacja
Podejście klient-serwer
SMB działa w oparciu o podejście klient - serwer , w którym klient wysyła swoje żądania, a serwer odpowiednio odpowiada. Jedna sekcja protokołu jest przeznaczona specjalnie do dostępu do systemu plików , dzięki czemu klienci mogą wysyłać żądania do serwera plików, ale istnieją inne wyspecjalizowane sekcje do komunikacji międzyprocesowej. Protokół SMB został zoptymalizowany do użytku w sieci lokalnej , ale może być również używany przez Internet .
Serwery SMB udostępniają swoje systemy plików i inne zasoby klientom w sieci. Klienci mogą mieć własne dyski , które nie są publicznie dostępne i nadal uzyskują dostęp do udostępnionego systemu plików i drukarek serwera, i jest to podstawowy sposób korzystania z protokołu.
Wydajność
Protokół SMB jest często uważany za protokół, który wymaga dużego wykorzystania przepustowości , ponieważ każdy klient powiadamia o swojej obecności transmisję do całej sieci. W rzeczywistości SMB nie korzysta z emisji, jest używany przez NetBIOS do lokalizowania dostępnych serwerów w okresowych odstępach czasu. Jest to akceptowalne w sieciach zawierających mniej niż 20 hostów , ale ruch rozgłoszeniowy może powodować problemy w miarę zwiększania się liczby podłączonych komputerów. Problem ten można złagodzić, wykorzystując WINS , protokół lokalizacji usług: wykorzystuje bardziej zaawansowany system rejestracji i centralizacji żądań usług, ale oznacza wzrost złożoności utrzymania sieci.
Zmiany Microsoft
W celu uproszczenia interfejsu do korzystania z protokołu firma Microsoft dodała kilka funkcji do swojej implementacji SMB w porównaniu z oryginalną koncepcją: na przykład druga wersja NTLM została opracowana, ponieważ pierwsza (pochodząca z oryginalnej specyfikacji SMB) była używana Szyfrowanie danych w standardzie DES ( Data Encryption Standard ) w zbyt skomplikowany sposób.
Użyteczne Miejsca
Na szczególną uwagę zasługuje mechanizm komunikacji międzyprocesowej zawarty w SMB. Dzięki temu dostarczane są nazwane potoki , za pomocą których zaimplementowany jest mechanizm uwierzytelniania oraz implementacja Microsoft DCE/RPC (znana jako MSRPC ).
Protokół SMB jest również używany jako podstawa rozproszonego systemu plików firmy Microsoft .
Alternatywne wersje i implementacje
- Samba , to darmowa implementacja protokołu SMB i rozszerzenia Microsoft; zawiera serwer i klienta wiersza poleceń
- Samba TNG to widelec Samba
- Linux zawiera dwie implementacje klienta SMB działające poprzez VFS , zapewniające dostęp do serwera SMB przez standardowe API
- FreeBSD , NetBSD i MacOS zawierają implementacje klienta SMB dla odpowiednich systemów VFS
- Advanced Server for Unix (AS/U) to port kodu serwera SMB zawarty w systemie Windows NT 3.51 for Unix , sprzedawany przez AT&T głównym dystrybutorom systemu Unix
- Cascade (lepiej znany jako PC-Netlink ), firmy Sun Microsystem, jest portem AS/U: Udostępnienie kodu zajęło firmie Sun dwa lata, ze względu na słabą jakość oryginalnego portu
- Veritas Software wdrożyło SMB
- Operacja Santa Cruz z kolei przyniosła AS / U i opracowała VisionFS , niezależną od Microsoft implementację SMB opracowaną w odniesieniu do Samby
- Network Appliance ma własną implementację serwera SMB
- Sharity , z Objective Development , jest klientem SMB dla Uniksa
- JCIFS to implementacja SMB w Javie
- RTSMB to całkowicie napisana od podstaw implementacja SMB w ANSI C , niezależna od implementacji Microsoft i Samba, przeznaczona dla systemów wbudowanych
- CIFS9000 firmy HP to implementacja SMB oparta na Samba 2.2 wyprodukowana dla systemu operacyjnego HP-UX