ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
July 17th, 2024 | 10:00am-11:55am SGT (UTC+8) | Online

Ethereal-dev: RE: [Ethereal-dev] Is Skinny Segmented?

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

From: "Rami AlHasan" <Rami.AlHasan@xxxxxxxxxxxx>
Date: Mon, 16 Aug 2004 09:19:14 +0200
Thanks for the answer.

But, please, if I have a skinny message that is segmented between two
TCP packets, how can I tell "from the first packet" that I have a
completion segment in another packet?

Is there helping info in TCP header that informs me of the existence of
the pending bytes in the second packet? If yes, what are they?

Or, from the skinny header info, I get the message length, and If the
remaining bytes in the current packet are less than the message length,
then I will conclude that the difference bytes are sent segmented in the
next packet.

Which is the correct way, or both?

Also, I think that in both cases I have to use the TCP sequence number?

Please help,
Rami.AlHasan

-----Original Message-----
From: ethereal-dev-bounces@xxxxxxxxxxxx
[mailto:ethereal-dev-bounces@xxxxxxxxxxxx] On Behalf Of Guy Harris
Sent: Sunday, August 15, 2004 9:05 PM
To: Ethereal development
Subject: Re: [Ethereal-dev] Is Skinny Segmented?

Rami AlHasan wrote:

>I know that a TCP packet may contain N number of Cisco Skinny PDUs, but

>please does anybody know whether Cisco Skinny PDUs are sent segmented 
>over multiple TCP packets or not?

It is certainly possible for that to happen - it's possible for any 
protocol, as nothing makes it impossible for a TCP implementation to 
send a one-byte segment even if there's more data to be sent, and a 
Skinny implementation.  Whether any implementations do that is another 
matter.

If I were implementing a protocol that runs atop TCP, I would make no 
assumptions about what TCP does with the sequence of bytes I passed it, 
other than that it will either deliver the bytes, in order, with no 
loss, or will report to me that the connection timed out.  I would make 
sure that record boundaries can be found by scanning the stream (e.g., 
by putting a message length in the header of a record), and would, when 
reading a message from a TCP connection, read the bytes of the message 
until I found the entire message - rather than, for example, assuming 
that a single read from the connection will deliver only one record, or 
that, if it delivers multiple records, all the records will be complete 
within the data that I read.

_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev