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

Reply via email to