Question about GPRS and maximum packet size

C

Canon EOS

Hi,

I just wrote an application for PocketPC 2003, or to be exact, my newly
bought Mini O2. There is a TcpClient on the O2, while server application on
a PC.

If run using WiFi adapter connecting to its public IP (Server on PC), it
works.... without any flaw... except initial connection is abit slow like 2
seconds compare to direct private LAN WiFi. And it work.....

The problem arise when I am using GPRS. I found while receiving the packet
half way, the functions terminated and was catched with errors.

So I am interested to know if there is any untold maximum packet size for
GPRS? If so, I will re-write some sub logic to transmit my data by multiple
of smaller blocks.

If you are curious, my original packets are relatively small, around
3kb~12kb.... It is why I did not write the code to send via multiple small
blocks. And it prove to work on WiFi. So it must be something to do with
GPRS....

Hope some GPRS gurus here can give some lights.....

Thanks for reading...
 
W

William Bates

Canon EOS,

Under GPRS the initial LCP (link control protocol) negotiation agrees on
a MRU (maximum receive unit). This is the maximum size of *any* data
packet. Most GPRS networks have a MMU of about 1.5k, but can be any
value, up to 65535, that is negotiated (I have seen it down as small as
800 bytes). Remember that data has to be "escaped" within the packet,
which does have some overhead.

Although I haven't tested it, I would expect that .NET framework to
break your packet into this size, and reassemble it correctly (and
transparently) at the receiver.

If you are doing something special to the packet, especially if you are
forming it manually, you must be aware of the MRU constraint.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top