Protokol SMB
Protokol SMB (Server Message Block) je protokol s velko tradicí, původně vyvinut firmou IBM ve spolupráci s Microsoftem. Dnes je díky téměř monopolnímu postavení firmy Microsoft na trhu nejpoužívanějším protokolem pro peer-2-peer komunikaci souborových serverů a klientů LAN. Protokol SMB využívají tiskové a souborové servery síťových serverů založených na operačních systémech Lan Server, OS/2 fy IBM a samozřejmě servery Microsoft. Microsoft se dále snaží prosadit tento protokol jako náhradu za protokol ftp a http.Protokol pracuje na bázi modelu Klient-Server. Server poskytuje klientům sdílené prostředky, což mohou být pevné disky, adresáře, tiskové fonty a pojmenované kanály. Tyto sdílené prostředky jsou jednoznačně identifikované díky univerzální síťové adrese UNC. Klient se stará o formulaci požadavku na tyto prostředky. Server pak zanalyzuje požadavky, zkontroluje přístupová práva klienta a na jejich základě (ne)provede požadovanou operaci a odešle odpověď. Pro zprávu přístupů ke sdíleným prostředkům jsou využívány obvykle dva přístupy:
1. Řízení přístupu na úrovni sdíleného prostředku. Přístup je umožněn všem uzlům sítě po zadání správného hesla přiřazeného prostředku na straně serveru. (=každý sdílený prostředek má své vlastní heslo, může být i více hesel pro jeden prostředek s různými úrovní práv). Po zadání hesla je klientu přidělen identifikátor NID (Network ID), pod kterým k prostředku přistupuje.
2. Řízení přístupu na uživatelské úrovni. Při připojení klientu k serveru je požadováno uživatelské jméno a heslo. Je-li korektní, je uživateli přiřazen uživatelský identifikátor UID (User ID), z něhož server odvozuje přístupová práva ke sdíleným prostředkům v síti. Může nastat také situace, kdy se serverem komunikuje najednou více procesů od stejného uživatele. Pak k jejich rozlišení slouží dvojice identifikátorů PID (Process ID) a MID (Multiple ID).
Formát paketu (bloku) SMB
SMB blok s požadavkem klienta a odpovědí serveru je téměř shodný, liší se akorát v datové části a délce vyrovnávací paměti.SID | S | C | RC | AH | RC | RS | NID | PID | UID | MID | PrC | PrCd | BL | B |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1B | 3B | 1B | 1B | 1B | 2B | 15B | 2B | 2B | 2B | 2B | 1B | 2B | 2B | 1B |
Význam jednotlivých polí SMB paketu
Označení | Význam |
---|---|
SID (SMB Identification) | Identifikace protokolu SMB |
S (Server) | Identifikace dialektu serveru SMB |
C (Command) | Funkční kód volané služby SMB |
R (Return class) | Třída návratového kódu SMB |
AH (Ahregister procesoru) | Výsledek v registru AH procesoru |
RC (Return Code) | Návratový kód operace |
RS (Reserve) | Rezerva do budoucna |
NID (Net path ID) | Identifikátor sdíleného prostředku |
PID (Process ID) | Identifikátor procesu klienta |
UID (User ID) | Identifikátor uživatele |
MID (Multiplex ID) | Multiplexní ID klienta |
PrC (Parametr Count) | Počet volitelných parametrů volané funkce |
PrCd (Parametr Code) | Kód parametru volané funkce |
BL (Buffer Lenght) | Délka datové části SMB bloku |
B (Buffer) | První slabika datové části bloku SMB |
Autor: Robert Habrman