Ethereal-users: Re: [Ethereal-users] TDS unreassembled packets diagnosis

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Thu, 7 Aug 2003 14:02:14 -0700
On Thursday, August 7, 2003, at 10:40 AM, Tom Jordan wrote:

Not being an expert in TDS packet decodes I would appreciate some help. I have captured a sql client - server conversation of TDS packets that appears to have quite a few retransmissions from the server to the client. The first odd frame is a TDS Response Packet from the server to the client that ethereal says is a Short Frame. Then the server sends the same packet again which is marked as an Unreassembled Packet.
Is it the *same* packet (with the same TCP sequence number), or are 
they separate packets in the TCP data stream?
The client sends a TCP ACK. Then the server sends another TDS Unreassembled Packet followed by an identical packet marked as a TDS Response Packet.
Or, rather, the server sends a packet that Ethereal reports as an 
unreassembled packet.
Any TDS packet that requires more than one TCP segment will be reported 
as an unreassembled packet if Ethereal hasn't reassembled it from the 
TCP segments that compose it; by default, it will attempt to do that, 
but there may be reasons why it didn't do so.
One reason might be that you've turned those options off; select 
Preferences from the Edit menu, open up the list of protocols in the 
dialog box that pops up, and select "TDS" and make sure both options 
are turned on.
Another reason might be that the full contents of the packet weren't 
captured, which is usually reported as a "Short Frame".  In the packet 
reported as a Short Frame, check the "Frame" line in the protocol tree 
pane (middle pane) - if the "bytes captured" value is less than the 
"bytes on wire" value, that's what happened, and you need to capture 
the full packet (don't use "Limit each packet to {N} bytes" in 
Ethereal, don't use the "-s" option in Tethereal, *do* use the "-s" 
option in tcpdump/WinDump and give either 65535 or, in newer versions 
of tcpdump/WinDump, 0 as the argument to "-s").
If neither of those are the case, we'd probably have to see the raw 
binary capture file to diagnose this.