Compress data on GPRS connection

hi all!

i have a smart-phone with CF 2.0 but it haven't umts/wi-fi connection.

i have read that the CF 2 support the gzip compression, right

so...is possible to compress all the data on gprs, send them to a server (with public ip) that decompress and send them to the final destination and the same for the answer, the server compress the answer and send it to my smart-phone that decompress the data.

so to have a faster connection and to pay less (i pay for kilobytes)



Answer this question

Compress data on GPRS connection

  • ABS123

    so..if it should work

    the problem is how compress all the packet...

    if i set a proxy that point on the same phone on a specific port (127.0.0.1:xxxxx), and on that port i set a TCPlistener i could recive all the packet

    after that i could compres each packet and send it to my server, that decompres the packet and send them to the proxy server.

    and the answer that will return from the proxy will be compress from the server and send to my application on the phone that will decompress them and send the decompressed packet back to the specific port.

    it should work or there are errors


  • j2associates

    AndrewBadera wrote:
    I don't believe you want to compress the entire packet, just the data you're sending ... the packet itself has to remain whole, as defined by the tcp protocol, in order to make it from one networked endpoint to another.

    sure :D i meant packets as groups of data.

    so, it should work

    and how much i can gain from the compression

    40-50% less more


  • tjp1104

    Tony512 wrote:

    hi all!

    i have a smart-phone with CF 2.0 but it haven't umts/wi-fi connection.

    i have read that the CF 2 support the gzip compression, right

    so...is possible to compress all the data on gprs, send them to a server (with public ip) that decompress and send them to the final destination and the same for the answer, the server compress the answer and send it to my smart-phone that decompress the data.

    so to have a faster connection and to pay less (i pay for kilobytes)

    just like any other network communication, yes. as long as the sending and receiving ends are both using the same algorithm.

    read up on doing so for a web app here:

    http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/default.aspx#S10

    general .net usage here:

    http://msdn2.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx


  • Gagandeep Singh

    I agree with AndrewBadera

    There is one problem:
    The System.Io.Compression.GZipStream class is not available on .NET CF 2.0.

    On the Mobile device you could be using the free SharpZipLib. On the server GZipStream should be fine.



  • Andre's

     Tony512 wrote:

    so..if it should work

    the problem is how compress all the packet...

    if i set a proxy that point on the same phone  on a specific port (127.0.0.1:xxxxx), and on that port i set a TCPlistener i could recive all the packet

    after that i could compres each packet and send it to my server, that decompres the packet and send them to the proxy server.

    and the answer that will return from the proxy will be compress from the server and send to my application on the phone that will decompress them and send the decompressed packet back to the specific port.

    it should work or there are errors

    I don't believe you want to compress the entire packet, just the data you're sending ... the packet itself has to remain whole, as defined by the tcp protocol, in order to make it from one networked endpoint to another.

    if you're talking about everything you're pushing to the socket, and not over a TCP/IP packet over ethernet, then yes, compress everything before you write it into the buffer, and decompress it on the other side, after the entire communication has been received.


  • chadhowell

    ok...now i have configured my smartphone! all the connection are redirected to a specific port of the phone.

    but now i have an other problem:

    how can i skip the proxy and connect with the gprs in order to send the data to internet

    can i choose to use a specific connection (that doesn't pass through the proxy server)


  • Jeff Sholl

     Tony512 wrote:

     AndrewBadera wrote:
    I don't believe you want to compress the entire packet, just the data you're sending ... the packet itself has to remain whole, as defined by the tcp protocol, in order to make it from one networked endpoint to another.

    sure :D i meant packets as groups of data.

    so, it should work

    and how much i can gain from the compression

    40-50% less more

     

    yes it should work.

     

    and, it really depends on the type of data you're sending. I've seen gzip benchmarks running just short of 60% compression.


  • Compress data on GPRS connection