You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Joe Orton <jo...@redhat.com> on 2009/08/20 17:06:09 UTC

[users@httpd] Re: mod_ssl and Transfer-Encoding: chunked wastes ~58 bytes per chunk.

CC'ing dev@.

On Tue, Aug 18, 2009 at 09:26:24PM +0100, Alex Stapleton wrote:
> First some background. We use Apache HTTPD 2.0 over a high-latency,
> high packet loss GPRS WAN. The cost per byte is tangible. We use SSL.
> We also use Transfer-Encoding: chunked sometimes. This is a machine
> monitoring application. We are using iframe streaming to push real
> time data to operators browsers.
> 
> I have noticed after much faffing around with wireshark that httpd
> will transmit 3 Application Data fragments for each chunk in a chunked
> HTTP stream. The fragments are the HTTP chunk size, the chunk data,
> and then a CRLF. All fragments in an SSL session are rounded to the
> length of the ciphers block size. This results in the 4+2 bytes for
> the chunk frame ending up being 64 bytes of data over TCP. A waste of
> 58 bytes per chunk in this case.

Interesting observation.

It would not be correct to fix this by adding buffering in the chunk 
filter.  For a plain HTTP connection, any buffering/coalescing of 
packets is already done as necessary by the core output filter.  
Typically, a (chunk-size, data, crlf) brigade can get sent using 
writev() without requiring any copying.

Translating many small buckets into many less-small SSL app-data records 
is certainly inefficient - and that's a property of SSL, so, I think it 
would be correct to fix this by adding some buffering in mod_ssl on the 
"plaintext" side of the output filter, i.e. in ssl_io_filter_output and 
ssl_filter_write.

Any thoughts from dev@?

Regards, Joe

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


RE: mod_ssl and Transfer-Encoding: chunked wastes ~58 bytes perchunk.

Posted by "Plüm, Rüdiger, VF-Group" <ru...@vodafone.com>.
 

> -----Original Message-----
> From: Joe Orton 

> 
> Interesting observation.
> 
> It would not be correct to fix this by adding buffering in the chunk 
> filter.  For a plain HTTP connection, any buffering/coalescing of 
> packets is already done as necessary by the core output filter.  
> Typically, a (chunk-size, data, crlf) brigade can get sent using 
> writev() without requiring any copying.
> 
> Translating many small buckets into many less-small SSL 
> app-data records 
> is certainly inefficient - and that's a property of SSL, so, 
> I think it 
> would be correct to fix this by adding some buffering in 
> mod_ssl on the 
> "plaintext" side of the output filter, i.e. in 
> ssl_io_filter_output and 
> ssl_filter_write.
> 
> Any thoughts from dev@?

Sounds reasonable.

Regards

Rüdiger