On Thu, 6 May 2010, Dan White wrote:
loss of tcp connection != loss of state.
Correct. There's a further equation: loss of network connectivity != loss of TCP session != loss of state There is no reason to lose a TCP session because of a short-term loss of network connectivity. Although it is a myth that TCP/IP was designed to survive a nuclear war (although I heard it c.1983 at the Internet engineering meeting in Oberphaffenhoffen), an important design goal of TCP/IP is to be robust at the Internet and Transport layers in the face of link layer outages. Specifically, a link/network layer outage is NOT supposed to trigger a disconnect at the internet/transport layers (TCP/IP), much less the data layers (session, presentation, application). I frequently amaze the young'uns with demonstrations of sessions that live past a physical disconnect of the network. I'll even hibernate one of the boxes and remove its battery. They act as if some magic trick has been performed, rather than seeing TCP/IP working the way that it was designed to work with software that follows the specifications.
In my own review of several IMAP RFCs, it's clear that connection problems have been anticipated and several options have been standardized, such as with uidvalidity and condstor (rfc4551) (among others), which allow a client to quickly resynchronize its state with the server in the face of networking issues.
Yes. But it's also important not to lose sight of the desirability of not losing state to begin with. The IMAP state resynchronization facilities are best seen as a means to reacquire state after an intentional disconnect: the user exited his email client, shut down his laptop, etc. As error recovery, they are properly the last resort rather than the first action to be taken. Above all else, state should not be glibly tossed out in the assumption that error recovery will resychronize. There's too much of the thinking of "my computer is giving me a problem, so I'll reboot it. I don't want to wait for a shutdown, so I'll just pull out the power plug." It may be that rebooting is necessary when you have a problem. It may even be that pulling out the power plug is necessary. But those are last resorts. They are not routine measures, much less the very first thing that you try! -- Mark -- http://panda.com/mrc Democracy is two wolves and a sheep deciding what to eat for lunch. Liberty is a well-armed sheep contesting the vote. _______________________________________________ Imap-uw mailing list [email protected] http://mailman2.u.washington.edu/mailman/listinfo/imap-uw
