Microsoft SMB Protocol Packet Exchange-scenario
Det här avsnittet ger ett exempel på ett Microsoft SMB Protocol-paketutbyte mellan en klient och en server. Följande steg är en översikt över processen:
- Klienten och servern upprättar en NetBIOS-session.
- Klienten och servern förhandlar om Microsoft SMB Protocol-dialekten.
- Klienten loggar in på servern.
- Klienten ansluter till en resurs på servern.
- Klienten öppnar en fil på resursen.
- Klienten läser från filen.
Först upprättas en fullständig duplex-TCP-anslutning av klienten med servern. Sedan skapar och skickar klienten ett NetBIOS-sessionsbegäranspaket via TCP-anslutningen. Om paketet har formaterats korrekt returnerar servern sedan ett paket som innehåller ett meddelande som bekräftar att sessionen har upprättats. Därefter skickar klienten de första Microsoft SMB Protocol-paketen till servern.
paket 1: SMB_COM_NEGOTIATE Riktning: klient till server Beskrivning: Klienten begär att servern förhandlar om Microsoft SMB Protocol-dialekten. En lista med strängar som identifierar de dialekter som klienten kan arbeta med ingår i paketet. |
paket 2: SMB_COM_NEGOTIATE Riktning: Server till klient Beskrivning: Servern svarar på klientens begäran om att identifiera den Microsoft SMB Protocol-dialekt som ska användas i sessionen. Det returnerade paketet innehåller också en slumpmässig sträng på 8 byte som ska användas i nästa steg för att autentisera klienten under inloggningsprocessen. |
paket 3: SMB_COM_SESSION_SETUP_ANDX Riktning: klient till server Beskrivning: Det här paketet innehåller information om klientfunktioner, så det här paketet måste skickas även om servern bara har implementerat säkerhet på resursnivå. paket 3: SMB_COM_SESSION_SETUP_ANDX Riktning: Server till klient Beskrivning: Om utmaningen/svaret godkänns av servern inkluderas ett giltigt UID i paketet som returneras till klienten. Om det inte godkänns returnerar servern en felkod i det här paketet och nekar åtkomst. |
paket 4: SMB_COM_TREE_CONNECT_ANDX Riktning: klient till server Beskrivning: Klienten begär åtkomst till resursen. Paketet innehåller den fullständigt angivna sökvägen för resursen i UNC-format. |
paket 5: SMB_COM_TREE_CONNECT_ANDX Riktning: Server till klient Beskrivning: Om åtkomst till resursen beviljas returnerar servern det 16-bitars träd-ID (TID) som motsvarar resursen i det här paketet. Om resursen inte finns eller om användaren inte har tillräckliga autentiseringsuppgifter för att komma åt resursen returnerar servern en felkod i det här paketet och nekar åtkomst till resursen. |
paket 6: SMB_COM_OPEN_ANDX Riktning: klient till server Beskrivning: Klienten begär att servern öppnar en fil på den anslutna resursen för klientens räkning. Det här paketet innehåller namnet på filen som ska öppnas. |
paket 7: SMB_COM_OPEN_ANDX Riktning: Server till klient Beskrivning: Om åtkomst till filen beviljas returnerar servern fil-ID:t för den begärda filen. Om filen inte finns eller om användaren inte har tillräckliga autentiseringsuppgifter för att komma åt filen returnerar servern en felkod i det här paketet och nekar åtkomst till filen. |
paket 8: SMB_COM_READ_ANDX Riktning: klient till server Beskrivning: Klienten begär att servern läser data från den öppna filen för klientens räkning och returnerar dessa data till klienten. Det fil-ID som hämtas av klienten när filen öppnades ingår i det här paketet för att identifiera vilken öppnad fil servern ska läsa data från. |
paket 9: SMB_COM_READ_ANDX Riktning: Server till klient Beskrivning: Servern returnerar begärda fildata i det här paketet. Ett fel här är osannolikt med tanke på att åtkomst till servern, resursen och filen har beviljats. Det kan dock inträffa i vissa situationer: till exempel om åtkomsten till en resurs ändras mellan tiden då filen öppnas och den tid den läss från. |
Not
Om du implementerar en CIFS som inte stöder ändringsmeddelanden kan Windows inte behålla ett utestående handtag till filsystemet och SMB-anslutningen kan försvinna utan föregående meddelande.