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]