Dela via


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:

  1. Klienten och servern upprättar en NetBIOS-session.
  2. Klienten och servern förhandlar om Microsoft SMB Protocol-dialekten.
  3. Klienten loggar in på servern.
  4. Klienten ansluter till en resurs på servern.
  5. Klienten öppnar en fil på resursen.
  6. 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.