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 an electronic device that includes memory, the method comprising: receiving, from a remote device by the electronic device while a state of a protocol is set to a race fix state, an incoming message that conforms to the protocol and that includes a first set of state variabl
1. A method performed on an electronic device that includes memory, the method comprising: receiving, from a remote device by the electronic device while a state of a protocol is set to a race fix state, an incoming message that conforms to the protocol and that includes a first set of state variables that corresponds to the remote device and that comprises a nonce value and a remote nonce value and a counter value and a remote counter value, where the remote nonce value uniquely identifies a last known session of the electronic device as known by the remote device as different from other sessions of the electronic device, and where the memory comprises a second set of state variables of the protocol that corresponds to the electronic device;validating, based on comparing the second set of state variables to the first set of state variables of the received incoming message, the received incoming message;updating, in response to the received incoming message being valid, the second set of state variables based on the first set of state variables; andsetting, in response to the updating, the state to a normal state. 2. The method of claim 1 where the received incoming message is buffered in a single-message receive buffer in the memory. 3. The method of claim 1 where the comparing comprises determining that the nonce value of the first set of state variables matches a remote nonce value of the second set of state variables. 4. The method of claim 1 where the comparing comprises determining that the counter value of the first set of state variables is strictly greater than a remote counter value of the second set of state variables. 5. The method of claim 1 where the comparing comprises determining that the remote counter value of the first set of state variables matches a counter value of the second set of state variables. 6. The method of claim 1 where the comparing comprises determining that the remote nonce value of the first set of state variables is either zero or matches a nonce value of the second set of state variables. 7. The method of claim 1 further comprising dropping, in response to the received incoming message being invalid, the received incoming message. 8. An electronic device comprising: a processor;memory coupled to the processor;a network adapter coupled to the processor and memory and via which the electronic device is configured to receive, from a remote device while a state of a protocol is set to a race fix state, an incoming message that conforms to the protocol and that includes a first set of state variables that corresponds to the remote device and that comprises a nonce value and a remote nonce value and a counter value and a remote counter value, where the remote nonce value uniquely identifies a last known session of the electronic device as known by the remote device as different from other sessions of the electronic device, and where the memory comprises a second set of state variables of the protocol that corresponds to the electronic device; andthe processor via which the electronic device: validates, based on comparing the second set of state variables to the first set of state variables of the received incoming message, the received incoming message;updates, in response to the received incoming message being valid, the second set of state variables based on the first set of state variables; andsets, in response to the updating, the state to a normal state. 9. The electronic device of claim 8 where the received incoming message is buffered in a single-message receive buffer in the memory. 10. The electronic device of claim 8 where the comparing comprises determining that the nonce value of the first set of state variables matches a remote nonce value of the second set of state variables. 11. The electronic device of claim 8 where the comparing comprises determining that the counter value of the first set of state variables is strictly greater than a remote counter value of the second set of state variables. 12. The electronic device of claim 8 where the comparing comprises determining that the remote counter value of the first set of state variables matches a counter value of the second set of state variables. 13. The electronic device of claim 8 where the comparing comprises determining that the remote nonce value of the first set of state variables is either zero or matches a nonce value of the second set of state variables. 14. The electronic device of claim 8 configured to drop, in response to the received incoming message being invalid, the received incoming message. 15. At least one computer storage device comprising: memory that includes computer-executable instructions that, based on execution by an electronic device, configure the electronic device to perform actions comprising: receiving, from a remote device by the electronic device while a state of a protocol is set to a race fix state, an incoming message that conforms to the protocol and that includes a first set of state variables that corresponds to the remote device and that comprises a nonce value and a remote nonce value and a counter value and a remote counter value, where the remote nonce value uniquely identifies a last known session of the electronic device as known by the remote device as different from other sessions of the electronic device, and where the memory comprises a second set of state variables of the protocol that corresponds to the electronic device;validating, based on comparing the second set of state variables to the first set of state variables of the received incoming message, the received incoming message;updating, in response to the received incoming message being valid, the second set of state variables based on the first set of state variables; andsetting, in response to the updating, the state to a normal state. 16. The at least one computer storage device of claim 15 where the received incoming message is buffered in a single-message receive buffer in the memory. 17. The at least one computer storage device of claim 15 where the comparing comprises determining that the nonce value of the first set of state variables matches a remote nonce value of the second set of state variables. 18. The at least one computer storage device of claim 15 where the comparing comprises determining that the counter value of the first set of state variables is strictly greater than a remote counter value of the second set of state variables. 19. The at least one computer storage device of claim 15 where the comparing comprises determining that the remote counter value of the first set of state variables matches a counter value of the second set of state variables. 20. The at least one computer storage device of claim 15 where the comparing comprises determining that the remote nonce value of the first set of state variables is either zero or matches a nonce value of the second set of state variables.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (39)
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.
Zintel, William Michael; Weisman, Daniel R.; Pather, Shyamalan; Rao, Ravi T.; Bendixen, Mason K.; Rude, Christopher M., Peer networking host framework and hosting API.
Zintel, William Michael; Weisman, Daniel R.; Pather, Shyamalan; Rao, Ravi T.; Bendixen, Mason K; Rude, Christopher M, Peer networking host framework and hosting API.
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는 부적절한 답변을 할 수 있습니다.