RPF multi-party reliable transport
First Claim
1. A method for operating a selected node to distribute database updates within a network, said method comprising:
- identifying one or more directly-connected next-hop or previous-hop neighboring nodes that participate in a transport layer session;
receiving an application data unit from an application operating at said selected node;
encapsulating said application data unit within a transport protocol data unit;
transmitting said transport protocol data unit to only said identified one or more directly-connected neighboring nodes as a part of said transport layer session; and
retransmitting said application data unit to one of said directly-connected neighboring nodes if a request for retransmission is received from said directly-connected neighboring node;
wherein said one or more directly-connected neighboring nodes are routers.
1 Assignment
0 Petitions
Accused Products
Abstract
A multi-party reliable transport protocol for use by a higher layer application. A single session source distributes database updates to multiple receivers via a distribution tree. A node desiring to join a session selects a directly-connected node on a path upstream to a source by accessing unicast routing protocol information and sends a “Join” message to this upstream neighbor. Each node participating in the scheme handles retransmission requests from its directly-connected downstream neighbors. A supported application provides storage of previously transmitted information for potential retransmission.
53 Citations
40 Claims
-
1. A method for operating a selected node to distribute database updates within a network, said method comprising:
-
identifying one or more directly-connected next-hop or previous-hop neighboring nodes that participate in a transport layer session; receiving an application data unit from an application operating at said selected node; encapsulating said application data unit within a transport protocol data unit; transmitting said transport protocol data unit to only said identified one or more directly-connected neighboring nodes as a part of said transport layer session; and retransmitting said application data unit to one of said directly-connected neighboring nodes if a request for retransmission is received from said directly-connected neighboring node; wherein said one or more directly-connected neighboring nodes are routers. - View Dependent Claims (2, 3, 4, 5, 39, 40)
-
-
6. A method for operating a selected node to support a transport layer session, said method comprising:
-
identifying a directly-connected node on a path toward a transport layer session source, said directly-connected node being an upstream node on said path; receiving a transport protocol data unit from said upstream node; extracting an application data unit from said transport protocol data unit and an associated sequence number; delivering said application data unit and said sequence number to an application operating at said selected node; tracking said sequence numbers; and requesting retransmission of one or more of said application data units from said upstream node if one or more of said sequence numbers are missing; wherein said directly-connected node is a router. - View Dependent Claims (7, 8, 10, 11, 12, 13, 14)
-
-
9. (canceled)
-
15. A method for operating a selected node to support a transport layer session having at least three parties, said method comprising:
-
identifying a first directly-connected node on a path toward a transport layer session source; receiving a transport protocol data unit from said first directly-connected node; forwarding contents of said transport protocol data unit to a second directly-connected node that is downstream from said transport layer session source and said selected node; storing contents of said transport protocol data unit in a local cache; receiving a request for retransmission from said second directly-connected node; and retransmitting said contents of said transport protocol unit to said second directly-connected node in response to said request by retrieving from said local cache. - View Dependent Claims (16)
-
-
17. A computer program product for operating a selected node to distribute database updates within a network, said computer program product comprising:
-
code that identifies one or more directly-connected next-hop or previous-hop neighboring nodes that participate in a transport layer session; code that receives an application data unit from an application operating at said selected node; code that encapsulates said application data unit within a transport protocol data unit; code that transmits said transport protocol data unit to only said identified one or more directly-connected neighboring nodes as a part of said transport layer session; code that retransmits said application data unit to one of said directly-connected neighboring nodes if a request for retransmission is received from said directly-connected neighboring node; and a computer-readable storage medium that stores the codes; wherein said one or more directly-connected neighboring nodes are routers. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A computer program product for operating a selected node to support a transport layer session, said computer program product comprising:
-
code that identifies a directly-connected node on a path toward a transport layer session source, said directly-connected node being an upstream node on said path; code that receives a transport protocol data unit from said upstream node; code that extracts an application data unit from said transport protocol data unit and an associated sequence number; code that delivers said application data unit and said sequence number to an application operating at said selected node; code that tracks said sequence numbers; code that requests retransmission of one or more of said application data units from said upstream node if one or more of said sequence numbers are missing; and a computer-readable storage medium that stores the codes; wherein said directly-connected node is a router. - View Dependent Claims (23, 24, 26, 27, 28, 29, 30)
-
-
25. (canceled)
-
31. A computer program product for operating a selected node to support a transport layer session having at least three parties, said computer program product comprising:
-
code that identifies a first directly-connected node on a path toward a transport layer session source; code that receives a transport protocol data unit from said first directly-connected node; code that forwards contents of said transport protocol data unit to a second directly-connected node that is downstream from said transport layer session source and said selected node; code that stores contents of said transport protocol data unit in a local cache; code that receives a request for retransmission from said second directly-connected node; code that retransmits said contents of said transport protocol unit to said second directly-connected node in response to said request by retrieving from said local cache; and a computer-readable storage medium that stores the codes. - View Dependent Claims (32)
-
-
33. Apparatus for operating a selected node to distribute database updates within a network, said apparatus comprising:
-
means for identifying one or more directly-connected next-hop or previous-hop neighboring nodes that participate in a transport layer session; means for receiving an application data unit from an application operating at said selected node; means for encapsulating said application data unit within a transport protocol data unit; means for transmitting said transport protocol data unit to only said identified one or more directly-connected neighboring nodes as a part of said transport layer session; and retransmitting said application data unit to one of said directly-connected neighboring nodes if a request for retransmission is received from said directly-connected neighboring node; wherein said one or more directly-connected neighboring nodes are routers.
-
-
34. Apparatus for operating a selected node to support a transport layer session, said apparatus comprising:
-
means for identifying a directly-connected node on a path toward a transport layer session source, said directly-connected node being an upstream node on said path; means for receiving a transport protocol data unit from said upstream node; means for extracting an application data unit and an associated sequence number from said transport protocol data unit; means for delivering said application data unit and said sequence number to an application operating at said selected node; tracking said sequence numbers; and requesting retransmission of one or more of said application data units from said upstream node if one or more of said sequence numbers are missing; wherein said directly-connected node is a router.
-
-
35. Apparatus for operating a selected node to support a transport layer session having at least three parties, said apparatus comprising:
-
means for identifying a first directly-connected node on a path toward a transport layer session source; means for receiving a transport protocol data unit from said first directly-connected node; means for forwarding contents of said transport protocol data unit to a second directly-connected node that is downstream from said transport layer session source and said selected node; means for storing contents of said transport protocol data unit in a local cache; means for receiving a request for retransmission from said second directly-connected node; and means for retransmitting said contents of said transport protocol unit to said second directly-connected node in response to said request by retrieving from said local cache.
-
-
36. Apparatus for operating a selected node to distribute database updates within a network, said apparatus comprising:
-
a processor that executes instructions; and a memory device having said instructions stored thereon, said instructions comprising; code that identifies one or more directly-connected next-hop or previous-hop neighboring nodes that participate in a transport layer session; code that receives an application data unit from an application operating at said selected node; code that encapsulates said application data unit within a transport protocol data unit; code that transmits said transport protocol data unit to only said identified one or more directly-connected neighboring nodes as a part of said transport layer session; and retransmitting said application data unit to one of said directly-connected neighboring nodes if request for retransmission is received from said directly-connected neighboring node; wherein said one or more directly-connected neighboring nodes are routers.
-
-
37. Apparatus for operating a selected node to support a transport layer session, said apparatus comprising:
-
a processor that executes instructions; and a memory device having said instructions stored thereon, said instructions comprising; code that identifies a directly-connected node on a path toward a transport layer session source, said directly-connected node being an upstream node on said path; code that receives a transport protocol data unit from said upstream node; code that extracts an application data unit from said transport protocol data unit and an associated sequence number; code that delivers said application data unit and said sequence number to an application operating at said selected node; code that tracks said sequence numbers; and code that requests retransmission of one or more of said application data units from said upstream node if one or more of said sequence numbers are missing; wherein said directly-connected node is a router.
-
-
38. Apparatus for operating a selected node to support a transport layer session having at least three parties, said apparatus comprising:
-
a processor that executes instructions; and a memory device having said instructions stored thereon, said instructions comprising; code that identifies a first directly-connected node on a path toward a transport layer session source; code that receives a transport protocol data unit from said first directly-connected node; code that forwards contents of said transport protocol data unit to a second directly-connected node that is downstream from said transport layer session source and said selected node; code that stores contents of said transport protocol data unit in a local cache; code that receives a request for retransmission from said second directly-connected node; and code that retransmits said contents of said transport protocol unit to said second directly-connected node in response to said request by retrieving from said local cache.
-
Specification