| US 7,483,943 B2 | ||
| Reliable messaging using clocks with synchronized rates | ||
| Gopala Krishna R. Kakivaya, Sammamish, Wash. (US); and David E. Langworthy, Kirkland, Wash. (US) | ||
| Assigned to Microsoft Corporation, Redmond, Wash. (US) | ||
| Filed on Sep. 21, 2004, as Appl. No. 10/946,386. | ||
| Prior Publication US 2006/0064464 A1, Mar. 23, 2006 | ||
| Int. Cl. G06F 15/16 (2006.01); G06F 7/04 (2006.01); G06F 7/58 (2006.01); H04L 9/00 (2006.01); H04L 9/32 (2006.01); G06K 9/00 (2006.01); G06K 19/00 (2006.01) | ||
| U.S. Cl. 709—203 [709/206; 713/171; 726/9] | 10 Claims |

| 1. At a destination computer system that is network connectable along with one or more other computer systems, including a
source computer system, to a network, the destination computer system and at least the source computer system having synchronized
clock rates, the synchronized clock rates between the source computer system and the destination computing system causing
the source computer system and the destination computer system to perceive the movement of time at virtually the same rate,
a method for reliably processing a message, the method comprising:
an act of receiving a first copy of a message from the source computer system, the first copy of the message having a message
ID and a TTL value, the message ID identifying the position of the message in an interaction between a message source and
the destination computer system, the TTL value indicating the length of time before a source side countdown timer, set prior
to sending the first copy of the message, expires, expiration of the source side countdown time indicating when the source
computer system is to terminate retransmissions of the message, the TTL value set to a plurality of the roundtrip latency
between the source computer system and the destination computer system, the TTL value set to support a corresponding plurality
of retransmissions of the message;
an act of setting a destination side countdown timer to expire at the destination computer system after the length of time
indicated in the TTL value, the destination computer system configured to retain the message ID until the countdown timer
expires or a corresponding ACKACK is received, the destination computer system knows from expiration of the destination side
countdown timer that the source computer system all ready considers the message to be lost based on the source computer system
and the destination computer system having synchronized clock rates;
an act of detecting expiration of the countdown timer;
in response to detecting expiration of the countdown timer:
an act of determining that retransmission of the message has already been terminated at the sending computer system due to
prior expiration of the sending side countdown timer and based on the computer system and the destination computer system
having synchronized clock rates; and
an act of updating an interaction cache to indicate that the message has been processed;
an act of receiving a second copy of the message subsequent to processing the first copy of the message, the second copy of
the message having the message ID; and
an act of discarding the second copy of the message based on the interaction cache indicating that a message having the message
ID was previously processed.
|