Sdílet prostřednictvím


Scénář výměny paketů protokolu MICROSOFT SMB

Toto téma obsahuje příklad výměny paketů protokolu SMB microsoftu mezi klientem a serverem. Následující kroky jsou přehledem tohoto procesu:

  1. Klient a server navazují relaci rozhraní NetBIOS.
  2. Klient a server vyjednávají dialekt protokolu SMB společnosti Microsoft.
  3. Klient se přihlásí k serveru.
  4. Klient se připojí ke sdílené složce na serveru.
  5. Klient otevře soubor ve sdílené složce.
  6. Klient čte ze souboru.

Nejprve je klientem se serverem navázáno plně duplexní připojení TCP. Potom klient sestaví a odešle paket požadavku na relaci NetBIOS přes připojení TCP. Pokud byl paket správně naformátován, server pak vrátí paket, který obsahuje zprávu s potvrzením, že relace byla vytvořena. Potom klient odešle na server první pakety protokolu MICROSOFT SMB.

paket 1: SMB_COM_NEGOTIATE
směr : Klient na server
Popis: klient požaduje, aby server vyjednal dialekt protokolu MICROSOFT SMB. Seznam řetězců identifikující dialekty, se kterými může klient pracovat, je součástí paketu.
paket 2: SMB_COM_NEGOTIATE
směr : Server do klienta
Popis: Server odpoví na požadavek klienta, aby identifikoval dialekt protokolu MICROSOFT SMB, který se bude v relaci používat. Vrácený paket obsahuje také 8bajtů náhodný řetězec, který se použije v dalším kroku k ověření klienta během procesu přihlášení.
paket 3: SMB_COM_SESSION_SETUP_ANDX
směr : Klient na server
Popis: Tento paket obsahuje informace o možnostech klienta, takže tento paket musí být odeslán i v případě, že server implementoval pouze zabezpečení na úrovni sdílené složky.
paket 3: SMB_COM_SESSION_SETUP_ANDX
směr : Server do klienta
Popis: Pokud server přijme výzvu nebo odpověď, zahrne se do paketu vráceného klientovi platné UID. Pokud není akceptovaná, server vrátí kód chyby v tomto paketu a odepře přístup.
paket 4: SMB_COM_TREE_CONNECT_ANDX
směr : Klient na server
Popis: Klient požádá o přístup ke sdílené složce. Paket obsahuje plně zadanou cestu sdílené složky ve formátu UNC.
paket 5: SMB_COM_TREE_CONNECT_ANDX
směr : Server do klienta
Popis: Pokud je udělen přístup ke sdílené složce, vrátí server 16bitové ID stromu (TID), které odpovídá sdílené složce v tomto paketu. Pokud sdílená složka neexistuje nebo uživatel nemá dostatek přihlašovacích údajů pro přístup ke sdílené složce, server vrátí kód chyby v tomto paketu a odepře přístup ke sdílené složce.
paket 6: SMB_COM_OPEN_ANDX
směr : Klient na server
Popis: klient požaduje, aby server otevřel soubor v přístupové sdílené složce jménem klienta. Tento paket obsahuje název souboru, který se má otevřít.
paket 7: SMB_COM_OPEN_ANDX
směr : Server do klienta
Popis: Pokud je udělen přístup k souboru, server vrátí ID souboru požadovaného souboru. Pokud soubor neexistuje nebo uživatel nemá dostatek přihlašovacích údajů pro přístup k souboru, server vrátí kód chyby v tomto paketu a odepře přístup k souboru.
paket 8: SMB_COM_READ_ANDX
směr : Klient na server
Popis: Klient požádá server o načtení dat z otevřeného souboru jménem klienta a vrácení těchto dat klientovi. ID souboru získaného klientem při otevření souboru je součástí tohoto paketu, aby bylo možné určit, ze kterého otevřeného souboru by měl server číst data.
paket 9: SMB_COM_READ_ANDX
směr : Server do klienta
Popis: Server vrátí požadovaná data souboru v tomto paketu. Tady je nepravděpodobné, že byl udělen přístup k serveru, sdílené složce a souboru. Může k tomu dojít v některých situacích: například pokud se přístup ke sdílené složce změní mezi časem otevření souboru a časem čtení ze souboru.

Poznámka

Pokud implementujete CIFS, která nepodporuje oznámení o změnách, systém Windows nemůže zachovat nevyrovnaný popisovač systému souborů a připojení SMB může bez předchozího upozornění odejít.