You can make a difference in the Apple Support Community!

When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.

💡 Did you know?

⏺ If you can't accept iCloud Terms and Conditions... Learn more >

⏺ If you don't see your iCloud notes in the Notes app... Learn more >

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

iPhone 3G, Fetch vs. Push - What are the differences?

I've seen quite a few postings here where otherwise smart people claim that the "Push" mail/etc synchronization used by the iPhone never transmits any data until there is something to send. Here are the facts:

*BOTH Fetch and Push ping the server.*

+Sometimes Push will even ping more often.+ Fetch always pings at a certain interval that you set. Push's interval is dynamic and changes depending on network TCP/IP connection longevity. It can vary from every few minutes to well over half an hour.

*The main difference is in how quickly the server responds.*

Fetch = Phone sends request. Server replies immediately. Wait a while. Repeat.

Push = Phone sends request with a timeout. Server replies immediately, OR when mail arrives, OR just before the timeout. Repeat.

*I'm confused. Why does Push have to ping at all? Doesn't it just magically send some kind of notification to the phone?*

Sorry, no magic in this case. The server must know your IP address to respond to, and the phone must be waiting for that response.

Mobile IP connections are volatile. Your IP address can change. The connection will be dropped by the carrier if they don't see traffic. The connection can be dropped if a firewall along the network path has a smaller timeout. If you're on EDGE and you answer a phone call, the data connection stops working as well.

Anything that interrupts the connection, means the server can't respond with a notification.

So the Push agent on the phone creates a connection and then pings over it as often as need to keep the connection alive. Push figures out the correct ping interval by whether or not it hears from the server within the last timeout period that it used.

To use an analogy: Fetch is like calling a friend every 15 minutes to see if there's any news. Push is like calling your friend, then putting them on speakerphone and waiting for them to speak. (That way, you get the news immediately.) But if they never reply, the connection automatically drops. So every once in a while you call out "Are you still there?"

Touchscreen laptop and industrial handhelds, Other OS

Posted on Jul 30, 2008 8:27 AM

Reply
4 replies

Jan 20, 2011 8:45 AM in response to SourdoughJosh

So the answer to your question would be, once again, "it depends."


Exactly.

The limiting factor is the smallest network timeout along the path from the phone to the server.

If nothing between you and the server will tear down a connection in less than, say, thirty minutes, then clearly Push will end up pinging the server less than a 15 minute Fetch and about on par with a 30 minute Fetch. And yet will get mail immediately. Win-win situation and Push will use less battery.

If something, anything, along the way times out an IP connection in less time (a firewall, a proxy, NAT, whatever), say in ten minutes... then Push must ping more often than a 15 minute Fetch.

iPhone 3G, Fetch vs. Push - What are the differences?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.