Server Message Block

Z Multimediaexpo.cz

Internetové protokoly
Aplikační vrstva
Transportní vrstva
Síťová vrstva
Linková vrstva
Fyzická vrstva

Server Message Block (SMB) je síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům a další komunikaci mezi uzly na síti. Poskytuje také autentizovaný mechanismus pro meziprocesovou komunikaci. Je využíván hlavně na počítačích s operačními systémy rodiny Windows.

Obsah

Historie

Protokol SMB vyvinul Barry Feigenbaum ve firmě IBM s cílem změnit DOSové "přerušení 33" (21h) pro přístup k lokálním souborům na síťový systém souborů. Microsoft provedl významné změny a protokol včlenil do produktu LAN Manager, který vyvíjel spolu s firmou 3Com (kolem roku 1990). Microsoft protokol dále rozvíjel ve Windows for Workgroups (1992) i dalších verzích Microsoft Windows. Projekt Samba přinesl svobodnou implementaci SMB protokolu vyvinutou pomocí reverzního inženýrství. Ve Windows Vista (vydané v roce 2007) byla představena 2. verze protokolu (Server Message Block verze 2.0).

Implementace

Protokol díky firmě Microsoft je rozšířený v oblasti komunikace souborových serverů a klientů sítí LAN. Protokol SMB využívají souborové a tiskové servery síťových operačních systémů IBM (např. LAN Server, OS/2) a Microsoft (např. LAN Manager, Windows NT). Protokol pracuje na principu klient-server. Server umožňuje klientům sítě přistupovat k tzv. sdílenům prostředkům, např. sdíleným diskům, adresářům, tiskovým frontám nebo pojmenovaným kanálům. Sdílené prostředky jsou rozpoznávány pomocí síťové adresy UNC (\\jméno_serveru\jméno_zdroje). Klientská část má za úkol definovat požadavky na sdílené prostředky serveru. Server vykonává rozbor požadavků odeslané klientem ve tvaru bloku (paketu) SMB, porovnává přístupová práva a na podkladě přístupových práv zahajuje požadovanou operaci (vytvoření adresáře, spuštení souboru atd.). Výsledek je s odpovědí poslán klientu identickým blokem SMB.

Přístup ke sdíleným prostředkům

Z pohledu serveru SMB k přístupu ke sdíleným prostředkům máme dva pohledy:

  • řízení přístupu z pohledu na úroveň sdíleného prostředku (share level),
  • řízení přístupu z pohledu na uživatelskou úroveň (user level).

V prvním případě server povoluje přístup ke sdíleným prostředkům na základě správného hesla, které je přiřazeno k jednotlivému sdílenému prostředku. Po zadání správného hesla klientem je klientu přidělen identifikátor prostředku NID (Network ID), pomocí něhož přistupuje k prostředku. V druhém případě se klient přihlašuje na server hned pomocí jména a hesla a v případě správnosti server přiřadí klientu uživatelský identifikátor UID (User ID), pomocí něhož server odvozuje přístupová práva při manipulaci se sdíleným prostředkem.

Princip komunikace

  1. Klient zasílá serveru požadavek — dochází k specifikaci parametru spojení a verzí protokolu mezi serverem a klientem.
  2. Klient odešle požadavek, ve kterém je uvedenu jméno a heslo uživatele. Pokud je server v režimu user-level, přidělí uživateli UID.

Formát paketu SMB

SID S C RC AH RC RS NID PID UID MID P PCd BL B
1B 3B 1B 1B 1B 2B 15B 2B 2B 2B 2B 1B 2B 2B 1B
Označení Význam
SID identifikace protokolu SMB
S identifikace dialektu serveru SMB
C funkční kód volané služby
R třída návratového kódu funkce SMB
AH výsledek operace v registru AH procesoru
RC návratový kód operace
RS rezerva pro budoucí rozšíření
NID identifikátor přiřazený sdílenému prostředku
PID identifikátor procesu klienta
UID identifikátor uživatele
MID multiplexní identifikátor procesu klienta
Prmct počet volitelných parametrů k volané funkci
Pc kód parametru volané funkce
Bl délka datové části SMB bloku
B první slabika datové části bloku SMB

Reference

  • Fedor Kállay, Peter Peniak: Počítačové sítě a jejich aplikace, GRADA Publishing, 2003; ISBN 80-247-0545-1