IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0824092
(2010-06-25)
|
등록번호 |
US-8327030
(2012-12-04)
|
발명자
/ 주소 |
- Adya, Atul
- Wolman, Alastair
- Dunagan, John D.
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
1 인용 특허 :
23 |
초록
▼
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 of detecting crisscrossed messages, the method comprising: transitioning a state machine to a normal state, wherein the state machine includes a plurality of state variables that includes a nonce state variable that is configured to indicate a current session of a device, and that includ
1. A method of detecting crisscrossed messages, the method comprising: transitioning a state machine to a normal state, wherein the state machine includes a plurality of state variables that includes a nonce state variable that is configured to indicate a current session of a device, and that includes a counter state variable that is configured to indicate a last message sent by the device to a remote device, and that includes a remote nonce state variable that is configured to indicate a current session of the remote device as known by the device, and that includes a remote counter state variable that is configured to indicate a last valid message received by the device from the remote device;detecting a combination of: a first message sent by the device to the remote device, anda second message sent by the remote device to the device after the first message is sent but before the first message is received by the remote device, wherein the second message includes a header that includes a nonce value and a counter value and a remote nonce value and a remote counter value;receiving, by the device, the second message;wherein the detecting comprises determining that: the counter state variable indicates that the remote counter value is incorrect, or thatthe nonce state variable indicates that the remote nonce value is incorrect; andtransitioning, based on the determining, the state machine to a race fix state. 2. The method of claim 1 wherein the counter value indicates the second message as known by the remote device. 3. The method of claim 1 wherein the remote nonce value indicates a last known session of the device as known by the remote device. 4. The method of claim 1 wherein the counter state variable indicates that the remote counter value is incorrect in response to the remote counter value not matching the counter state variable. 5. The method of claim 1 wherein the nonce state variable indicates that the remote nonce value is incorrect in response to the remote nonce value not matching the nonce state variable. 6. The method of claim 1 further comprising: constructing a ping message that includes a ping header, the constructing comprising: setting a nonce value of the ping header to match the nonce state variable, andsetting a counter value of the ping header to match the counter state variable, andsetting a remote nonce value of the ping header to match the remote nonce state variable, andsetting a remote counter value of the ping header to match the remote counter state variable; andsending the constructed ping message to the remote device. 7. The method of claim 6, further comprising: receiving, in response to the sent ping message, a third message from the remote device;determining that the received third message is valid;setting, in response to the determining, the remote counter state variable to match a counter value of a header of the third message;transitioning, based on the setting the remote counter state variable, the state machine to the normal state. 8. The method of claim 7, further comprising: determining that the third message is another ping message;determining the presence of a buffered message on the device; andsending, based on the determining that the third message is another ping message, the buffered message to the remote device. 9. At least one computer-readable device comprising computer-executable instructions that, when executed by a device, cause the device to perform a method of detecting crisscrossed messages, the method comprising: transitioning a state machine to a normal state, wherein the state machine includes a plurality of state variables that includes a nonce state variable that is configured to indicate a current session of the device, and that includes a counter state variable that is configured to indicate a last message sent by the device to a remote device, and that includes a remote nonce state variable that is configured to indicate a current session of the remote device as known by the device, and that includes a remote counter state variable that is configured to indicate a last valid message received by the device from the remote device;detecting a combination of: a first message sent by the device to the remote device, anda second message sent by the remote device to the device after the first message is sent but before the first message is received by the remote device, wherein the second message includes a header that includes a nonce value and a counter value and a remote nonce value and a remote counter value;receiving, by the device, the second message;wherein the detecting comprises determining that: the counter state variable indicates that the remote counter value is incorrect, or thatthe nonce state variable indicates that the remote nonce value is incorrect; andtransitioning, based on the determining, the state machine to a race fix state. 10. The at least one computer-readable device of claim 9 wherein the counter value indicates the second message as known by the remote device. 11. The at least one computer-readable device of claim 9 wherein the remote nonce value indicates a last known session of the device as known by the remote device. 12. The at least one computer-readable device of claim 9 wherein the counter state variable indicates that the remote counter value is incorrect in response to the remote counter value not matching the counter state variable. 13. The at least one computer-readable device of claim 9 wherein the nonce state variable indicates that the remote nonce value is incorrect in response to the remote nonce value not matching the nonce state variable. 14. The at least one computer-readable device of claim 9, the method further comprising: constructing a ping message that includes a ping header, the constructing comprising: setting a nonce value of the ping header to match the nonce state variable, andsetting a counter value of the ping header to match the counter state variable, andsetting a remote nonce value of the ping header to match the remote nonce state variable, andsetting a remote counter value of the ping header to match the remote counter state variable; andsending the constructed ping message to the remote device. 15. The at least one computer-readable device of claim 14, the method further comprising: receiving, in response to the sent ping message, a third message from the remote device;determining that the received third message is valid;setting, in response to the determining, the remote counter state variable to match a counter value of a header of the third message;transitioning, based on the setting the remote counter state variable, the state machine to the normal state. 16. The at least one computer-readable device of claim 15, the method further comprising: determining that the third message is another ping message;determining the presence of a buffered message on the device; andsending, based on the determining that the third message is another ping message, the buffered message to the remote device. 17. A device comprising: a state machine configured to transition to a normal state, wherein the state machine includes a plurality of state variables that includes a nonce state variable that is configured to indicate a current session of a device, and further includes a counter state variable that is configured to indicate a last message sent by the device to a remote device, and further includes a remote nonce state variable that is configured to indicate a current session of the remote device as known by the device, and further includes a remote counter state variable that is configured to indicate a last valid message received by the device from the remote device;a protocol configured to detect a combination of: a first message sent by the device to the remote device, anda second message sent by the remote device to the device after the first message is sent but before the first message is received by the remote device, wherein the second message includes a header that includes a nonce value and a counter value and a remote nonce value and a remote counter value;a transport configured to receive the second message;the protocol configured to detect the combination by: determining that the counter state variable indicates that the remote counter value is incorrect, or thatdetermining that the nonce state variable indicates that the remote nonce value is incorrect; andthe state machine further configured to transition, based on the detected combination, to a race fix state. 18. The device of claim 17 wherein the counter value indicates the second message as known by the remote device. 19. The device of claim 17 wherein the remote nonce value indicates a last known session of the device as known by the remote device. 20. The device of claim 17 further comprising: the protocol further configured to construct a ping message that includes a ping header by: setting a nonce value of the ping header to match the nonce state variable, andsetting a counter value of the ping header to match the counter state variable, andsetting a remote nonce value of the ping header to match the remote nonce state variable, andsetting a remote counter value of the ping header to match the remote counter state variable; andthe transport further configured to send the constructed ping message to the remote device. 21. The device of claim 20, further comprising: the transport further configured to receive, in response to the sent ping message, a third message from the remote device;the protocol further configured to determine that the received third message is valid;the protocol further configured to set, in response to the valid message, the remote counter state variable to match a counter value of a header of the third message;the state machine further configured to transition, based on the set remote counter state variable, the state machine to the normal state. 22. The device of claim 21, further comprising: the protocol further configured to determine that the third message is another ping message;the protocol further configured to determine the presence of a buffered message; andthe transport further configured to send, based on the another ping message, the buffered message to the remote device.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.