[tor-commits] [meek/master] Reduce meek-client sessionIdLength to 8 from 32, and strip trailing '='.

dcf at torproject.org dcf at torproject.org
Fri Dec 26 23:08:27 UTC 2014


commit 4812b9a8b6c0b1798b7980d0a7f04d25dae4b396
Author: David Fifield <david at bamsoftware.com>
Date:   Thu Dec 25 21:33:41 2014 -0800

    Reduce meek-client sessionIdLength to 8 from 32, and strip trailing '='.
    
    This reduces the encoded length of a session ID from 44 bytes down to
    12. If we have 1000 simultaneous users, and they're all idle and polling
    at 5 requests/s, then this change saves 1000*(44-12)/5 = 6.4 KB/s.
    According to https://trac.torproject.org/projects/tor/ticket/12778, the
    header length is about 413 bytes, so the shorter session ID saves about
    7% in the header.
---
 meek-client/meek-client.go |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/meek-client/meek-client.go b/meek-client/meek-client.go
index 862f154..c02c784 100644
--- a/meek-client/meek-client.go
+++ b/meek-client/meek-client.go
@@ -42,6 +42,7 @@ import (
 	"net/url"
 	"os"
 	"os/signal"
+	"strings"
 	"syscall"
 	"time"
 )
@@ -54,7 +55,7 @@ const (
 	// long-lived session. We split a TCP stream across multiple HTTP
 	// requests, and those with the same session ID belong to the same
 	// stream.
-	sessionIdLength = 32
+	sessionIdLength = 8
 	// The size of the largest chunk of data we will read from the SOCKS
 	// port before forwarding it in a request, and the maximum size of a
 	// body we are willing to handle in a reply.
@@ -249,7 +250,7 @@ func genSessionId() string {
 	if err != nil {
 		panic(err.Error())
 	}
-	return base64.StdEncoding.EncodeToString(buf)
+	return strings.TrimRight(base64.StdEncoding.EncodeToString(buf), "=")
 }
 
 // Callback for new SOCKS requests.





More information about the tor-commits mailing list