It cannot be emphasized more clearly: TCP is a byte stream protocol.
It sends a stream of bytes.  There is NO WAY in TCP to indicate in
an out-of-band way that there is a 'record break'.  You MUST either
dedicate a byte value to "end of record" or have a more complicated
scheme of delimiting your records.  You will not understand TCP
until you fully understand this statement.

While SSL does impose a transmission block structure in order to do
encryption, it is my belief that it does so at its own time and for
its own reasons.

THERE WILL BE NO CORRELATION BETWEEN YOUR TCP WRITE CALLS AND THE
   TCP SEGMENTS.  TCP WILL BREAK SEGMENTS WHEN AND WHERE IT WANTS TO.

It is my belief that there will be no correlation between your SSL
   write calls and either the SSL encryption blocks or the TCP
   segments that send the encrypted data.

That is, separation of stream data into blocks at the three levels

* Application level
* Encryption level
* Physical media segmentation level

will have no correlation between each other and can be overlapped
in uncontrollable ways.

On certain systems, with certain timings, there may appear to be
correlation, but you should not count on it, since as simple a
change as upgrading your network adapter from 10MHz to 100MHz
ether might COMPLETELY change the timing relationships.

--
Charles B (Ben) Cranston
mailto: [EMAIL PROTECTED]
http://www.wam.umd.edu/~zben

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to