rhomobile / rhoelements-issues

Issues area for RhoElements
0 stars 0 forks source link

SSL handshake logic needs an updated ruby patch to address performace issues with MC9190 WM 6.5 #100

Open dhummel opened 9 years ago

dhummel commented 9 years ago

This is a proposed enhancement reported by Hector Meza for Costco to improve performance concerns they have on an MC9190 device. The following was submitted to Zendesk Support and has been transferred here as it was deemed a product enhancement request.

Hector's Ticket "we have been having some performance issues with Costco on the WM 6.5 MC9190’s and believe that it is related to the SSL handshake logic.

We were able to find a Ruby patch that address it but did not see it implemented in Rho 4.1.39 or Rho 5.0.

The patch / changeset discussed at https://redmine.ruby-lang.org/issues/5341 would allow Rho to reuse SSL sessions, shortening the handshake.

The SSL handshake in Net::HTTP is operating according to the specification, but it's not taking advantage of the ability to reuse an already-established session ("SSL Session reuse" / "abbreviated SSL handshake").

The patch provides a significant boost in performance when connecting to the same SSL server for the second time, and has no downsides. The first connection will always go through the whole handshake, but any subsequent connection within a reasonable time (configured on the server) has the opportunity to reuse the same SSL session (as long as the server supports it). This is especially important on Windows Mobile (which is where Costco is going to roll out this application), since establishing the SSL session is quite expensive.

The impact of the patch can be easily measured with a tool like Wireshark. Make a connection to a server and see the number of packets and the time it takes for the connection to be established, then make a second connection to the same server. With the patch, you will see fewer packets exchanged and a faster response.

We would like to see the patch added to Rho 4.1.39 as Costco has not been able to upgrade to 5.1 due to application size limitations of the older MC9190 HW."