close

Blok komunikatów serwera

Skocz do nawigacji Skocz do wyszukiwania

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