<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Thanks!! Edwin.<br>
I read the RFC part regarding masking data from client to server and that a random key is generated out of possible 32 bit values to mask the data. The same is not applicable from server to client data.<br>
I don't have any active connection extension, so going through the code of libwebsocket_write(), I still do not expect overhead of 4 ms just because we are masking and framing the data everytime we send. Can you please further clarify on the mechanism for client
 packet send when libwebsocket_write() which can add extra overhead. The handshake mechanism is done only at the beginning and from the capture data , it doesn't seems heavy either.<br>
<br>
Regards<br>
Hemant<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF210886"><font color="#000000" face="Tahoma" size="2"><b>From:</b> Andy Green [extracats@googlemail.com] on behalf of Edwin van den Oetelaar [andy.green@linaro.org]<br>
<b>Sent:</b> Wednesday, November 13, 2013 11:12 AM<br>
<b>To:</b> Hemant Kumar<br>
<b>Cc:</b> libwebsockets@ml.libwebsockets.org<br>
<b>Subject:</b> Re: [Libwebsockets] libwebsocket vs regular-sockets performance<br>
</font><br>
</div>
<div></div>
<div>
<div dir="ltr">Websockets are not just streaming sockets like TCP they add an extra layer and Framing.
<div>Please read : <a href="http://tools.ietf.org/html/rfc6455" target="_blank">http://tools.ietf.org/html/rfc6455</a></div>
<div><br>
</div>
<div>Quoting from the RFC:</div>
<div><br>
</div>
<div>o  adds a web origin-based security model for browsers<br>
<br>
o  adds an addressing and protocol naming mechanism to support<br>
      multiple services on one port and multiple host names on one IP<br>
      address<br>
<br>
o  layers a framing mechanism on top of TCP to get back to the IP<br>
      packet mechanism that TCP is built on, but without length limits<br>
<br>
o  includes an additional closing handshake in-band that is designed<br>
      to work in the presence of proxies and other intermediaries</div>
<div><br>
</div>
<div>Have a good day,</div>
<div>Edwin van den Oetelaar</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Nov 13, 2013 at 8:03 PM, Hemant Kumar <span dir="ltr">
<<a href="mailto:andy.green@linaro.org" target="_blank">andy.green@linaro.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div>
<div style="direction:ltr; font-size:10pt; font-family:Tahoma">Hi<br>
<br>
I am performing some benchmarking study for traffic flow in between libwebsocket client -server and regular tcp client-server. My tcp client is making writes  to blocking sockets.<br>
I am sending 1000 MB of char buffer. In case of regular tcp sockets, it takes Total time of 4 sec 525 ms 317 us 0 ns but in case of websockets, it takes total time of 8 sec 844 ms 365 us 832 ns.<br>
This experiment was conducted on same local machine so , in between network latency is not involved.<br>
<br>
I have couple of questions based on above observation:<br>
1. I understand that websocket is doing some protocol specific operations when we call libwebsocket_write() , it does some operations ,calls lws_issue_raw() and then calls send().<br>
My callback is sending data in chunks of 64K , even 32 K also yields the same result.<br>
I want to understand, if websocket does HTTP processing only for handshake and after that, it is supposed to muck only pre-append and post-append buffer , when we send TEXT/BINARY data, then is the overhead of protocol specific operations  add on to increase
 the time of transfer of <br>
buffer data to almost double in comparison to normal socket case.<br>
<br>
2. When I send websocket messages all filled with character lets say '5',and capture the same of wireshark, I do not see character 5 in payload of HTTP. Every time, I repeat the experiment it prints different character. When I send Binary data, (use LWS_BINARY)
 is it supposed to send just binary without any encoding and when I send LWS_TEXT, is it not supposed to send plane text. Is there some kind of encryption or encoding involved for every message sent? If so, is it base64 encoding ? Can I turn off these encoding
 of data and see what I send on wireshark capture?<br>
<br>
Thanks<span class="HOEnZb"><font color="#888888"><br>
Hemant<br>
</font></span></div>
</div>
<br>
_______________________________________________<br>
Libwebsockets mailing list<br>
<a href="mailto:Libwebsockets@ml.libwebsockets.org" target="_blank">Libwebsockets@ml.libwebsockets.org</a><br>
<a href="http://ml.libwebsockets.org/mailman/listinfo/libwebsockets" target="_blank">http://ml.libwebsockets.org/mailman/listinfo/libwebsockets</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</body>
</html>