What is maximum SMB2 IOCTL(FSCTL_GET_SHADOW_COPY) response size.
Hemanth Thummala
hemanth.thummala at gmail.com
Sun Jan 18 23:13:02 MST 2015
Hi Richard,
Here is the exchange.
1) Initially client asked for number of copies. Buffer size if 16 here.
SMB2 (Server Message Block Protocol version 2)
SMB2 Header
Ioctl Request (0x0b)
StructureSize: 0x0039
Function: FSCTL_GET_SHADOW_COPY_DATA (0x00144064)
GUID handle File:
Max Ioctl In Size: 0
Max Ioctl Out Size: 16
Flags: 0x00000001
.... .... .... .... .... .... .... ...1 = Is FSCTL: True
In Data: NO DATA
Offset: 0x00000078
Length: 0
Out Data: NO DATA
Offset: 0x00000078
Length: 0
2) Server responded with 1730 volumes and informed client it requires ~86K
buffer to send the response.
SMB2 (Server Message Block Protocol version 2)
SMB2 Header
Ioctl Response (0x0b)
StructureSize: 0x0031
unknown: 0000
Function: FSCTL_GET_SHADOW_COPY_DATA (0x00144064)
GUID handle File:
In Data: NO DATA
Offset: 0x00000070
Length: 0
Out Data
Offset: 0x00000070
Length: 16
Num Volumes: *1730*
Num Labels: 0
Count: *86506*
Label:
Label:
Label: [ Null ]
3) Client requested back with 86K buffer to get the entire list.
SMB2 (Server Message Block Protocol version 2)
SMB2 Header
Ioctl Request (0x0b)
StructureSize: 0x0039
Function: FSCTL_GET_SHADOW_COPY_DATA (0x00144064)
GUID handle File:
Max Ioctl In Size: 0
Max Ioctl Out Size: *86518*
Flags: 0x00000001
.... .... .... .... .... .... .... ...1 = Is FSCTL: True
In Data: NO DATA
Offset: 0x00000078
Length: 0
Out Data: NO DATA
Offset: 0x00000078
Length: 0
..
There were quite a few TCP segments carrying the snapshot details to client.
Client acknowledged few.
...
After a while client disconnected the session.
SMB2 138 [TCP ZeroWindow] [TCP ACKed unseen segment] Tree Disconnect
Request
Thanks,
Hemanth.
On Sun, Jan 18, 2015 at 10:01 PM, Richard Sharpe <
realrichardsharpe at gmail.com> wrote:
> On Sun, Jan 18, 2015 at 9:55 PM, Hemanth Thummala
> <hemanth.thummala at gmail.com> wrote:
> > Hi,
> >
> > We are using samba 3.6.12+ stack. We are implemented windows previous
> > version(shadow copies) support with new VFS module.
> >
> > On one of our nodes, there are huge number(~2K) of snapshots and we
> trying
> > to send them(as list) as part of IOCTL response for
> FSCTL_GET_SHADOW_COPY.
> > Response size is coming around 90K. Client is facing an issue in
> receiving
> > the huge response packet. After receiving around 65K data( calculated
> > acknowledged TCP segments), client returning TCP zero size recv window
> > error followed by connection reset. Client behavior is same irrespective
> of
> > version. I have tested on win 7, windows 8 and win2K12 server.
> >
> > Would like to know if there is any limit on this IOCTL response. Client
> > negotiated 64K as max transaction size but this is the request buffer
> size
> > that server can accept. Did not find any documentation about SMB2 client
> > limits.
> >
> > We couldn't verify this against windows as windows supports only 512 VSS
> > copies in back end. So it will never need to send more than 512 snapshots
> > to client.
>
> What does the MaxOutputResponse field in the request show? That is a
> 32-bit field.
>
> --
> Regards,
> Richard Sharpe
> (何以解憂?唯有杜康。--曹操)
>
More information about the samba-technical
mailing list