IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0824084
(2010-06-25)
|
등록번호 |
US-8346973
(2013-01-01)
|
발명자
/ 주소 |
- 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 device comprising a protocol module configured to operate on the device and to communicate with a remote instance of a remote protocol module, wherein an instance of the protocol module is configured to maintain in a memory of the device a set of state variables that includes: a nonce state var
1. A device comprising a protocol module configured to operate on the device and to communicate with a remote instance of a remote protocol module, wherein an instance of the protocol module is configured to maintain in a memory of the device a set of state variables that includes: a nonce state variable that is configured to uniquely identify a current session of the instance of the protocol module as different from other sessions of the instance of the protocol module and of other instances of the protocol modulea counter state variable that is configured to identify a last message sent by the instance of the protocol module to a remote instance of the remote protocol module,a remote nonce state variable that is configured to uniquely identify a current remote session of a remote instance of the remote protocol module as different from other remote sessions of the remote instance of the remote protocol module and of other remote instances of other remote protocol module, the current remote session as known by the instance of the protocol module, anda remote counter state variable that is configured to identify a last valid message received by the instance of the protocol module and sent from the remote instance of the remote protocol module. 2. The device of claim 1, the instance of the protocol module further configured to detect a combination of: a first message sent by the instance of the protocol module to the remote instance of the remote protocol module; anda second message sent by the remote instance of the remote protocol module to the instance of the protocol module before the first message is received by the remote protocol module. 3. The device of claim 1, the instance of the protocol module further configured to copy the remote nonce state variable into a remote nonce field of a header of an out-going message. 4. The device of claim 1, the instance of the protocol module further configured to copy the remote counter state variable into a remote counter field of a header of an out-going message. 5. The device of claim 1, the instance of the protocol module further configured to copy a value from a nonce field of a header of a received message from the remote instance of the remote protocol module to the remote nonce state variable. 6. The device of claim 1 the instance of the protocol module further configured to copy a value from a counter field of a header of a received message from the remote instance of the remote protocol module to the remote counter state variable. 7. The device of claim 2 wherein the instance of the protocol module is further configured to enter a race fix state in response to the detecting the combination. 8. The device of claim 7 wherein the instance of the protocol module is further configured to send, when in the race fix state, a ping message to the remote instance of the remote protocol module, wherein the ping message comprises a header including a nonce field and a counter field and a remote nonce field and a remote counter field. 9. The device of claim 1 wherein the instance of the protocol module is further configured to send, when in a normal state, a message to the remote instance of the remote protocol module, wherein the sent message comprises a header including a nonce field and a counter field and a remote nonce field and a remote counter field and a data field. 10. A method comprising: receiving, by an instance of a protocol module operating on a device from a remote instance of a remote protocol module, an incoming message that includes a header that includes a nonce value and a remote nonce value and a counter value and a remote counter value;comparing the nonce value to a remote nonce state variable of a plurality of state variables, wherein the nonce value indicates a current session of the remote instance of the remote protocol module as known by the remote instance of the remote protocol module, and wherein the remote nonce state variable indicates a last known session of the remote instance of the remote protocol module as known by the instance of the protocol module, and wherein the remote nonce state variable is configured to uniquely identify the last known session of a remote instance of the remote protocol module as different from other sessions of the remote instance of the remote protocol module and of other remote instances of other remote protocol module; andcomparing the counter value to a remote counter state variable of the plurality of state variables, wherein the counter value indicates the incoming message as known by the remote instance of the remote protocol module, and wherein the remote counter state variable indicates a last valid message received from the remote instance of the remote protocol module by the instance of the protocol module as known by the instance of the protocol module. 11. The method of claim 10 further comprising: invalidating, in response to the remote nonce state variable not indicating the nonce value of the header, the plurality of state variables; andsetting the remote nonce state variable to indicate the nonce value of the header. 12. The method of claim 10 further comprising dropping, in response to the remote counter state variable indicating that the counter value of the header is incorrect, the incoming message. 13. The method of claim 10 further comprising dropping, in response to the counter state variable indicating that the remote counter value of the header is incorrect, the incoming message. 14. The method of claim 10 further comprising: comparing the remote counter value to a counter state variable of the plurality of state variables, wherein the remote counter value indicates a last valid message received by the remote instance of the remote protocol module that was sent from the instance of the protocol module as known by the instance of the protocol module, and wherein the counter state variable indicates a last message sent from the instance of the protocol module to the remote instance of the remote protocol module as known by the instance of the protocol module,comparing the remote nonce value to a nonce state variable of the plurality of state variables, wherein the remote nonce value indicates a last known session of the instance of the protocol module as known by the remote instance of the remote protocol module, and wherein the nonce state variable indicates a current session of the instance of the protocol module. 15. The method of claim 14 further comprising: step A) determining, based on the comparing the nonce value to the remote nonce state variable, that the remote nonce state variable indicates that the nonce value is correct;step B) determining, based on the comparing the counter value to the remote counter state variable, that the remote counter state variable indicates that the counter value is correct;step C) determining, based on the comparing the remote counter value to the counter state variable, that the counter state variable indicates that the remote counter value is correct;step D) determining, based on the comparing the remote nonce value to the nonce state variable, that the nonce state variable indicates that the remote nonce value is correct; anddetermining, based on step A and on step B and on step C and on step D, that the incoming message is valid. 16. A method of re-synchronizing a system with a remote system, the method comprising: maintaining a set of state variables that includes a nonce state variable that uniquely identifies a current session of an instance of a protocol module of the system as different from other sessions of the instance of the protocol module and of other instances of the protocol module, and that includes a counter state variable that indicates a last message sent by the instance of the protocol module of the system to a remote instance of a remote protocol module of the remote system, and that includes a remote nonce state variable that indicates a remote current session of the remote instance of the remote protocol module of the remote system as known by the instance of the protocol module of the system, and that includes a remote counter state variable that indicates a last valid message received by the instance of the protocol module of the system from the remote instance of the remote protocol module of the remote system, wherein the instance of the protocol module of the system is operating on a device; andsending a ping message to the remote instance of the remote protocol module of the remote system, wherein the ping message comprises a header that includes a nonce field that is set to the nonce state variable, and that includes a remote nonce field is set to the remote nonce state variable, and that includes a counter field is set to the counter state variable, and that includes a remote counter field is set to the remote counter state variable. 17. The method of claim 16 further comprising receiving a message from the remote instance of the remote protocol module of the remote system. 18. The method of claim 17 further comprising: determining that the received message is not valid; anddropping, in response to the determining, the received message. 19. The method of claim 17 further comprising transitioning, in response to the received message being an in-order message, the instance of the protocol module of the system to a normal state. 20. The method of claim 19 further comprising: removing the header from the in-order message; andpassing the header-less message to an application that is coupled to the instance of the protocol module of the system.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.