Speedtest / Speedtest.net shows a lower throughput through ProxySG

book

Article ID: 166939

calendar_today

Updated On:

Products

ProxySG Software - SGOS

Issue/Introduction

From our observation, Speedtest determines the bandwidth by downloading several image files, from smaller to larger ones. If the bandwidth does not hit a certain threshold, it will not download larger files to determine the high bandwidth.

The ProxySG may reuse the server-side port if the client-side connection is being reused. It has been observed that there are Speedtest servers that do not respond to the TCP-SYN packet for a TCP Port that has just been closed previously. This may cause overall throughput to drop because a parallel download to determine the highest bandwidth is not possible.

No.     Time     Source                Destination           SrcPort DstPort Protocol Info
    140 10.643   172.22.222.80         61.60.224.24          3924    80      HTTP     GET /speedtest/latency.txt?x=1317882835455 HTTP/1.1
    141 10.650   61.60.224.24          172.22.222.80         80      3924    TCP      http > mpl-gprs-port [ACK]
    142 10.651   61.60.224.24          172.22.222.80         80      3924    HTTP     HTTP/1.1 200 OK  (text/plain)
    143 10.651   61.60.224.24          172.22.222.80         80      3924    TCP      http > mpl-gprs-port [FIN, ACK]
    144 10.651   172.22.222.80         61.60.224.24          3924    80      TCP      mpl-gprs-port > http [ACK]
    145 10.651   192.168.1.111         172.22.222.80         8080    51029   HTTP     HTTP/1.1 200 OK  (text/plain)
    146 10.651   172.22.222.80         61.60.224.24          3924    80      TCP      mpl-gprs-port > http [FIN, ACK]
    147 10.657   61.60.224.24          172.22.222.80         80      3924    TCP      http > mpl-gprs-port [ACK]
    148 10.852   172.22.222.80         192.168.1.111         51029   8080    TCP      51029 > http-alt [ACK] Seq=2445777519 Ack=356004117 Win=16187 Len=0
    150 10.868   172.22.222.80         192.168.1.111         51029   8080    HTTP     GET http://speed.mirror.tw/speedtest/random350x350.jpg?x=1317882838646&y=2 HTTP/1.1
    151 10.869   172.22.222.80         61.60.224.24          3924    80      TCP      [TCP Port numbers reused] mpl-gprs-port > http [SYN]
    153 10.937   192.168.1.111         172.22.222.80         8080    51029   TCP      http-alt > 51029 [ACK]
    154 13.837   172.22.222.80         61.60.224.24          3924    80      TCP      mpl-gprs-port > http [SYN]
    155 13.843   61.60.224.24          172.22.222.80         80      3924    TCP      http > mpl-gprs-port [SYN, ACK]
    156 13.843   172.22.222.80         61.60.224.24          3924    80      TCP      mpl-gprs-port > http [ACK]
    157 13.843   172.22.222.80         61.60.224.24          3924    80      HTTP     GET /speedtest/random350x350.jpg?x=1317882838646&y=2 HTTP/1.1
    158 13.849   61.60.224.24          172.22.222.80         80      3924    TCP      http > mpl-gprs-port [ACK]
    159 13.850   61.60.224.24          172.22.222.80         80      3924    HTTP     HTTP/1.1 200 OK
    160 13.850   192.168.1.111         172.22.222.80         8080    51029   HTTP     HTTP/1.1 200 OK

Frame 142: 340 bytes on wire (2720 bits), 340 bytes captured (2720 bits)
Hypertext Transfer Protocol
    HTTP/1.1 200 OK
    Date: Thu, 06 Oct 2011 06:33:48 GMT
    Server: Apache/2.0.52 (Red Hat)
    Last-Modified: Sat, 29 Jul 2006 00:31:22 GMT
    ETag: "39800d-a-8c604a80"
    Accept-Ranges: bytes
    Content-Length: 10
    Connection: close            <<<<<
    Content-Type: text/plain; charset=UTF-8

Frame 145: 371 bytes on wire (2968 bits), 371 bytes captured (2968 bits)
Hypertext Transfer Protocol
    HTTP/1.1 200 OK
    Date: Thu, 06 Oct 2011 06:33:48 GMT
    Server: Apache/2.0.52 (Red Hat)
    Last-Modified: Sat, 29 Jul 2006 00:31:22 GMT
    ETag: "39800d-a-8c604a80"
    Accept-Ranges: bytes
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 10
    Proxy-Connection: Keep-Alive    <<<<<
    Connection: Keep-Alive          <<<<<
    Age: 0

Resolution

The following CPL should address the problem by preserving persistency with the user computer.

<Proxy>
    request.header.referer=speedtest.net http.client.persistence(preserve)

 

For testing purposes, we can also use the following :

<Proxy>
    http.client.persistence(preserve)