<div dir="ltr">Hello,<div><br></div><div>I'm currently developing an data transfer application using OpenSSL. The application is required to securely transfer large amounts of data over a low latency/high bandwidth network. The data being transferred lives in a 3rd part application that uses 1 MB buffer to transfer data to my application. When I hook OpenSSL into my application I notice an appreciable decline in network throughput. I've traced the issue the default TLS record size of 16K. The smaller record size causes the 3rd party application's buffer to be segmented into 4 16K buffers per write and the resulting overhead considerably slows things down. I've since modified the version of OpenSSL that I'm using to support an arbitrary TLS record size allowing OpenSSL to scale up to 1MB or larger TLS record size. Since this change, my network throughput has dramatically increased (187% degradation down to 33%). </div><div><br></div><div>I subsequently checked the TLS RFC to determine why a 16K record size was being used, and all could find was the following:</div><div><br></div><pre class="" style="font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)">length
      The length (in bytes) of the following TLSCompressed.fragment. </pre><div><span style="color:rgb(0,0,0);font-size:13.3333px">      The length MUST NOT exceed 2^14 + 1024.</span></div><div><br></div><div>The language here is pretty explicit stating that the length must not exceed 16K (+ some change).Does anyone know the reason for this? Is there a cryptographic reason why we shouldn't exceed this message size? Based on my limited experiment, it would appear that a larger record size would benefit low latency/high bandwidth networks.</div><div><br></div><div>Thanks!</div><p class="MsoNormal"><span style="color:rgb(31,73,125)"></span></p></div>