| Reply | « Previous Thread | Next Thread » |
|
Hello,
I am curious about something. Since over the air transmissions can have intermittant packet loss, how does SNAP mobile handle this? Is it built into the SNAP mobile API or does each developer have to implement their own solution? |
|
Packet loss is managed by TCP protocol. SnapMobile and other Mobile Multiuser servers use this protocol for communicating. Due to Operator restrictions and proxies, UDP isn't possible.
So best is your connection, best is your bandwith and the lag is lower. Mik |
|
Yes, a packet is sent through the connection by TCP (or HTTP, which sits on top of TCP anyway) to the SNAP server, which then handles sending it to the other clients. The question is, do the SNAP servers handle making sure the packet gets to the client? I ask this because the packets are not sent to the other client, they are sent to the SNAP server which delivers them by proxy. Does the SNAP server resend a packet in the case that it is lost while "in air" between the carrier provider and the phone, or is that the carrier's responsibility (or worse, the game developer's)?
I know that the SNAP API will tell us if there was a problem getting from the phone to the SNAP server, but I'm curious on how the rest is handled...
Last edited by cutedge : 2006-04-03 at 04:16.
|
|
You don't have to take care of packet loss, it is TCP job:
http://en.wikipedia.org/wiki/Transmi...ntrol_Protocol |
|
Yes, I know that TCP normally handles it. What I'm curious about is what happens when a packet gets lost "in air". I ask this because I am seeing packet loss in testing.
If the SNAP server isn't getting any sort of acknowledgement besides the TCP ack that says that the packet got to the carrier provider, then it would be up to the developer to implement a solution, which seems like a bad idea since it would require sending the first packet from phone to carrier and then from carrier to phone (with the snap server in the middle), and then sending an acknowledgement back from phone to carrier and then from carrier to phone, which would take way too much time. Feel free to correct me if i'm wrong, but I don't think the underlying TCP connection takes care of this issue. |
|
The mechanism of TCP is to send all packets in the right order to the client/server. So yes, you have different ACk/SYn/Waiting states like you suppose. It takes more times than a RAW UDP, and more time/bandwidth is taken if connection is bad. The only packet loss is from a server error, a timeout, a client disconnection. But in this case, you need to relogin, as docs say. Like when you browse / retreive emails on your phone, if connection is good you get all your data...
Using other protocols like UDP Socket, or RTP isn't possible mainly due to operator network limitation. A gateway filter out not standard TCP/HTTP/WAP/WSP requests in most case. And ports are locked. So fullbandwidth multiplayer isn't for today...Maybe WIFI connection will change that. Mik |
| Reply | « Previous Thread | Next Thread » |
| Thread Tools | Search this Thread |
|---|---|
| Thread | Thread Starter | Forum | Replies | Last Post |
|---|---|---|---|---|
| Packet generator for GPRS/UMTS | adamfli | Symbian Networking & Messaging | 0 | 2005-10-21 16:31 |
| Packet generator for GPRS | adamfli | Mobile Java Networking & Messaging & Security | 0 | 2005-10-21 16:29 |
| l2cap packet queue | AnaemicVampire | Mobile Java Networking & Messaging & Security | 0 | 2005-02-15 05:45 |
| Symbian OS C++/PJava Socket Connection loss if no network coverage? | suppu | Symbian Networking & Messaging | 0 | 2003-04-02 19:33 |
| What is the expected Response Msg for an invalid Packet Number? | mhamilto | General Messaging | 0 | 2002-11-29 14:46 |