Technologies, systems, and methods for ordered message delivery that avoid message races or crisscrosses between communicating nodes. For example, if Node A sends message 3 towards Node B and, shortly thereafter, Node B sends message X to Node A. Node A would like to know whether or not message X re
Technologies, systems, and methods for ordered message delivery that avoid message races or crisscrosses between communicating nodes. For example, if Node A sends message 3 towards Node B and, shortly thereafter, Node B sends message X to Node A. Node A would like to know whether or not message X reflects Node B's state after receiving message 3. If Node B received message 3 prior to sending message X, then proper state may be maintained between the nodes. But if messages 3 and X crisscrossed, or if message 3 was never properly received by Node B, then the state between the nodes may be corrupt. Technologies, systems, and methods are provided to avoid such corruption.
대표청구항▼
1. A method performed on a computing device, the method comprising sending a message that comprises a set of variables including a nonce state variable configured for identifying a current session of the computing device, a counter state variable configured for indicating a last message sent by the
1. A method performed on a computing device, the method comprising sending a message that comprises a set of variables including a nonce state variable configured for identifying a current session of the computing device, a counter state variable configured for indicating a last message sent by the computing device to a remote computing device, a remote nonce state variable configured for identifying a current session of the remote computing device as known by the computing device, and a remote counter state variable configured for indicating a last valid message received by the computing device from the remote computing device, the set of variables configured for use in detecting a message race condition. 2. The method of claim 1 where the nonce state variable is further configured to uniquely identify the current session. 3. The method of claim 1 where the counter state variable is further configured to include a monotonically increasing value that corresponds to the last sent message. 4. The method of claim 1 where a value of the remote nonce state variable indicates a last valid message received from the remote computing device, and where the value is initialized to zero. 5. The method of claim 1 where a value of the remote counter state variable indicates a last valid message received from the remote computing device. 6. The method of claim 1 where the sent message comprises a header that includes the nonce state variable, the counter state variable, the remote nonce state variable, and the remote counter state variable. 7. The method of claim 1 where the last valid message received by the computing device from the remote computing device comprises a header that includes another nonce state variable, another counter state variable, another remote nonce state variable, and another the remote counter state variable. 8. At least one computer-readable storage device comprising computer-executable instructions that, when executed by a computing device, cause the computing device to perform actions for detecting crisscrossed messages, the actions comprising sending a message that comprises a set of variables including a nonce state variable configured for identifying a current session of the computing device, a counter state variable configured for indicating a last message sent by the computing device to a remote computing device, a remote nonce state variable configured for identifying a current session of the remote computing device as known by the computing device, and a remote counter state variable configured for indicating a last valid message received by the computing device from the remote computing device, the set of variables configured for use in detecting a message race condition. 9. The at least one computer-readable storage device of claim 8 where the nonce state variable is further configured to uniquely identify the current session. 10. The at least one computer-readable storage device of claim 8 where the counter state variable is further configured to include a monotonically increasing value that corresponds to the last sent message. 11. The at least one computer-readable storage device of claim 8 where a value of the remote nonce state variable indicates a last valid message received from the remote computing device. 12. The at least one computer-readable storage device of claim 8 where a value of the remote counter state variable indicates a last valid message received from the remote computing device. 13. The at least one computer-readable storage device of claim 8 where the sent message comprises a header that includes the nonce state variable, the counter state variable, the remote nonce state variable, and the remote counter state variable. 14. The at least one computer-readable storage device of claim 8 where the last valid message received by the computing device from the remote computing device comprises a header that includes another nonce state. 15. A computing device and at least one program module together configured for sending a message that comprises a set of variables including a nonce state variable configured for identifying a current session of the computing device, a counter state variable configured for indicating a last message sent by the computing device to a remote computing device, a remote nonce state variable configured for identifying a current session of the remote computing device as known by the computing device, and a remote counter state variable configured for indicating a last valid message received by the computing device from the remote computing device, the set of variables configured for use in detecting a message race condition. 16. The computing device and at least one program module of claim 15 where the nonce state variable is further configured to uniquely identify the current session. 17. The computing device and at least one program module of claim 15 where the counter state variable is further configured to include a monotonically increasing value that corresponds to the last sent message. 18. The computing device and at least one program module of claim 15 where a value of the remote nonce state variable indicates a last valid message received from the remote computing device. 19. The computing device and at least one program module of claim 15 where a value of the remote counter state variable indicates a last valid message received from the remote computing device. 20. The computing device and at least one program module of claim 15 where the sent message comprises a header that includes the nonce state variable, the counter state variable, the remote nonce state variable, and the remote counter state variable.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (31)
Rouse Gerald L. (Round Rock TX), Acknowledgement protocol for serial data network with out-of-order delivery.
Davis Timothy D. ; Baker Roman ; Daugherty Dan E. ; Michael Martin S. ; Masood Ahmed ; Waterson Kent Bruce ; Fung Hon C. ; Koether Mark Douglas ; Johnson J. Scott, Combination of input output circuitry and local area network systems.
Gandhi,Amar S.; Layman,Andrew J.; Weisman,Daniel R.; Pather,Shyamalan; Zintel,William Michael, Data driven remote device control model with general programming interface-to-network messaging adapter.
Hartheimer Richard (Morris Plains NJ) Coleman Michael (Sydney NJ AUX) Klepka Chris (Parsippany NJ) Poole Geoffrey (Sydney AUX), Detection and prevention of duplicate trading transactions over a communications network.
Feeney James William ; Olnowich Howard Thomas ; Wilhelm ; Jr. George William, Method and apparatus for maintaining message order in multi-user FIFO stacks.
Wang,Xiaolin; Mahagaokar,Ajay C.; Marshall,Benjamin; Smith,Stephen E., Method of and apparatus for correcting errors in data packet flow streams as in closed ring sequential address generators and the like without data flow stream interruption.
Ho, Winga, Synchronization method and system for keeping track of encoding history to maintain digital system synchronization during communication over lossy transmission media.
Casper Daniel Francis ; Gregg Thomas Anthony ; Nation George Wayne ; Ocheltree Kenneth Blair ; Perkins ; Jr. Charles Bertram, System and method for self-identifying and configuring the nodes of a network.
Weber, Bret S.; Henry, Russell J.; Gates, Dennis E.; Holt, Keith W., System and method to eliminate race conditions in input/output operations for high bandwidth architectures.
Nordstrom Gregory Michael ; Moertl Daniel Frank ; Sand Thomas Rembert, System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.