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: Guy Harris <gharris@xxxxxxxxx>
Date: Sun, 15 Aug 2004 12:04:54 -0700
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.